diff --git a/index.html b/index.html
index 3ecbc95..5e34837 100644
--- a/index.html
+++ b/index.html
@@ -63,11 +63,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." />
- Example Browser
+ Example Model Browser
- Sourcecode & Feedback
+ Spec | Sourcecode | Feedback
@@ -925,7 +925,7 @@ Error message and password prompt
{"created":"20151007165524815","text":"yes","bag":"default","revision":"0","type":"text/vnd.tiddlywiki","title":"$:/config/HideSidebarOnStartup","tags":"","modified":"20230504174422977","creator":"Tobias Beer"},
{"created":"20230424093821723","text":"yes","tags":"","title":"$:/config/HtmlParser/DisableSandbox","modified":"20230424142930452"},
{"created":"20230424140117603","text":"allowvr allowfullscreen allow-scripts","tags":"","title":"$:/config/HtmlParser/SandboxTokens","modified":"20230424142737213"},
-{"created":"20230423174843715","title":"$:/config/Manager/Filter","text":".big","modified":"20240208111207988"},
+{"created":"20230423174843715","title":"$:/config/Manager/Filter","text":"Sourcecode","modified":"20240426123933690"},
{"created":"20230423164137536","text":"","title":"$:/config/Manager/System","modified":"20240130120918487"},
{"created":"20230425162854560","title":"$:/config/Navigation/UpdateAddressBar","text":"permalink","modified":"20230427180247389"},
{"created":"20230424152601270","text":"hide","title":"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel","modified":"20230424152601270"},
@@ -967,15 +967,15 @@ Error message and password prompt
{"created":"20230425164931250","title":"$:/state/folded/AFRAME template","text":"show","modified":"20230425164935940"},
{"created":"20230425164931250","title":"$:/state/folded/GLSL shader template","text":"show","modified":"20230425164939576"},
{"created":"20230424142403302","text":"checked","title":"$:/state/import/select-all","modified":"20230424142404392"},
-{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"yes","modified":"20240416125622211"},
-{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"Reference","modified":"20240416151306721"},
+{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"no","modified":"20240426125155382"},
+{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"","modified":"20240426125132195"},
{"created":"20230427102758222","title":"$:/state/plugin-info--1887569658-$:/plugins/ihm/tidgraph--50210113","text":"documentation","modified":"20230427102759911"},
{"created":"20230427092525294","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage","text":"yes","modified":"20230427092525375"},
{"created":"20230427093219686","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage--605768392","text":"settings","modified":"20230427094141558"},
{"created":"20230424092949812","title":"$:/state/plugin-info-1024395336-$:/plugins/tiddlywiki/codemirror--1574138004","text":"contents","modified":"20230425143706081"},
{"created":"20230424093627704","title":"$:/state/plugin-info-833095967-Draft of '$:/core'---1604322978","text":"readme","modified":"20230424093629208"},
{"created":"20230423163649566","title":"$:/state/showeditpreview","text":"no","modified":"20231202160010251"},
-{"created":"20230504174435745","title":"$:/state/sidebar","text":"no","modified":"20240416142923586"},
+{"created":"20230504174435745","title":"$:/state/sidebar","text":"no","modified":"20240426123836650"},
{"created":"20230423163453188","title":"$:/state/tab--1963855381","text":"$:/themes/nico/notebook/themetweaks","modified":"20230523124919651"},
{"created":"20230427092954391","title":"$:/state/tab--2112689675","text":"$:/core/ui/ControlPanel/Basics","modified":"20230523124903522"},
{"created":"20230424093058379","title":"$:/state/tab--697582678","text":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20230427093030201"},
@@ -1007,7 +1007,7 @@ Error message and password prompt
{"created":"20230622104329622","title":"$:/state/toc/Reference/js/AFRAME-THREE.js--403145756","text":"open","modified":"20230622104329622"},
{"created":"20230622111759784","title":"$:/state/toc/Reference/The parser-THREE.js--403145756","text":"open","modified":"20230622111759784"},
{"title":"$:/status/RequireReloadDueToPluginChange","text":"no"},
-{"title":"$:/StoryList","created":"20240416143122329","text":"","list":"[[XR Fragments]]","modified":"20240416151651758"},
+{"title":"$:/StoryList","text":"","list":"[[XR Fragments]]"},
{"created":"20230423163445948","title":"$:/theme","text":"$:/themes/nico/notebook","modified":"20230423163445948"},
{"text":"{\n \"tiddlers\": {\n \"$:/themes/nico/notebook/LICENSE\": {\n \"title\": \"$:/themes/nico/notebook/LICENSE\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210118213330307\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\nMIT License Copyright (c) 2020 [[Nicolas Petton|https://nicolas.petton.fr]] nicolas@petton.fr\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is furnished\\nto do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice (including the next\\nparagraph) shall be included in all copies or substantial portions of the\\nSoftware.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\"\n },\n \"$:/themes/nico/notebook/themetweaks\": {\n \"title\": \"$:/themes/nico/notebook/themetweaks\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20210123211851680\",\n \"tags\": \"$:/tags/ControlPanel/Appearance\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"text\": \"\\\\define lingo-base() $:/language/ThemeTweaks/\\n\\nYou can tweak certain aspects of the ''Notebook'' theme.\\n\\n! \u003C\u003Clingo Options>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003C\u003Clingo Options/StickyTitles>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Options/StickyTitles/Hint>>// |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003C\u003Clingo Options/CodeWrapping>>\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003Coption value=\\\"pre\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"pre-wrap\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">Reveal tiddler controls on mouseover\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n\\n! \u003C\u003Clingo Settings>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/fontfamily\\\">\u003C\u003Clingo Settings/FontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/fontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\">\u003C\u003Clingo Settings/CodeFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\">\u003C\u003Clingo Settings/EditorFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n\\n! \u003C\u003Clingo Metrics>>\\n\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\">\u003C\u003Clingo Metrics/FontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\">\u003C\u003Clingo Metrics/LineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\\\">\u003C\u003Clingo Metrics/BodyFontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodyfontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\\\">\u003C\u003Clingo Metrics/BodyLineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodylineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\">\u003C\u003Clingo Metrics/SidebarBreakpoint>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarBreakpoint/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\">\u003C\u003Clingo Metrics/SidebarWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/story-width\\\">\u003C\u003Clingo Metrics/StoryWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/StoryWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/story-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n\\n\"\n },\n \"$:/themes/nico/notebook/base\": {\n \"title\": \"$:/themes/nico/notebook/base\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210120224227503\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\\n\\n\\\\define if-sidebar(text)\\n \u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n\\n\\\\define if-reveal-tiddler-controls-on-hover(text)\\n \u003C$reveal state=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n \\n/* Top and bottom bars */\\n\\n/* Hide the top-right bar */\\n.tc-topbar.tc-topbar-right {\\n display: none;\\n}\\n\\ndiv.tc-sidebar-header {\\n padding: 0;\\n min-height: 0;\\n}\\n\\n.tc-story-river {\\n padding: 6px 0 !important;\\n width: 100% !important;\\n max-width: {{$:/themes/nico/notebook/metrics/story-width}} !important;\\n margin: 0 auto !important;\\n margin-top: 34px !important;\\n}\\n\\ndiv.tc-tiddler-frame {\\n width: 100%;\\n margin: 20px 0;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n box-shadow: 0 5px 20px rgba(0,0,0, 0.12);\\n border-radius: 6px;\\n padding: 42px 60px 60px 60px;\\n}\\n\\nh1.tc-site-title {\\n margin-top: 14px;\\n font-size: 1.5em !important;\\n}\\n\\n.nc-bar {\\n padding: 10px;\\n height: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour page-background>>;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.nc-topbar-wrapper {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar.nc-topbar {\\n top: 0;\\n background: \u003C\u003Ccolour page-background>>ee;\\n max-width: calc({{$:/themes/nico/notebook/metrics/story-width}} + 40px);\\n padding: 10px 20px;\\n margin: 0 auto;\\n}\\n\\n.nc-bar.nc-bottombar {\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar .left svg {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n padding: .6em 1em;\\n margin-top: -.2em;\\n background: \u003C\u003Ccolour sidebar-button-foreground>>44;\\n color: \u003C\u003Ccolour foreground>>cc;\\n transition: all ease-in .2s;\\n border: 1px solid transparent;\\n outline: 0;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"]:focus {\\n width: 300px;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour primary>>;\\n box-shadow: 0 0 .2rem 0 \u003C\u003Ccolour primary>>;\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button {\\n -webkit-appearance: auto;\\n}\\n\\n.nc-bar .tc-block-dropdown.tc-search-drop-down {\\n margin-left: 0;\\n width: 400px;\\n border: 0;\\n box-shadow: 0 0 6px 0 rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 20px 0;\\n}\\n\\n.nc-bar p {\\n margin: 0;\\n}\\n\\n.nc-bar .tc-page-controls {\\n margin-top: 0;\\n}\\n\\n.nc-bar .tc-page-controls button {\\n margin-right: .8em;\\n}\\n\\n.nc-bar .tc-page-controls button .tc-btn-text {\\n font-size: 14px;\\n}\\n\\n.nc-bar .tc-block-dropdown {\\n max-height: 70vh;\\n overflow: auto;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-topbar {\\n display: none;\\n }\\n\\n .tc-story-river {\\n padding: 0 !important;\\n margin-top: 0 !important;\\n margin-bottom: 60px !important;\\n }\\n\\n div.tc-tiddler-frame {\\n margin: 0;\\n box-shadow: none;\\n border-radius: 0;\\n border-top: 0;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-bottombar {\\n display: none;\\n }\\n}\\n\\n@media(max-width: 1100px) {\\n .nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n }\\n}\\n\\n/* Sidebar */\\n\\n@keyframes sidebar-appear {\\n 0% {\\n left: -{{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n 100% {\\n left: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n animation: sidebar-appear .14s;\\n padding-top: 10px;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n.nc-sidebar {\\n background: \u003C\u003Ccolour tiddler-background>>;\\n border-right: 1px solid \u003C\u003Ccolour tiddler-border>>;\\n width: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n overflow-y: auto;\\n overflow-x: hidden;\\n z-index: 500;\\n}\\n\\n.nc-sidebar .segment {\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n line-height: 1.8em;\\n}\\n\\n.nc-sidebar ol ol {\\n padding-left: 18px;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .mobile-only {\\n display: none;\\n }\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .desktop-only {\\n display: none;\\n }\\n}\\n\\n.nc-sidebar h1.tc-site-title {\\n margin: 0;\\n}\\n\\n.nc-sidebar p {\\n margin: 6px 0;\\n}\\n\\n.nc-sidebar .tc-site-subtitle {\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n}\\n\\n.nc-sidebar .section .label {\\n padding: 2px 0;\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n fill: \u003C\u003Ccolour site-title-foreground>>;\\n font-weight: bold;\\n line-height: 1.6em;\\n display: block;\\n width: 100%;\\n text-align: left;\\n padding: 8px 15px;\\n border-radius: 0;\\n}\\n\\n.nc-sidebar .section:not(.open) .label:hover {\\n background: rgba(0,0,0,.06);\\n}\\n\\n.nc-sidebar .section.open .label {\\n color: \u003C\u003Ccolour tiddler-background>>;\\n fill: \u003C\u003Ccolour tiddler-background>>;\\n background: \u003C\u003Ccolour primary>>;\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar .section .label .caret {\\n display: inline-block;\\n width: 15px;\\n float: right;\\n}\\n\\n.nc-sidebar .content {\\n padding: 6px 15px;\\n font-size: 1em;\\n}\\n\\n.nc-sidebar .tc-tiddlylink {\\n color: \u003C\u003Ccolour primary>>;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n position: fixed;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n @keyframes sidebar-slide {\\n 0% {\\n left: -100vw;\\n }\\n 100% {\\n left: 0;\\n }\\n }\\n .nc-sidebar {\\n overflow: auto;\\n position: fixed;\\n width: 100%;\\n left: 0;\\n top: 0;\\n bottom: 48px;\\n z-index: 3000;\\n animation: sidebar-slide ease-in .2s;\\n animation-fill-mode: forwards;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-page-container {\\n margin-left: {{$:/themes/nico/notebook/metrics/sidebar-width}} !important;\\n }\\n\\n .nc-topbar-wrapper {\\n left: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n/* Animate the hamburger button */\\n\\n@keyframes menu-bars-1 {\\n 0% {}\\n 100% {\\n transform: rotate(-45deg) translateY(-10px) translateX(-6px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n@keyframes menu-bars-2 {\\n 0% {}\\n 100% { opacity: 0; }\\n}\\n\\n@keyframes menu-bars-3 {\\n 0% {}\\n 100% {\\n transform: rotate(45deg) translateY(6px) translateX(2px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n.sidebar-toggle {\\n /* position: fixed; */\\n /* top: 6px; */\\n /* left: 6px; */\\n /* z-index: 600; */\\n /* padding: 4px; */\\n /* border-radius: 8px; */\\n margin-right: 10px;\\n transition: all ease-in-out .2s;\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.sidebar-toggle:hover,\\n.sidebar-toggle.open {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground-hover>>;\\n}\\n\\n/* @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { */\\n/* .sidebar-toggle { */\\n/* top: auto; */\\n/* bottom: 10px; */\\n/* left: 10px; */\\n/* } */\\n/* } */\\n\\n.sidebar-toggle .bars .bar {\\n transform: rotate(0) translateY(0) translateX(0);\\n opacity: 1;\\n transform-origin: 20px 10px;\\n transition: transform 0.4s ease-in-out, opacity 0.2s ease-in-out, fill .4s ease-in-out;\\n}\\n\\n.sidebar-toggle .bars .bar:nth-of-type(3) {\\n transform-origin: 20px 20px;\\n}\\n\\n.sidebar-toggle.open .bars .bar:nth-of-type(1) {\\n animation: menu-bars-1 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(2) {\\n animation: menu-bars-2 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(3) {\\n animation: menu-bars-3 .6s;\\n animation-fill-mode: forwards;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n div.tc-tiddler-frame {\\n padding: 14px;\\n }\\n}\\n\\n/* Inputs */\\n\\ninput, textarea {\\n transition: border .14s ease-in-out;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n padding: .5em;\\n border-radius: 4px;\\n}\\n\\ninput:focus, textarea:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\nbutton {\\n border-radius: 1.5em;\\n border: 1px solid #ccc;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n padding: .3em 1em;\\n cursor: pointer;\\n transition: box-shadow ease-in .1s;\\n color: \u003C\u003Ccolor foreground>>;\\n}\\n\\nbutton:focus, button:active {\\n outline: 0 none;\\n}\\n\\nbutton.tc-btn-invisible {\\n border-radius: 0;\\n}\\n\\n.tc-editor-toolbar button,\\n.tc-editor-toolbar button.tc-btn-invisible {\\n border-radius: 3px;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n fill: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n}\\n\\n.tc-editor-toolbar button:hover,\\n.tc-editor-toolbar button:active {\\n border-color: \u003C\u003Ccolour primary>>;\\n background: \u003C\u003Ccolour primary>>;\\n color: \u003C\u003Ccolour background>>;\\n fill: \u003C\u003Ccolour background>>;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n transition: border .14s ease-in-out;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n padding: 4px;\\n border-radius: 4px;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor:focus,\\n.tc-tiddler-frame textarea.tc-edit-texteditor:focus,\\n.tc-tiddler-frame iframe.tc-edit-texteditor:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\n.tc-tiddler-controls .tc-btn-text {\\n font-size: 16px;\\n}\\n\\n\u003C\u003Cif-reveal-tiddler-controls-on-hover \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-frame .tc-tiddler-controls svg {\\n opacity: 0;\\n transition: all .2s ease-in;\\n }\\n\\n .tc-tiddler-controls svg.tc-image-close-button,\\n .tc-tiddler-controls .py-toggle-todo-button svg,\\n .tc-tiddler-controls svg.tc-image-done-button,\\n .tc-tiddler-frame .tc-tiddler-controls:hover svg {\\n opacity: 1;\\n }\\n\\n .tc-tiddler-controls .py-toggle-todo-button .done svg {\\n fill: #2da562;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\nbutton.tc-tag-label, span.tc-tag-label {\\n padding: 0.3em 1em !important;\\n}\\n\\n/* Fonts */\\n\\nhtml, body {\\n font-family: {{$:/themes/nico/notebook/settings/fontfamily}};\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n font-family: {{$:/themes/nico/notebook/settings/editorfontfamily}};\\n}\\n\\npre, code {\\n font-family: {{$:/themes/nico/notebook/settings/codefontfamily}};\\n}\\n\\n.tc-titlebar, .tc-site-title {\\n font-size: 28px !important;\\n line-height: 34px !important;\\n font-weight: 600 !important;\\n letter-spacing: -0.5px !important;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-weight: 600;\\n}\\n\\n.tc-tiddler-body h1,\\n.tc-tiddler-body h2,\\n.tc-tiddler-preview-preview h1,\\n.tc-tiddler-preview-preview h2 {\\n font-weight: bold;\\n}\\n\\ndiv.tc-tiddler-frame .tc-tiddler-body {\\n font-size: {{$:/themes/nico/notebook/metrics/bodyfontsize}};\\n line-height: {{$:/themes/nico/notebook/metrics/bodylineheight}};\\n}\\n\\n/* Tabs */\\n\\ndiv.tc-tab-buttons {\\n margin-bottom: -4px;\\n}\\n\\ndiv.tc-tab-buttons button {\\n font-weight: bold;\\n font-size: 1.2em;\\n line-height: 1em;\\n padding: .6em .8em .4em .8em;\\n border: 0;\\n border-radius: 0;\\n background: transparent;\\n cursor: pointer;\\n transition: background ease-in .2s;\\n}\\n\\ndiv.tc-tab-buttons button:hover {\\n background: rgba(0,0,0,.03);\\n}\\n\\ndiv.tc-tab-buttons button.tc-tab-selected {\\n border: 0;\\n background: transparent;\\n border-bottom: 4px solid \u003C\u003Ccolour primary>>;\\n}\\n\\n/* Dropdowns */\\n\\n@keyframes pop {\\n 0% {\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n\\n 80% {\\n transform: scale(1.03);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n\\n.tc-drop-down {\\n box-shadow: 0 0 10px rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 10px 0 !important;\\n animation: pop .15s ease-in forwards;\\n}\\n\\n.tc-drop-down a, .tc-drop-down button {\\n padding: 3px 15px !important;\\n}\\n\\n.tc-search-results {\\n line-height: 2em;\\n}\\n\\n.tc-search-results em {\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n/* Draft list */\\n\\n.tc-drafts-list {\\n font-size: .9em;\\n left: auto;\\n right: 0;\\n}\\n\\n.tc-drafts-list a {\\n padding: 6px 12px;\\n font-weight: bold;\\n border-top-left-radius: 6px;\\n border-top-right-radius: 6px;\\n display: inline-block;\\n}\\n\\n.nc-refs {\\n color: #888;\\n font-size: .9em;\\n}\\n\\n.nc-refs h4 {\\n margin-bottom: 4px;\\n}\\n\\n.nc-post-created {\\n color: #acacac;\\n font-size: .8em;\\n}\\n\"\n },\n \"$:/themes/nico/notebook/changelog\": {\n \"title\": \"$:/themes/nico/notebook/changelog\",\n \"caption\": \"ChangeLog\",\n \"created\": \"20201217180707912\",\n \"modified\": \"20210202214001915\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"! 1.4.1\\n\\n!! Fixes\\n\\n* Fix the transclusion mode of sidebar sections\\n* Fix section title rendering for tiddlers without a caption field\\n* Fix the colour of links in the sidebar when using Notebook palettes with Vanilla\\n\\n! 1.4.0\\n\\n!! Features\\n\\n* New redesigned topbar layout\\n* Add a configuration setting for the story width\\n* Add support for keyboard navigation in the search dropdown\\n\\n! 1.3.6\\n\\n!! Improvements\\n\\n* Improve the style of tabs\\n* New animation for drop-downs\\n* Use a lighter page background colour in the beige palette\\n\\n!! Fixes\\n\\n* Fix the default ctrl+shift+F shortcut for focusing the search input\\n\\n! 1.3.5\\n\\n!! Features\\n\\n* Add an option to reveal tiddler controls on mouseover\\n\\n! 1.3.4\\n\\n!! Improvements\\n\\n* Add a keyboard shortcut (alt+shift+s) to toggle Notebook sidebar\\n* Add missing colours to tiddler editor fields in the dark palette\\n\\n!! Fixes\\n\\n* Fix the size of toolbar button labels when the $:/config/Toolbar/Text is set to yes\\n\\n! 1.3.3\\n\\n!! Improvements\\n\\n* Make the sidebar more generic by using the default sidebar sections\\n\\n! 1.3.2\\n\\n!! Improvements\\n\\n* Add colours for messages in the dark palette\\n* Add colours for notification in the dark palette\\n* Set colours for messages in the beige palette\\n\\n! 1.3.1\\n\\n!! Features\\n\\n* New font family settings distinct from the Vanilla theme\\n\\n!! Improvements\\n\\n* Use a slightly lighter colour as the search input background\\n* Improve contrast of sidebar buttons in the dark palette\\n\\n!! Fixes\\n\\n* Fix tiddler control button colours in all three palettes\\n* Fix tab colours in palette-dark\\n\\n! 1.3.0\\n\\n!! Improvements\\n\\n* New dark colour palette\\n* Use a darker color for tiddler subtitles\\n* Add back the WebKit search cancel button in search inputs\\n\\n!! Fixes\\n\\n* Fix the z-index of the topbar for the zoomin story view\\n* Fix the font weight of tiddler titles in edit mode\\n\\n! 1.2.0\\n\\n!! Improvements\\n\\n* Better support for dark colour palettes\\n\\n!! Fixes\\n\\n* Fix rendering of overflowing/wrapping text in the sidebar\\n\\n! 1.1.0\\n\\n!! Features\\n\\n* New theme tweaks tab dedicated to Notebook in the control panel\\n* Inputs in the edit template are now styled consistently with other inputs\\n\\n!! Fixes\\n\\n* Fixes the position of sticky tiddler titles when the option is turned on\\n\"\n },\n \"$:/config/ShortcutInfo/notebook-focus-search\": {\n \"title\": \"$:/config/ShortcutInfo/notebook-focus-search\",\n \"text\": \"Focus on the topbar search field\"\n },\n \"$:/config/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/config/shortcuts/notebook-focus-search\",\n \"text\": \"ctrl+shift+F\"\n },\n \"$:/config/Search/AutoFocus\": {\n \"title\": \"$:/config/Search/AutoFocus\",\n \"text\": \"false\"\n },\n \"$:/config/shortcuts/sidebar-search\": {\n \"title\": \"$:/config/shortcuts/sidebar-search\",\n \"text\": \"\"\n },\n \"$:/themes/nico/notebook/images/bars\": {\n \"title\": \"$:/themes/nico/notebook/images/bars\",\n \"created\": \"20200428212322206\",\n \"modified\": \"20201210210231235\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg class=\\\"bars\\\" height=\\\"21pt\\\" viewBox=\\\"0 0 42 42\\\" enable-background=\\\"new 0 0 32 22.5\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cg class=\\\"svg-menu-toggle\\\" sketch:type=\\\"MSLayerGroup\\\">\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"28\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"19\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"10\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003C/g>\\n\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-down\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-down\",\n \"created\": \"20200429194348688\",\n \"modified\": \"20201210210230919\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"6pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\">\u003Cpath d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-right\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-right\",\n \"created\": \"20200429194305719\",\n \"modified\": \"20201210210230909\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"4pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\">\u003Cpath d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/color-switch\": {\n \"title\": \"$:/themes/nico/notebook/images/color-switch\",\n \"created\": \"20201210170859810\",\n \"creator\": \"nico\",\n \"modified\": \"20201210205606403\",\n \"modifier\": \"nico\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"20px\\\" height=\\\"20px\\\" viewBox=\\\"0 0 16 16\\\" class=\\\"bi bi-circle-half\\\" fill=\\\"currentColor\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cpath fill-rule=\\\"evenodd\\\" d=\\\"M8 15V1a7 7 0 1 1 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\\\"/>\\n\u003C/svg\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodyfontsize\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodyfontsize\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"15px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodylineheight\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodylineheight\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"22px\"\n },\n \"$:/themes/nico/notebook/metrics/sidebar-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/sidebar-width\",\n \"created\": \"20200429144554294\",\n \"modified\": \"20201210210231246\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"350px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/story-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/story-width\",\n \"created\": \"20210123210054185\",\n \"modified\": \"20210123211911688\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"800px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/topbar-height\": {\n \"title\": \"$:/themes/nico/notebook/metrics/topbar-height\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"52px\\n\"\n },\n \"$:/themes/nico/notebook/options/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/options/stickytitles\",\n \"text\": \"no\"\n },\n \"$:/themes/nico/notebook/options/codewrapping\": {\n \"title\": \"$:/themes/nico/notebook/options/codewrapping\",\n \"text\": \"pre-wrap\"\n },\n \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\": {\n \"title\": \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\",\n \"text\": \"no\"\n },\n \"$:/core/ui/PageTemplate/sidebar\": {\n \"title\": \"$:/core/ui/PageTemplate/sidebar\",\n \"created\": \"20200430072116835\",\n \"modified\": \"20201217174129501\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\nOverwritten by $:/themes/nico/notebook so that the default sidebar does not get rendered.\\n\"\n },\n \"$:/themes/tiddlywiki/vanilla/themetweaks\": {\n \"title\": \"$:/themes/tiddlywiki/vanilla/themetweaks\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"created\": \"20201217163834291\",\n \"modified\": \"20201217163914434\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"Overwritten by $:/themes/nico/notebook so that the Vanilla theme tweaks do not appear in the control panel. \"\n },\n \"$:/themes/nico/notebook/palettes/palette-beige\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-beige\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #3F3B3B\\nmessage-background: #e6f5e8\\nmessage-border: #2b5532\\nmessage-foreground: #2b5532\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f5f5ee\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #7f4bca\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #dbdbc7;\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A beige colour palette for Notebook\",\n \"name\": \"Notebook Beige\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-dark\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-dark\",\n \"text\": \"alert-background: #643b43\\nalert-border: #3f181f\\nalert-highlight: #881122\\nalert-muted-foreground: #bc8b94\\nbackground: #383e49\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-border:\\nbutton-foreground:\\ncode-background: #2c323b\\ncode-border: #111\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #98be65\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #111\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #61afef\\nexternal-link-foreground: #c678dd\\nforeground: #c8ced8\\nmessage-background: #2c323e\\nmessage-border: #111\\nmessage-foreground: #d5e2f1\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #3a5e39\\nnotification-border: #192c19\\npage-background: #262b33\\npre-background: \u003C\u003Ccolour page-background>>\\npre-border: \u003C\u003Ccolour tiddler-border>>\\nprimary: #bf93ff\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #5e646f\\nsidebar-controls-foreground-hover: #cad2e5\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #cad2e5\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: \u003C\u003Ccolour tab-background-selected>>\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: \u003C\u003Ccolour foreground>>\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: \u003C\u003Ccolour background>>\\ntab-background: \u003C\u003Ccolour page-background>>\\ntab-border-selected: \u003C\u003Ccolour foreground>>\\ntab-border: #cad2e5\\ntab-divider: #cad2e5\\ntab-foreground-selected: #ecf2ff\\ntab-foreground: #cad2e5\\ntable-border: #aaaaaa\\ntable-footer-background: #a8a8a8\\ntable-header-background: #262b33\\ntag-background: #fcb671\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #111\\ntiddler-controls-foreground-hover: #cad2e5\\ntiddler-controls-foreground-selected: #cad2e5\\ntiddler-controls-foreground: #5e646f\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(255, 255, 255, 0.3)\\ntiddler-editor-fields-even: \u003C\u003Ccolour background>>\\ntiddler-editor-fields-odd: #2c323b\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: \u003C\u003Ccolour foreground>>\\ntoolbar-cancel-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-done-button:\\ntoolbar-edit-button:\\ntoolbar-info-button:\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A dark colour palette for Notebook\",\n \"name\": \"Notebook Dark\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-grey\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-grey\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #283c46\\nmessage-background: #ecf2ff\\nmessage-border: #cfd6e6\\nmessage-foreground: #547599\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f4f4f4\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #127edd\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #ddd\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A grey color palette for Notebook\",\n \"name\": \"Notebook Grey\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/settings/codefontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/codefontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101214210227\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Fira Mono\\\",\\\"Liberation Mono\\\",Menlo,Courier,monospace\\n\"\n },\n \"$:/themes/nico/notebook/settings/fontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/fontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101213411800\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Segoe UI\\\",Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\"\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\",\n \"created\": \"20201210122048919\",\n \"key\": \"((notebook-focus-search))\",\n \"modified\": \"20210115130024907\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".nc-topbar input\\\"/>\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\",\n \"created\": \"20210115130000707\",\n \"key\": \"((toggle-sidebar))\",\n \"modified\": \"20210115130021883\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list\\n filter=\\\"[[$:/state/notebook-sidebar]is[missing]] [{$:/state/notebook-sidebar}removeprefix[yes]]\\\"\\n emptyMessage=\\\"\\\"\\\"\u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\"/>\\\"\\\"\\\"\\n>\\n \u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"no\\\"/>\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/stickytitles\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20201217180034682\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"text\": \"\u003C$reveal state=\\\"$:/themes/nico/notebook/options/stickytitles\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n\\n.tc-tiddler-title {\\n position: -webkit-sticky;\\n position: -moz-sticky;\\n position: -o-sticky;\\n position: -ms-sticky;\\n position: sticky;\\n top: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour tiddler-background>>;\\n z-index: 500;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-title {\\n top: 0;\\n }\\n}\\n\\n\u003C$list filter=\\\"[range[100]]\\\">\\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) {\\nz-index: `\u003C$text text={{{ [[200]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/tags/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"created\": \"20200429164516951\",\n \"list\": \"$:/themes/nico/notebook/ui/Buttons/menu $:/themes/nico/notebook/ui/Sidebar/Headings $:/themes/nico/notebook/ui/Sidebar/Search $:/themes/nico/notebook/Sidebar/Sections\",\n \"modified\": \"20201210205606504\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/tags/SidebarSection\": {\n \"title\": \"$:/themes/nico/notebook/tags/SidebarSection\",\n \"created\": \"20200429201017275\",\n \"list\": \"$:/themes/nico/notebook/ui/Sidebar/Open $:/themes/nico/notebook/ui/Sidebar/Recent $:/themes/nico/notebook/ui/Sidebar/Tools $:/themes/nico/notebook/ui/Sidebar/More\",\n \"modified\": \"20201210215658901\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/ui/Bottombar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Bottombar\",\n \"created\": \"20200429113453340\",\n \"modified\": \"20201210210230886\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-bottombar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-bar nc-bottombar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n {{$:/themes/nico/notebook/ui/Buttons/menu}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\",\n \"created\": \"20201210171047824\",\n \"description\": \"Toggle between grey/beige colour palette\",\n \"modified\": \"20210118213335643\",\n \"tags\": \"$:/tags/PageControls\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cspan class=\\\"desktop-only\\\">\\n \u003C$vars\\n palettes=\\\"[all[tiddlers+shadows]tag[$:/tags/notebook/Palette]]\\\"\\n popupTiddler=\u003C\u003Cqualify \\\"$:/state/notebook/palette-dropdown\\\">>\\n >\\n \u003C$button\\n popup=\u003C\u003CpopupTiddler>>\\n tooltip=\\\"Switch colours\\\"\\n aria-label=\\\"Switch colours\\\"\\n class=\u003C\u003Ctv-config-toolbar-class>>\\n >\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n\\t{{$:/themes/nico/notebook/images/color-switch}}\\n \u003C/$list>\\n\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\\t\u003Cspan class=\\\"tc-btn-text\\\">Switch colours\u003C/span>\\n \u003C/$list>\\n\\n \u003C$reveal state=\u003C\u003CpopupTiddler>> type=\\\"popup\\\" position=\\\"belowleft\\\" class=\\\"tc-drop-down\\\">\\n\\t\u003C$list filter=\u003C\u003Cpalettes>>>\\n\\t \u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t {{!!name}}\\n\\t \u003C$action-setfield $tiddler=\\\"$:/palette\\\" text={{!!title}}/>\\n\\t \u003C/$button>\\n\\t\u003C/$list>\\n \u003C/$reveal>\\n\\n \u003C/$button>\\n \u003C/$vars>\\n\u003C/span>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/menu\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/menu\",\n \"created\": \"20200429115248943\",\n \"modified\": \"20210124211756417\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"no\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle open\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"yes\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126170723413\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define advanced-search-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/input\\\" text={{$:/temp/notebook-search}}/>\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/refresh\\\" text=\\\"yes\\\"/>\\n\u003C$action-navigate $to=\\\"$:/AdvancedSearch\\\"/>\\n\\\\end\\n\\n\\\\define input-accept-actions()\\n\u003C$list filter=\\\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\\\">\\n \u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\\n \u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\n\u003C/$list>\\n\\\\end\\n\\n\\\\define cancel-search-actions()\\n\u003C$list filter=\\\"[\u003CsearchTiddler>get[text]!match{$:/temp/search}]\\\" emptyMessage=\\\"\\\"\\\"\u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\\"\\\"\\\">\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search\\\" text={{{ [\u003CsearchTiddler>get[text]] }}}/>\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search/refresh\\\" text=\\\"yes\\\"/>\u003C/$list>\\n\\\\end\\n\\n\u003C$vars editTiddler=\\\"$:/temp/search\\\"\\n searchTiddler=\\\"$:/temp/search/input\\\"\\n searchListState=\u003C\u003Cqualify \\\"$:/state/search-list/selected-item\\\">>>\\n \u003C$macrocall $name=\\\"keyboard-driven-input\\\"\\n\\t tiddler=\u003C\u003CeditTiddler>>\\n\\t storeTitle=\u003C\u003CsearchTiddler>>\\n\\t selectionStateTitle=\u003C\u003CsearchListState>>\\n\\t refreshTitle=\\\"$:/temp/search/refresh\\\"\\n\\t type=\\\"search\\\"\\n\\t tag=\\\"input\\\"\\n\\t focus={{$:/config/Search/AutoFocus}}\\n\\t focusPopup=\\\"$:/state/popup/notebook-search\\\"\\n\\t class=\\\"tc-popup-handle\\\"\\n\\t filterMinLength={{$:/config/Search/MinLength}}\\n\\t placeholder=\\\"Search...\\\"\\n\\t inputAcceptActions=\u003C\u003Cinput-accept-actions>>\\n\\t inputCancelActions=\u003C\u003Ccancel-search-actions>>\\n\\t cancelPopups=\\\"yes\\\"\\n\\t configTiddlerFilter=\\\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\\\"\\n\\t />\\n \u003C$button\\n tooltip={{$:/language/Buttons/AdvancedSearch/Hint}}\\n aria-label={{$:/language/Buttons/AdvancedSearch/Caption}}\\n class=\\\"tc-btn-invisible tc-page-controls\\\"\\n >\\n {{$:/core/images/advanced-search-button}}\\n \u003C\u003Cadvanced-search-actions>>\\n \u003C/$button>\\n \u003C$reveal tag=\\\"div\\\" class=\\\"tc-block-dropdown-wrapper\\\" state=\\\"$:/state/popup/notebook-search\\\" type=\\\"nomatch\\\" text=\\\"\\\" default=\\\"\\\">\\n \u003C$list filter=\\\"[\u003CsearchTiddler>get[text]minlength{$:/config/Search/MinLength}limit[1]]\\\" emptyMessage=\\\"\\\" variable=\\\"listItem\\\">\\n \u003Cdiv class=\\\"tc-block-dropdown tc-search-drop-down\\\">\\n \u003C$tiddler tiddler=\u003C\u003CconfigTiddler>>>\\n {{$:/themes/nico/notebook/ui/Sidebar/SearchResults}}\\n \u003C/$tiddler>\\n \u003C/div>\\n \u003C/$list>\\n \u003C/$reveal>\\n\u003C/$vars>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Headings\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Headings\",\n \"created\": \"20200429160014174\",\n \"modified\": \"20201210210231267\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content\\\">\\n \u003Ch1 class=\\\"tc-site-title\\\">\\n {{$:/SiteTitle}}\\n \u003C/h1>\\n \u003Cdiv class=\\\"tc-site-subtitle\\\">\\n {{$:/SiteSubtitle}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210124220152702\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"mobile-only\\\">\\n \u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content search\\\">\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126164631418\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define searchResultList()\\n \u003Csmall>{{$:/language/Search/Matches/Title}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-primaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\n \u003Csmall>{{$:/language/Search/Matches/All}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-secondaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-search-results\\\">\\n \u003C\u003CsearchResultList>>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\",\n \"created\": \"20200429161226897\",\n \"modified\": \"20210202213859460\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define sidebarHeading()\\n\u003C$vars tv-wikilinks=\\\"no\\\">\\n \u003C$transclude field=\\\"caption\\\">\\n \u003C$view field=\\\"title\\\"/>\\n \u003C/$transclude>\\n\u003C/$vars>\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"match\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"no\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section open\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\\\"\\\" class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-down}}\u003C/span>\\n \u003C/$button>\\n \u003Cdiv class=\\\"content\\\">\\n \u003C$transclude $tiddler=\u003C\u003CcurrentTiddler>> mode=\\\"block\\\"/>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"nomatch\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"yes\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\u003C\u003CcurrentTiddler>> class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-right}}\u003C/span>\\n \u003C/$button>\\n \u003C/div>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Sections\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Sections\",\n \"created\": \"20200429163239707\",\n \"modified\": \"20210112213620486\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list filter=\\\"[all[shadows+tiddlers]!has[draft.of]tag[$:/tags/SideBar]]\\\">\\n {{||$:/themes/nico/notebook/ui/Sidebar/SectionTemplate}}\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar\",\n \"created\": \"20200428201218885\",\n \"modified\": \"20210112213605486\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$scrollable fallthrough=\\\"no\\\">\\n \u003Cdiv class=\\\"nc-sidebar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/themes/nico/notebook/tags/Sidebar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"inline\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003C/div>\\n \u003C/$scrollable>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Topbar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Topbar\",\n \"created\": \"20200428203101797\",\n \"modified\": \"20210124213834458\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-topbar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-topbar-wrapper\\\">\\n \u003Cdiv class=\\\"nc-bar nc-topbar tc-adjust-top-of-scroll\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n\\t{{$:/themes/nico/notebook/ui/Buttons/menu}}\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n }\n }\n}","bag":"default","revision":"0","version":"1.4.1","type":"application/json","title":"$:/themes/nico/notebook","source":"https://github.com/NicolasPetton/Notebook","plugin-type":"theme","name":"Notebook theme","list":"LICENSE changelog","description":"A clean, uncluttered TiddlyWiki theme","dependents":"$:/themes/tiddlywiki/vanilla $:/plugins/nico/notebook-mobile","core-version":">=5.1.22","author":"NicolasPetton"},
{"created":"20200429144554294","title":"$:/themes/nico/notebook/metrics/sidebar-width","modified":"20230423163514560","tags":"","type":"text/vnd.tiddlywiki","text":"300px"},
@@ -1023,7 +1023,7 @@ Error message and password prompt
{"created":"20230427081708927","text":"\u003C!-- sandboxify textareas with class 'sandboxify' -->\n\u003Cscript>\n\nfunction sandboxify() { \n let run = (t) => {\n let $res = t.parentElement.children[1]\n function log(res){\n\t\t if( !$res ) return\n $res.innerHTML = typeof res == 'string' ? res : JSON.stringify(res,null,2)\n }\n let _log = console.log\n console.log = log\n try{\n eval(t.value); \n }catch(e){ log(e) }finally{ console.log = _log }\n } \n const textareas = document.querySelectorAll(\"textarea.sandboxify\");\n textareas.forEach(t => {\n t.addEventListener(\"input\", function (event) {\n\t\t if( String(t.className).match(/noresult/) ) return\n try {\n run(t)\n } catch (error) {\n console.error(error);\n }\n });\n run(t)\n }); \n}\n\n// call sandboxify once on page load\nsandboxify();\n\n// set up a MutationObserver to call sandboxify on any new textareas added to the DOM\nconst observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.addedNodes && mutation.addedNodes.length > 0) {\n const addedNodes = mutation.addedNodes;\n addedNodes.forEach(addedNode => {\n if (addedNode.tagName === \"TEXTAREA\" && addedNode.classList.contains(\"sandboxify\")) {\n sandboxify();\n }\n });\n }\n });\n});\n\nobserver.observe(document, { childList: true, subtree: true });\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/sandboxify.js","modified":"20230627100108337"},
{"created":"20230427072514129","text":"\u003C!-- scriptie-talkie-embed.js -->\n\u003Cscript>\n\n(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=\"function\"==typeof require&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw Error(\"Cannot find module '\"+n+\"'\")}var u=t[n]={exports:{}};e[n][0](function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}for(var r=\"function\"==typeof require&&require,s=0;n.length>s;s++)i(n[s]);return i})({1:[function(require){\"use strict\";var scriptieTalkieEmbed=require(\"../../\");scriptieTalkieEmbed()},{\"../../\":2}],3:[function(require,module,exports){\"use strict\";module.exports=function(textarea){var opts={},data=textarea.getAttribute(\"data-scriptie-talkie\");if(!data)return opts;try{opts=eval(\"(\"+data+\")\")}catch(e){console.error(e)}finally{return opts}}},{}],4:[function(require,module){\"use strict\";function trimEmpty(lines){for(;lines.length&&!lines[0].trim().length;)lines.shift();for(;lines.length&&!lines[lines.length-1].trim().length;)lines.length--}function leftAlign(lines){var indent=-1;if(lines.filter(function(line){return line.trim().length}).forEach(function(line){for(var lineIndent=0,col=0;\" \"===line.charAt(col++);)lineIndent++;indent=-1===indent?lineIndent:Math.min(indent,lineIndent)}),!indent)return lines;for(var i=0;lines.length>i;i++)lines[i]=lines[i].slice(indent)}module.exports=function(textarea,addRows){addRows=addRows||0;var lines=textarea.textContent.split(\"\\n\");return trimEmpty(lines),leftAlign(lines),textarea.rows=Math.max(lines.length+addRows,1),textarea.textContent=lines.join(\"\\n\"),lines}},{}],5:[function(require,module){\"use strict\";function replaceElement(replaceEl,withEl){replaceEl.parentNode.replaceChild(withEl,replaceEl)}var format=require(\"util\").format;module.exports=function(textarea,opts){opts=opts||{};var minHeight=opts.minHeight||150,maxHeight=opts.maxHeight||600,minWidth=opts.minWidth||600,textareaWidth=textarea.clientWidth,width=Math.max(minWidth,textareaWidth),height=textarea.clientHeight+50;height=Math.max(minHeight,height),height=Math.min(maxHeight,height);var container=document.createElement(\"div\");return container.setAttribute(\"class\",\"scriptie-talkie-container\"),container.setAttribute(\"style\",format(\"width: %spx; height: %spx\",width,height)),replaceElement(textarea,container),container}},{util:6}],7:[function(require,module){\"use strict\";module.exports=function(container){var link=document.createElement(\"a\");return link.setAttribute(\"class\",\"scriptie-talkie-link\"),window.link=link,container.appendChild(link),link.textContent=\"full view\",link}},{}],8:[function(require,module){\"use script\";module.exports=function(){var head=document.getElementsByTagName(\"head\")[0],style=document.createElement(\"style\");style.type=\"text/css\",style.styleSheet?style.styleSheet.cssText=css:style.appendChild(document.createTextNode(css)),head.appendChild(style)};var css=[\"textarea.scriptie-talkie {\",\" visibility: hidden;\",\" display : block;\",\"}\",\".scriptie-talkie-container {\",\" position: relative; \",\" margin: 10px 0px;\",\"}\",\".scriptie-talkie-editor,\",\".scriptie-talkie-terminal {\",\" position: absolute;\",\" top: 0;\",\" bottom: 0;\",\" height: 100%;\",\" width: 50%;\",\"}\",\".scriptie-talkie-editor {\",\" left: 0;\",\" right: 50%;\",\"}\",\".scriptie-talkie-link {\",\" position : absolute;\",\" bottom : 1px;\",\" right : 4px;\",\" font-size : 14px;\",\" color : yellowgreen;\",\" z-index : 1;\",\"}\",\"textarea.scriptie-talkie, \",\".scriptie-talkie-terminal,\",\".scriptie-talkie-editor {\",\" /* text area needs same font to determine editor size correctly */\",\" font-size : 14px;\",\" font-family : Terminus,Consolas,Profont,Monaco,Inconsolata,Inconsolata-g,\",' Unifont,Lime,\"ClearlyU PUA\",Clean,\"DejaVu Sans Mono\",\"Lucida Console\",',' \"Bitstream Vera Sans Mono\",Freemono,\"Liberation Mono\",Dina,Anka,Droid Sans Mono,',' Anonymous Pro,Proggy fonts,Envy Code R,Gamow,Courier,\"Courier New\",Terminal,monospace;',\"}\",\".scriptie-talkie-terminal {\",\" background : black;\",\" right: 0;\",\" left: 50%;\",\" overflow: auto\",\"}\",\"/* tweak the ace editor a bit since we will never have >99 lines and need to save space */\",\".scriptie-talkie-editor .ace_gutter-cell ,\",\".scriptie-talkie-editor .ace_folding-enabled > .ace_gutter-cell { \",\" padding-left: 20px;\",\" padding-right: 5px;\",\"}\"].join(\"\\n\")},{}],9:[function(require,module){\"use strict\";var qs=require(\"querystring\"),scriptieTalkieUrl=\"http://thlorenz.github.io/scriptie-talkie\";module.exports=function(code){return scriptieTalkieUrl+\"?\"+qs.stringify({code:code})}},{querystring:10}],2:[function(require,module){\"use strict\";function harvest(scripties){for(var textarea,res=[],len=scripties.length,i=0;len>i;i++)textarea=scripties.item(i),res.push(textarea);return res}function sizeTerminalToRowsAndAdjust(container,lines){var evaluatedLines=evaluateScript(lines.join(\"\\n\")),term=createTerminal(container,{lines:evaluatedLines});return container.style.height=term.height+\"px\",term}function talkify(textareas){loadStyles(),textareas.forEach(function(textarea){function evaluate(){var code=editor.getValue();terminal.reset(),link.setAttribute(\"href\",linkTo(code)),evaluateScript(code,terminal.writeln.bind(terminal))}var term,lines=prepareTextarea(textarea,-3),config=getTextareaConfig(textarea),container=createContainer(textarea),link=createLink(container);term=config.sizeToEditor?createTerminal(container):sizeTerminalToRowsAndAdjust(container,lines);var edit=createEditor(container,textarea.textContent,config),terminal=term.terminal,editor=edit.editor;editor.on(\"change\",debounce(evaluate,400,!1)),editor.clearSelection(),evaluate()})}var debounce=require(\"debounce\"),getTextareaConfig=require(\"./lib/get-textarea-config\"),prepareTextarea=require(\"./lib/prepare-textarea\"),createContainer=require(\"./lib/create-container\"),createEditor=require(\"./lib/create-editor\"),createTerminal=require(\"./lib/create-terminal\"),createLink=require(\"./lib/create-link\"),evaluateScript=require(\"./lib/evaluate-script\"),loadStyles=require(\"./lib/load-styles\"),linkTo=require(\"./lib/link-to\");module.exports=function(){var wantScripties=document.getElementsByClassName(\"scriptie-talkie\"),textareas=harvest(wantScripties);textareas.length&&talkify(textareas)},window.scriptieTalkieEmbed=module.exports},{\"./lib/get-textarea-config\":3,\"./lib/prepare-textarea\":4,\"./lib/create-container\":5,\"./lib/create-editor\":11,\"./lib/create-terminal\":12,\"./lib/create-link\":7,\"./lib/evaluate-script\":13,\"./lib/load-styles\":8,\"./lib/link-to\":9,debounce:14}],6:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:15}],10:[function(require,module,exports){function stringifyString(str,prefix){if(!prefix)throw new TypeError(\"stringify expects an object\");return prefix+\"=\"+encodeURIComponent(str)}function stringifyArray(arr,prefix){var ret=[];if(!prefix)throw new TypeError(\"stringify expects an object\");for(var i=0;arr.length>i;i++)ret.push(stringify(arr[i],prefix+\"[]\"));return ret.join(\"&\")}function stringifyObject(obj,prefix){for(var key,ret=[],keys=objectKeys(obj),i=0,len=keys.length;len>i;++i)key=keys[i],ret.push(stringify(obj[key],prefix?prefix+\"[\"+encodeURIComponent(key)+\"]\":encodeURIComponent(key)));return ret.join(\"&\")}function set(obj,key,val){var v=obj[key];void 0===v?obj[key]=val:isArray(v)?v.push(val):obj[key]=[v,val]}function lastBraceInKey(str){for(var brace,c,len=str.length,i=0;len>i;++i)if(c=str[i],\"]\"==c&&(brace=!1),\"[\"==c&&(brace=!0),\"=\"==c&&!brace)return i}var isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},objectKeys=Object.keys||function objectKeys(object){if(object!==Object(object))throw new TypeError(\"Invalid object\");var keys=[];for(var key in object)object.hasOwnProperty(key)&&(keys[keys.length]=key);return keys};exports.version=\"0.3.1\";var toString=Object.prototype.toString,notint=/[^0-9]/;exports.parse=function(str){function promote(parent,key){if(0==parent[key].length)return parent[key]={};var t={};for(var i in parent[key])t[i]=parent[key][i];return parent[key]=t,t}return null==str||\"\"==str?{}:(str+\"\").split(\"&\").reduce(function(ret,pair){function parse(parts,parent,key){var part=parts.shift();part?(obj=parent[key]=parent[key]||[],\"]\"==part?isArray(obj)?\"\"!=val&&obj.push(val):\"object\"==typeof obj?obj[objectKeys(obj).length]=val:obj=parent[key]=[parent[key],val]:~part.indexOf(\"]\")?(part=part.substr(0,part.length-1),notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part)):(notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part))):isArray(parent[key])?parent[key].push(val):parent[key]=\"object\"==typeof parent[key]?val:parent[key]===void 0?val:[parent[key],val]}try{pair=decodeURIComponent(pair.replace(/\\+/g,\" \"))}catch(e){}var eql=pair.indexOf(\"=\"),brace=lastBraceInKey(pair),key=pair.substr(0,brace||eql),val=pair.substr(brace||eql,pair.length),val=val.substr(val.indexOf(\"=\")+1,val.length),parent=ret;if(\"\"==key&&(key=pair,val=\"\"),~key.indexOf(\"]\")){var parts=key.split(\"[\");parts.length,parse(parts,parent,\"base\")}else{if(notint.test(key)&&isArray(parent.base)){var t={};for(var k in parent.base)t[k]=parent.base[k];parent.base=t}set(parent.base,key,val)}return ret},{base:{}}).base};var stringify=exports.stringify=function(obj,prefix){return isArray(obj)?stringifyArray(obj,prefix):\"[object Object]\"==toString.call(obj)?stringifyObject(obj,prefix):\"string\"==typeof obj?stringifyString(obj,prefix):prefix}},{}],14:[function(require,module){module.exports=function(func,threshold,execAsap){var timeout;return!1!==execAsap&&(execAsap=!0),function(){function delayed(){execAsap||func.apply(obj,args),timeout=null}var obj=this,args=arguments;timeout?clearTimeout(timeout):execAsap&&func.apply(obj,args),timeout=setTimeout(delayed,threshold||100)}}},{}],16:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],15:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:16}],17:[function(){ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!0,exports.cssClass=\"ace-monokai\",exports.cssText=\".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai .ace_scroller {background-color: #272822}.ace-monokai .ace_text-layer {color: #F8F8F2}.ace-monokai .ace_cursor {border-left: 2px solid #F8F8F0}.ace-monokai .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_markup.ace_underline {text-decoration: underline}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y}\";var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)})},{}],18:[function(require){(function(){ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextMode=acequire(\"./text\").Mode,Tokenizer=acequire(\"../tokenizer\").Tokenizer,JavaScriptHighlightRules=acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules,MatchingBraceOutdent=acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;acequire(\"../range\").Range;var WorkerClient=acequire(\"../worker/worker_client\").WorkerClient,CstyleBehaviour=acequire(\"./behaviour/cstyle\").CstyleBehaviour,CStyleFoldMode=acequire(\"./folding/cstyle\").FoldMode,Mode=function(){this.$tokenizer=new Tokenizer((new JavaScriptHighlightRules).getRules()),this.$outdent=new MatchingBraceOutdent,this.$behaviour=new CstyleBehaviour,this.foldingRules=new CStyleFoldMode};oop.inherits(Mode,TextMode),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),tokenizedLine=this.$tokenizer.getLineTokens(line,state),tokens=tokenizedLine.tokens,endState=tokenizedLine.state;if(tokens.length&&\"comment\"==tokens[tokens.length-1].type)return indent;if(\"start\"==state||\"no_regex\"==state){var match=line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);match&&(indent+=tab)}else if(\"doc-start\"==state){if(\"start\"==endState||\"no_regex\"==endState)return\"\";var match=line.match(/^\\s*(\\/?)\\*/);match&&(match[1]&&(indent+=\" \"),indent+=\"* \")}return indent},this.checkOutdent=function(state,line,input){return this.$outdent.checkOutdent(line,input)},this.autoOutdent=function(state,doc,row){this.$outdent.autoOutdent(doc,row)},this.createWorker=function(session){var worker=new WorkerClient([\"ace\"],require(\"../worker/javascript\"),\"JavaScriptWorker\");return worker.attachToDocument(session.getDocument()),worker.on(\"jslint\",function(results){session.setAnnotations(results.data)}),worker.on(\"terminate\",function(){session.clearAnnotations()}),worker}}.call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),DocCommentHighlightRules=acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,JavaScriptHighlightRules=function(){var keywordMapper=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),kwBeforeRe=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",identifierRe=\"[a-zA-Z\\\\$_¡-][a-zA-Z\\\\d\\\\$_¡-]*\\\\b\",escapedRe=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[{token:\"comment\",regex:/\\/\\/.*$/},DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+identifierRe+\")(\\\\.)(prototype)(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+identifierRe+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+kwBeforeRe+\")\\\\b\",next:\"start\"},{token:[\"punctuation.operator\",\"support.function\"],regex:/(\\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.function.dom\"],regex:/(\\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.constant\"],regex:/(\\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|timeEnd|assert)\\b/},{token:keywordMapper,regex:identifierRe},{token:\"keyword.operator\",regex:/--|\\+\\+|[!$%&*+\\-~]|===|==|=|!=|!==|\u003C=|>=|\u003C\u003C=|>>=|>>>=|\u003C>|\u003C|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=/,next:\"start\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"keyword.operator\",regex:/\\/=?/,next:\"start\"},{token:\"comment\",regex:/^#!.*$/}],start:[DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment_regex_allowed\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\",next:\"start\"},{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/\\\\w*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:identifierRe},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],comment_regex_allowed:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]},this.embedRules(DocCommentHighlightRules,\"doc-\",[DocCommentHighlightRules.getEndRule(\"no_regex\")])\n};oop.inherits(JavaScriptHighlightRules,TextHighlightRules),exports.JavaScriptHighlightRules=JavaScriptHighlightRules}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,DocCommentHighlightRules=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},{token:\"comment.doc.tag\",regex:\"\\\\bTODO\\\\b\"},{defaultToken:\"comment.doc\"}]}};oop.inherits(DocCommentHighlightRules,TextHighlightRules),DocCommentHighlightRules.getStartRule=function(start){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:start}},DocCommentHighlightRules.getEndRule=function(start){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:start}},exports.DocCommentHighlightRules=DocCommentHighlightRules}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../range\").Range,MatchingBraceOutdent=function(){};(function(){this.checkOutdent=function(line,input){return/^\\s+$/.test(line)?/^\\s*\\}/.test(input):!1},this.autoOutdent=function(doc,row){var line=doc.getLine(row),match=line.match(/^(\\s*\\})/);if(!match)return 0;var column=match[1].length,openBracePos=doc.findMatchingBracket({row:row,column:column});if(!openBracePos||openBracePos.row==row)return 0;var indent=this.$getIndent(doc.getLine(openBracePos.row));doc.replace(new Range(row,0,row,column-1),indent)},this.$getIndent=function(line){return line.match(/^\\s*/)[0]}}).call(MatchingBraceOutdent.prototype),exports.MatchingBraceOutdent=MatchingBraceOutdent}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\"),Behaviour=acequire(\"../behaviour\").Behaviour,TokenIterator=acequire(\"../../token_iterator\").TokenIterator,lang=acequire(\"../../lib/lang\"),SAFE_INSERT_IN_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\"],SAFE_INSERT_BEFORE_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],autoInsertedBrackets=0,autoInsertedRow=-1,autoInsertedLineEnd=\"\",maybeInsertedBrackets=0,maybeInsertedRow=-1,maybeInsertedLineStart=\"\",maybeInsertedLineEnd=\"\",CstyleBehaviour=function(){CstyleBehaviour.isSaneInsertion=function(editor,session){var cursor=editor.getCursorPosition(),iterator=new TokenIterator(session,cursor.row,cursor.column);if(!this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS)){var iterator2=new TokenIterator(session,cursor.row,cursor.column+1);if(!this.$matchTokenType(iterator2.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS))return!1}return iterator.stepForward(),iterator.getCurrentTokenRow()!==cursor.row||this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_BEFORE_TOKENS)},CstyleBehaviour.$matchTokenType=function(token,types){return types.indexOf(token.type||token)>-1},CstyleBehaviour.recordAutoInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isAutoInsertedClosing(cursor,line,autoInsertedLineEnd[0])||(autoInsertedBrackets=0),autoInsertedRow=cursor.row,autoInsertedLineEnd=bracket+line.substr(cursor.column),autoInsertedBrackets++},CstyleBehaviour.recordMaybeInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isMaybeInsertedClosing(cursor,line)||(maybeInsertedBrackets=0),maybeInsertedRow=cursor.row,maybeInsertedLineStart=line.substr(0,cursor.column)+bracket,maybeInsertedLineEnd=line.substr(cursor.column),maybeInsertedBrackets++},CstyleBehaviour.isAutoInsertedClosing=function(cursor,line,bracket){return autoInsertedBrackets>0&&cursor.row===autoInsertedRow&&bracket===autoInsertedLineEnd[0]&&line.substr(cursor.column)===autoInsertedLineEnd},CstyleBehaviour.isMaybeInsertedClosing=function(cursor,line){return maybeInsertedBrackets>0&&cursor.row===maybeInsertedRow&&line.substr(cursor.column)===maybeInsertedLineEnd&&line.substr(0,cursor.column)==maybeInsertedLineStart},CstyleBehaviour.popAutoInsertedClosing=function(){autoInsertedLineEnd=autoInsertedLineEnd.substr(1),autoInsertedBrackets--},CstyleBehaviour.clearMaybeInsertedClosing=function(){maybeInsertedBrackets=0,maybeInsertedRow=-1},this.add(\"braces\",\"insertion\",function(state,action,editor,session,text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);if(\"{\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"{\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"{\"+selected+\"}\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return/[\\]\\}\\)]/.test(line[cursor.column])?(CstyleBehaviour.recordAutoInsert(editor,session,\"}\"),{text:\"{}\",selection:[1,1]}):(CstyleBehaviour.recordMaybeInsert(editor,session,\"{\"),{text:\"{\",selection:[1,1]})}else if(\"}\"==text){var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar){var matching=session.$findOpeningBracket(\"}\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else if(\"\\n\"==text||\"\\r\\n\"==text){var closing=\"\";CstyleBehaviour.isMaybeInsertedClosing(cursor,line)&&(closing=lang.stringRepeat(\"}\",maybeInsertedBrackets),CstyleBehaviour.clearMaybeInsertedClosing());var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar||\"\"!==closing){var openBracePos=session.findMatchingBracket({row:cursor.row,column:cursor.column},\"}\");if(!openBracePos)return null;var indent=this.getNextLineIndent(state,line.substring(0,cursor.column),session.getTabString()),next_indent=this.$getIndent(line);return{text:\"\\n\"+indent+\"\\n\"+next_indent+closing,selection:[1,indent.length,1,indent.length]}}}}),this.add(\"braces\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"{\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.end.column,range.end.column+1);if(\"}\"==rightChar)return range.end.column++,range;maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(state,action,editor,session,text){if(\"(\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"(\"+selected+\")\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\")\"),{text:\"()\",selection:[1,1]}}else if(\")\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\")\"==rightChar){var matching=session.$findOpeningBracket(\")\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"(\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\")\"==rightChar)return range.end.column++,range}}),this.add(\"brackets\",\"insertion\",function(state,action,editor,session,text){if(\"[\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"[\"+selected+\"]\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\"]\"),{text:\"[]\",selection:[1,1]}}else if(\"]\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\"]\"==rightChar){var matching=session.$findOpeningBracket(\"]\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"[\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\"]\"==rightChar)return range.end.column++,range}}),this.add(\"string_dquotes\",\"insertion\",function(state,action,editor,session,text){if('\"'==text||\"'\"==text){var quote=text,selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"'\"!==selected&&'\"'!=selected&&editor.getWrapBehavioursEnabled())return{text:quote+selected+quote,selection:!1};var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),leftChar=line.substring(cursor.column-1,cursor.column);if(\"\\\\\"==leftChar)return null;for(var token,tokens=session.getTokens(selection.start.row),col=0,quotepos=-1,x=0;tokens.length>x&&(token=tokens[x],\"string\"==token.type?quotepos=-1:0>quotepos&&(quotepos=token.value.indexOf(quote)),!(token.value.length+col>selection.start.column));x++)col+=tokens[x].value.length;if(!token||0>quotepos&&\"comment\"!==token.type&&(\"string\"!==token.type||selection.start.column!==token.value.length+col-1&&token.value.lastIndexOf(quote)===token.value.length-1)){if(!CstyleBehaviour.isSaneInsertion(editor,session))return;return{text:quote+quote,selection:[1,1]}}if(token&&\"string\"===token.type){var rightChar=line.substring(cursor.column,cursor.column+1);if(rightChar==quote)return{text:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&('\"'==selected||\"'\"==selected)){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(rightChar==selected)return range.end.column++,range}})};oop.inherits(CstyleBehaviour,Behaviour),exports.CstyleBehaviour=CstyleBehaviour}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\");acequire(\"../../range\").Range;var BaseFoldMode=acequire(\"./fold_mode\").FoldMode,FoldMode=exports.FoldMode=function(commentRegex){commentRegex&&(this.foldingStartMarker=RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.start)),this.foldingStopMarker=RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.end)))};oop.inherits(FoldMode,BaseFoldMode),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.getFoldWidgetRange=function(session,foldStyle,row){var line=session.getLine(row),match=line.match(this.foldingStartMarker);if(match){var i=match.index;return match[1]?this.openingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i+match[0].length,1)}if(\"markbeginend\"===foldStyle){var match=line.match(this.foldingStopMarker);if(match){var i=match.index+match[0].length;return match[1]?this.closingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i,-1)}}}}.call(FoldMode.prototype)})})()},{\"../worker/javascript\":19}],11:[function(require,module){\"use strict\";var ace=require(\"brace\");require(\"brace/mode/javascript\"),require(\"brace/theme/monokai\"),module.exports=function(container,src){var editorContainer=document.createElement(\"div\");editorContainer.setAttribute(\"class\",\"scriptie-talkie-editor\"),container.appendChild(editorContainer);var editor=ace.edit(editorContainer),session=editor.getSession();return editor.setTheme(\"ace/theme/monokai\"),session.setMode(\"ace/mode/javascript\"),session.$tabSize=2,editor.$highlightActiveLine=!1,editor.setValue(src),{container:editorContainer,editor:editor}}},{\"brace/mode/javascript\":18,\"brace/theme/monokai\":17,brace:20}],12:[function(require,module){\"use strict\";function appendTerminal(terminalContainer,lines){var terminal=hypernal();return lines&&lines.forEach(function(line){terminal.writeln(line)}),terminal.appendTo(terminalContainer),terminal}function appendTerminalAndGetHeight(terminalContainer,lines){var terminal=appendTerminal(terminalContainer,lines),height=terminal.element.clientHeight;return{terminal:terminal,height:height}}var hypernal=require(\"hypernal\");module.exports=function(container,opts){opts=opts||{};var height,terminal,terminalContainer=document.createElement(\"div\");if(terminalContainer.setAttribute(\"class\",\"scriptie-talkie-terminal\"),container.appendChild(terminalContainer),opts.lines){var appended=appendTerminalAndGetHeight(terminalContainer,opts.lines);terminal=appended.terminal,height=appended.height}else terminal=appendTerminal(terminalContainer);return{container:terminalContainer,terminal:terminal,height:height}}},{hypernal:21}],13:[function(require,module){\"use strict\";var scriptieTalkie=require(\"scriptie-talkie\");module.exports=function(script,writeln){var lines=[];if(writeln=writeln||function(){},!script.trim().length)return lines;try{lines=scriptieTalkie(script),lines.forEach(function(line){writeln(line)})}catch(e){if(console.log(e.stack),console.error(\"\"+e),e instanceof ReferenceError&&/Trying to access object from destroyed plug-in/.test(e.message)){var msg=\"Looks like your iPad Safari browser doesn't like what scriptie talkie is doing.\\nPlease try another device and/or browser, i.e. chrome works everywhere, even on iPad.\";writeln(msg)}else e.inner?(writeln(\"unable to parse the current code, looks like you have an error on: \"),writeln(\"line: \"+e.inner.lineNumber+\" column: \"+e.inner.column)):(writeln(\"\"+e),writeln(e.stack))}return lines}},{\"scriptie-talkie\":22}],19:[function(require,module){(function(){module.exports.id=\"ace/mode/javascript_worker\",module.exports.src='\"no use strict\";(function(window){void 0!==window.window&&window.document||(window.console={log:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},error:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})}},window.window=window,window.ace=window,window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\\\/\\\\.\\\\//,\"/\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\"\")}}return moduleName},window.acequire=function(parentId,id){if(!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=normalizeModule(parentId,id);var module=acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;var chunks=id.split(\"/\");chunks[0]=acequire.tlns[chunks[0]]||chunks[0];var path=chunks.join(\"/\")+\".js\";return acequire.id=id,importScripts(path),acequire(parentId,id)},acequire.modules={},acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=acequire.id)):1==arguments.length&&(factory=id,id=acequire.id),0!==id.indexOf(\"text!\")){var req=function(deps,factory){return acequire(id,deps,factory)};acequire.modules[id]={factory:function(){var module={exports:{}},returnExports=factory(req,module.exports,module);return returnExports&&(module.exports=returnExports),module}}}},window.initBaseUrls=function initBaseUrls(topLevelNamespaces){acequire.tlns=topLevelNamespaces},window.initSender=function initSender(){var EventEmitter=acequire(null,\"ace/lib/event_emitter\").EventEmitter,oop=acequire(null,\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender},window.main=null,window.sender=null,window.onmessage=function(e){var msg=e.data;if(msg.command){if(!main[msg.command])throw Error(\"Unknown command:\"+msg.command);main[msg.command].apply(main,msg.args)}else if(msg.init){initBaseUrls(msg.tlns),acequire(null,\"ace/lib/fixoldbrowsers\"),sender=initSender();var clazz=acequire(null,msg.module)[msg.classname];main=new clazz(sender)}else msg.event&&sender&&sender._emit(msg.event,msg.data)})})(this),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != \\'object\\'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\\\n\u000b\\\\f\\\\r \\\\u2028\\\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can\\'t convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for \\'\"+eventName+\"\\' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};return function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(acequire,exports,module){function startRegex(arr){return RegExp(\"^(\"+arr.join(\"|\")+\")\")}var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,lint=acequire(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable \\'(.+)\\'.\",\\'Missing \"use strict\"\\']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\\\\\{a\\\\\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\\\\\[\\'{a}\\'\\\\\\\\] is better written in dot notation.\",\"\\'{a}\\' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{es5:!0,esnext:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\\\n/,\"\\\\n\"),!value)return this.sender.emit(\"jslint\",[]),void 0;var errors=[],maxErrorLevel=this.isValidJS(value)?\"warning\":\"error\";lint(value,this.options);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\"warning\";if(\"Missing semicolon.\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\\\S/)),\"error\"==maxErrorLevel&&str&&/[\\\\w\\\\d{([\\'\"]/.test(str)?(error.reason=\\'Missing \";\" before statement\\',type=\"error\"):type=\"info\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\"info\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\"\\'{a}\\' is not defined.\"==raw?type=\"warning\":\"\\'{a}\\' is defined but never used.\"==raw&&(type=\"info\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\"jslint\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/document\",\"ace/lib/lang\"],function(acequire,exports){var Document=acequire(\"../document\").Document,lang=acequire(\"../lib/lang\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\"\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\"change\",function(e){doc.applyDeltas([e.data]),deferredUpdate.schedule(_self.$timeout)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){}}).call(Mirror.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\"\\\\n\").split(\"\\\\n\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\"\\\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\\\r\\\\n\";case\"unix\":return\"\\\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\\\r\\\\n\"==text||\"\\\\r\"==text||\"\\\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)\\n},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\"\\\\\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/\\'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var JSHINT=function(){function F(){}function is_own(object,name){return Object.prototype.hasOwnProperty.call(object,name)}function checkOption(name,t){void 0===valOptions[name]&&void 0===boolOptions[name]&&warning(\"Bad option: \\'\"+name+\"\\'.\",t)}function isString(obj){return\"[object String]\"===Object.prototype.toString.call(obj)}function isAlpha(str){return str>=\"a\"&&\"z\">=str||str>=\"A\"&&\"Z\">=str}function isDigit(str){return str>=\"0\"&&\"9\">=str}function isIdentifier(token,value){return token?token.identifier&&token.value===value?!0:!1:!1}function supplant(str,data){return str.replace(/\\\\{([^{}]*)\\\\}/g,function(a,b){var r=data[b];return\"string\"==typeof r||\"number\"==typeof r?r:a})}function combine(t,o){var n;for(n in o)is_own(o,n)&&!is_own(JSHINT.blacklist,n)&&(t[n]=o[n])}function updatePredefined(){Object.keys(JSHINT.blacklist).forEach(function(key){delete predefined[key]})}function assume(){option.couch&&combine(predefined,couch),option.rhino&&combine(predefined,rhino),option.prototypejs&&combine(predefined,prototypejs),option.node&&(combine(predefined,node),option.globalstrict=!0),option.devel&&combine(predefined,devel),option.dojo&&combine(predefined,dojo),option.browser&&combine(predefined,browser),option.nonstandard&&combine(predefined,nonstandard),option.jquery&&combine(predefined,jquery),option.mootools&&combine(predefined,mootools),option.worker&&combine(predefined,worker),option.wsh&&combine(predefined,wsh),option.esnext&&useESNextSyntax(),option.globalstrict&&option.strict!==!1&&(option.strict=!0),option.yui&&combine(predefined,yui)}function quit(message,line,chr){var percentage=Math.floor(100*(line/lines.length));throw{name:\"JSHintError\",line:line,character:chr,message:message+\" (\"+percentage+\"% scanned).\",raw:message}}function isundef(scope,m,t,a){return JSHINT.undefs.push([scope,m,t,a])}function warning(m,t,a,b,c,d){var ch,l,w;return t=t||nexttoken,\"(end)\"===t.id&&(t=token),l=t.line||0,ch=t.from||0,w={id:\"(error)\",raw:m,evidence:lines[l-1]||\"\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(m,w),JSHINT.errors.push(w),option.passfail&&quit(\"Stopping. \",l,ch),warnings+=1,warnings>=option.maxerr&&quit(\"Too many errors.\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\"(internal)\",elem:elem,value:src},JSHINT.internals.push(i),i}function addlabel(t,type,token){\"hasOwnProperty\"===t&&warning(\"\\'hasOwnProperty\\' is a really bad name.\"),\"exception\"===type&&is_own(funct[\"(context)\"],t)&&(funct[t]===!0||option.node||warning(\"Value of \\'{a}\\' may be overwritten in IE.\",nexttoken,t)),is_own(funct,t)&&!funct[\"(global)\"]&&(funct[t]===!0?option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t):option.shadow||\"exception\"===type||warning(\"\\'{a}\\' is already defined.\",nexttoken,t)),funct[t]=type,token&&(funct[\"(tokens)\"][t]=token),funct[\"(global)\"]?(global[t]=funct,is_own(implied,t)&&(option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t),delete implied[t])):scope[t]=funct}function doOption(){var b,obj,filter,t,tn,v,minus,nt=nexttoken,o=nt.value,quotmarkValue=option.quotmark,predef={};switch(o){case\"*/\":error(\"Unbegun comment.\");break;case\"/*members\":case\"/*member\":o=\"/*members\",membersOnly||(membersOnly={}),obj=membersOnly,option.quotmark=!1;break;case\"/*jshint\":case\"/*jslint\":obj=option,filter=boolOptions;break;case\"/*global\":obj=predef;break;default:error(\"What?\")}for(t=lex.token();;){minus=!1;for(var breakOuterLoop;;){if(\"special\"===t.type&&\"*/\"===t.value){breakOuterLoop=!0;break}if(\"(endline)\"!==t.id&&\",\"!==t.id)break;t=lex.token()}if(breakOuterLoop)break;if(\"/*global\"===o&&\"-\"===t.value&&(minus=!0,t=lex.token()),\"(string)\"!==t.type&&\"(identifier)\"!==t.type&&\"/*members\"!==o&&error(\"Bad option.\",t),v=lex.token(),\":\"===v.id){v=lex.token(),obj===membersOnly&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",t,\"*/\",\":\"),\"/*jshint\"===o&&checkOption(t.value,t);var numericVals=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];if(numericVals.indexOf(t.value)>-1&&(\"/*jshint\"===o||\"/*jslint\"===o))b=+v.value,(\"number\"!=typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&error(\"Expected a small integer and instead saw \\'{a}\\'.\",v,v.value),\"indent\"===t.value&&(obj.white=!0),obj[t.value]=b;else if(\"validthis\"===t.value)funct[\"(global)\"]?error(\"Option \\'validthis\\' can\\'t be used in a global scope.\"):\"true\"===v.value||\"false\"===v.value?obj[t.value]=\"true\"===v.value:error(\"Bad option value.\",v);else if(\"quotmark\"===t.value&&\"/*jshint\"===o)switch(v.value){case\"true\":obj.quotmark=!0;break;case\"false\":obj.quotmark=!1;break;case\"double\":case\"single\":obj.quotmark=v.value;break;default:error(\"Bad option value.\",v)}else\"true\"===v.value||\"false\"===v.value?(\"/*jslint\"===o?(tn=renamedOptions[t.value]||t.value,obj[tn]=\"true\"===v.value,void 0!==invertedOptions[tn]&&(obj[tn]=!obj[tn])):obj[t.value]=\"true\"===v.value,\"newcap\"===t.value&&(obj[\"(explicitNewcap)\"]=!0)):error(\"Bad option value.\",v);t=lex.token()}else(\"/*jshint\"===o||\"/*jslint\"===o)&&error(\"Missing option value.\",t),obj[t.value]=!1,\"/*global\"===o&&minus===!0&&(JSHINT.blacklist[t.value]=t.value,updatePredefined()),t=v}\"/*members\"===o&&(option.quotmark=quotmarkValue),combine(predefined,predef);for(var key in predef)is_own(predef,key)&&(declared[key]=nt);filter&&assume()}function peek(p){for(var t,i=p||0,j=0;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t}function advance(id,t){switch(token.id){case\"(number)\":\".\"===nexttoken.id&&warning(\"A dot following a number can be confused with a decimal point.\",token);break;case\"-\":(\"-\"===nexttoken.id||\"--\"===nexttoken.id)&&warning(\"Confusing minusses.\");break;case\"+\":(\"+\"===nexttoken.id||\"++\"===nexttoken.id)&&warning(\"Confusing plusses.\")}for((\"(string)\"===token.type||token.identifier)&&(anonname=token.value),id&&nexttoken.id!==id&&(t?\"(end)\"===nexttoken.id?warning(\"Unmatched \\'{a}\\'.\",t,t.id):warning(\"Expected \\'{a}\\' to match \\'{b}\\' from line {c} and instead saw \\'{d}\\'.\",nexttoken,id,t.id,t.line,nexttoken.value):(\"(identifier)\"!==nexttoken.type||nexttoken.value!==id)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,id,nexttoken.value)),prevtoken=token,token=nexttoken;;){if(nexttoken=lookahead.shift()||lex.token(),\"(end)\"===nexttoken.id||\"(error)\"===nexttoken.id)return;if(\"special\"===nexttoken.type)doOption();else if(\"(endline)\"!==nexttoken.id)break}}function expression(rbp,initial){var left,isArray=!1,isObject=!1;if(\"(end)\"===nexttoken.id&&error(\"Unexpected early end of program.\",token),advance(),initial&&(anonname=\"anonymous\",funct[\"(verb)\"]=token.value),initial===!0&&token.fud)left=token.fud();else{if(token.nud)left=token.nud();else{if(\"(number)\"===nexttoken.type&&\".\"===token.id)return warning(\"A leading decimal point can be confused with a dot: \\'.{a}\\'.\",token,nexttoken.value),advance(),token;error(\"Expected an identifier and instead saw \\'{a}\\'.\",token,token.id)}for(;nexttoken.lbp>rbp;)isArray=\"Array\"===token.value,isObject=\"Object\"===token.value,left&&(left.value||left.first&&left.first.value)&&(\"new\"!==left.value||left.first&&left.first.value&&\".\"===left.first.value)&&(isArray=!1,left.value!==token.value&&(isObject=!1)),advance(),isArray&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the array literal notation [].\",token),isObject&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the object literal notation {}.\",token),token.led?left=token.led(left):error(\"Expected an operator and instead saw \\'{a}\\'.\",token,token.id)}return left}function adjacent(left,right){left=left||token,right=right||nexttoken,option.white&&left.character!==right.from&&left.line===right.line&&(left.from+=left.character-left.from,warning(\"Unexpected space after \\'{a}\\'.\",left,left.value))}function nobreak(left,right){left=left||token,right=right||nexttoken,!option.white||left.character===right.from&&left.line===right.line||warning(\"Unexpected space before \\'{a}\\'.\",right,right.value)}function nospace(left,right){left=left||token,right=right||nexttoken,option.white&&!left.comment&&left.line===right.line&&adjacent(left,right)}function nonadjacent(left,right){if(option.white){if(left=left||token,right=right||nexttoken,\";\"===left.value&&\";\"===right.value)return;left.line===right.line&&left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))}}function nobreaknonadjacent(left,right){left=left||token,right=right||nexttoken,option.laxbreak||left.line===right.line?option.white&&(left=left||token,right=right||nexttoken,left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))):warning(\"Bad line breaking before \\'{a}\\'.\",right,right.id)}function indentation(bias){var i;option.white&&\"(end)\"!==nexttoken.id&&(i=indent+(bias||0),nexttoken.from!==i&&warning(\"Expected \\'{a}\\' to have an indentation at {b} instead at {c}.\",nexttoken,nexttoken.value,i,nexttoken.from))}function nolinebreak(t){t=t||token,t.line!==nexttoken.line&&warning(\"Line breaking error \\'{a}\\'.\",t,t.value)}function comma(){token.line!==nexttoken.line?option.laxcomma||(comma.first&&(warning(\"Comma warnings can be turned off with \\'laxcomma\\'\"),comma.first=!1),warning(\"Bad line breaking before \\'{a}\\'.\",token,nexttoken.id)):!token.comment&&token.character!==nexttoken.from&&option.white&&(token.from+=token.character-token.from,warning(\"Unexpected space after \\'{a}\\'.\",token,token.value)),advance(\",\"),nonadjacent(token,nexttoken)}function symbol(s,p){var x=syntax[s];return x&&\"object\"==typeof x||(syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){return symbol(s,0)}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\"a\"&&\"z\">=c||c>=\"A\"&&\"Z\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\"function\"==typeof f?f:function(){return this.right=expression(150),this.arity=\"unary\",(\"++\"===this.id||\"--\"===this.id)&&(option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):this.right.identifier&&!this.right.reserved||\".\"===this.right.id||\"[\"===this.right.id||warning(\"Bad operand.\",this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(s,f){var x=type(s,f);return x.identifier=x.reserved=!0,x}function reservevar(s,v){return reserve(s,function(){return\"function\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.led=function(left){return w||(nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken)),\"in\"===s&&\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"function\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken);var right=expression(100);return isIdentifier(left,\"NaN\")||isIdentifier(right,\"NaN\")?warning(\"Use the isNaN function to compare with NaN.\",this):f&&f.apply(this,[left,right]),\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"!\"===right.id&&warning(\"Confusing use of \\'{a}\\'.\",right,\"!\"),this.left=left,this.right=right,this},x}function isPoorRelation(node){return node&&(\"(number)\"===node.type&&0===+node.value||\"(string)\"===node.type&&\"\"===node.value||\"null\"===node.type&&!option.eqnull||\"true\"===node.type||\"false\"===node.type||\"undefined\"===node.type)}function assignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){if(that.left=left,predefined[left.value]===!1&&scope[left.value][\"(global)\"]===!0?warning(\"Read only.\",left):left[\"function\"]&&warning(\"\\'{a}\\' is a function.\",left,left.value),left){if(option.esnext&&\"const\"===funct[left.value]&&warning(\"Attempting to override \\'{a}\\' which is a constant\",left,left.value),\".\"===left.id||\"[\"===left.id)return left.left&&\"arguments\"!==left.left.value||warning(\"Bad assignment.\",that),that.right=expression(19),that;if(left.identifier&&!left.reserved)return\"exception\"===funct[left.value]&&warning(\"Do not assign to the exception parameter.\",left),that.right=expression(19),that;left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment and instead saw a function invocation.\",token)}error(\"Bad assignment.\",that)},20)}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\"function\"==typeof f?f:function(left){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",that,that.id),nonadjacent(prevtoken,token),nonadjacent(token,nexttoken),left?\".\"===left.id||\"[\"===left.id||left.identifier&&!left.reserved?(expression(19),that):(left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment, and instead saw a function invocation.\",token),that):(error(\"Bad assignment.\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):left.identifier&&!left.reserved||\".\"===left.id||\"[\"===left.id||warning(\"Bad operand.\",this),this.left=left,this},x}function optionalidentifier(fnparam){return nexttoken.identifier?(advance(),token.reserved&&!option.es5&&(fnparam&&\"undefined\"===token.value||warning(\"Expected an identifier and instead saw \\'{a}\\' (a reserved word).\",token,token.id)),token.value):void 0}function identifier(fnparam){var i=optionalidentifier(fnparam);return i?i:(\"function\"===token.id&&\"(\"===nexttoken.id?warning(\"Missing name in function declaration.\"):error(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value),void 0)}function reachable(s){var t,i=0;if(\";\"===nexttoken.id&&!noreach)for(;;){if(t=peek(i),t.reach)return;if(\"(endline)\"!==t.id){if(\"function\"===t.id){if(!option.latedef)break;warning(\"Inner functions should be listed at the top of the outer function.\",t);break}warning(\"Unreachable \\'{a}\\' after \\'{b}\\'.\",t,t.value,s);break}i+=1}}function statement(noindent){var r,i=indent,s=scope,t=nexttoken;if(\";\"===t.id)return advance(\";\"),void 0;if(t.identifier&&!t.reserved&&\":\"===peek().id&&(advance(),advance(\":\"),scope=Object.create(s),addlabel(t.value,\"label\"),nexttoken.labelled||\"{\"===nexttoken.value||warning(\"Label \\'{a}\\' on {b} statement.\",nexttoken,t.value,nexttoken.value),jx.test(t.value+\":\")&&warning(\"Label \\'{a}\\' looks like a javascript url.\",t,t.value),nexttoken.label=t.value,t=nexttoken),\"{\"===t.id)return block(!0,!0),void 0;if(noindent||indentation(),r=expression(0,!0),!t.block){if(option.expr||r&&r.exps?option.nonew&&\"(\"===r.id&&\"new\"===r.left.id&&warning(\"Do not use \\'new\\' for side effects.\",t):warning(\"Expected an assignment or function call and instead saw an expression.\",token),\",\"===nexttoken.id)return comma();\";\"!==nexttoken.id?option.asi||option.lastsemic&&\"}\"===nexttoken.id&&nexttoken.line===token.line||warningAt(\"Missing semicolon.\",token.line,token.character):(adjacent(token,nexttoken),advance(\";\"),nonadjacent(token,nexttoken))}return indent=i,scope=s,r}function statements(startLine){for(var p,a=[];!nexttoken.reach&&\"(end)\"!==nexttoken.id;)\";\"===nexttoken.id?(p=peek(),p&&\"(\"===p.id||warning(\"Unnecessary semicolon.\"),advance(\";\")):a.push(statement(startLine===nexttoken.line));return a}function directives(){for(var i,p,pn;\"(string)\"===nexttoken.id;){if(p=peek(0),\"(endline)\"===p.id){i=1;do pn=peek(i),i+=1;while(\"(endline)\"===pn.id);if(\";\"!==pn.id){if(\"(string)\"!==pn.id&&\"(number)\"!==pn.id&&\"(regexp)\"!==pn.id&&pn.identifier!==!0&&\"}\"!==pn.id)break;warning(\"Missing semicolon.\",nexttoken)}else p=pn}else if(\"}\"===p.id)warning(\"Missing semicolon.\",p);else if(\";\"!==p.id)break;indentation(),advance(),directive[token.value]&&warning(\\'Unnecessary directive \"{a}\".\\',token,token.value),\"use strict\"===token.value&&(option[\"(explicitNewcap)\"]||(option.newcap=!0),option.undef=!0),directive[token.value]=!0,\";\"===p.id&&advance(\";\")}}function block(ordinary,stmt,isfunc){var a,m,t,line,d,b=inblock,old_indent=indent,s=scope;inblock=ordinary,ordinary&&option.funcscope||(scope=Object.create(scope)),nonadjacent(token,nexttoken),t=nexttoken;var metrics=funct[\"(metrics)\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\"{\"===nexttoken.id){if(advance(\"{\"),line=token.line,\"}\"!==nexttoken.id){for(indent+=option.indent;!ordinary&&nexttoken.from>indent;)indent+=option.indent;if(isfunc){m={};for(d in directive)is_own(directive,d)&&(m[d]=directive[d]);directives(),option.strict&&funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||directive[\"use strict\"]||warning(\\'Missing \"use strict\" statement.\\'))}a=statements(line),metrics.statementCount+=a.length,isfunc&&(directive=m),indent-=option.indent,line!==nexttoken.line&&indentation()}else line!==nexttoken.line&&indentation();advance(\"}\",t),indent=old_indent}else ordinary?((!stmt||option.curly)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value),noreach=!0,indent+=option.indent,a=[statement(nexttoken.line===token.line)],indent-=option.indent,noreach=!1):error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value);return funct[\"(verb)\"]=null,ordinary&&option.funcscope||(scope=s),inblock=b,!ordinary||!option.noempty||a&&0!==a.length||warning(\"Empty block.\"),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\"boolean\"!=typeof membersOnly[m]&&warning(\"Unexpected /*member \\'{a}\\'.\",token,m),\"number\"==typeof member[m]?member[m]+=1:member[m]=1}function note_implied(token){var name=token.value,line=token.line,a=implied[name];\"function\"==typeof a&&(a=!1),a?a[a.length-1]!==line&&a.push(line):(a=[line],implied[name]=a)}function property_name(){var id=optionalidentifier(!0);return id||(\"(string)\"===nexttoken.id?(id=nexttoken.value,advance()):\"(number)\"===nexttoken.id&&(id=\"\"+nexttoken.value,advance())),id}function functionparams(){var ident,next=nexttoken,params=[];if(advance(\"(\"),nospace(),\")\"===nexttoken.id)return advance(\")\"),void 0;for(;;){if(ident=identifier(!0),params.push(ident),addlabel(ident,\"unused\",token),\",\"!==nexttoken.id)return advance(\")\",next),nospace(prevtoken,token),params;comma()}}function doFunction(name,statement){var f,oldOption=option,oldScope=scope;return option=Object.create(option),scope=Object.create(scope),funct={\"(name)\":name||\\'\"\\'+anonname+\\'\"\\',\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":0,\"(loopage)\":0,\"(metrics)\":createMetrics(nexttoken),\"(scope)\":scope,\"(statement)\":statement,\"(tokens)\":{}},f=funct,token.funct=funct,functions.push(funct),name&&addlabel(name,\"function\"),funct[\"(params)\"]=functionparams(),funct[\"(metrics)\"].verifyMaxParametersPerFunction(funct[\"(params)\"]),block(!1,!1,!0),funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),scope=oldScope,option=oldOption,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"],f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,verifyMaxStatementsPerFunction:function(){if(option.maxstatements&&this.statementCount>option.maxstatements){var message=\"Too many statements per function (\"+this.statementCount+\").\";warning(message,functionStartToken)}},verifyMaxParametersPerFunction:function(params){if(params=params||[],option.maxparams&¶ms.length>option.maxparams){var message=\"Too many parameters per function (\"+params.length+\").\";warning(message,functionStartToken)}},verifyMaxNestedBlockDepthPerFunction:function(){if(option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===option.maxdepth+1){var message=\"Blocks are nested too deeply (\"+this.nestedBlockDepth+\").\";warning(message)}},verifyMaxComplexityPerFunction:function(){var max=option.maxcomplexity,cc=this.ComplexityCount;if(max&&cc>max){var message=\"Cyclomatic complexity is too high per function (\"+cc+\").\";warning(message,functionStartToken)}}}}function increaseComplexityCount(){funct[\"(metrics)\"].ComplexityCount+=1}function jsonValue(){function jsonObject(){var o={},t=nexttoken;if(advance(\"{\"),\"}\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\'}\\' to match \\'{\\' from line {a}.\",nexttoken,t.line);else{if(\"}\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id?error(\"Unexpected comma.\",nexttoken):\"(string)\"!==nexttoken.id&&warning(\"Expected a string and instead saw {a}.\",nexttoken,nexttoken.value)}if(o[nexttoken.value]===!0?warning(\"Duplicate key \\'{a}\\'.\",nexttoken,nexttoken.value):\"__proto__\"===nexttoken.value&&!option.proto||\"__iterator__\"===nexttoken.value&&!option.iterator?warning(\"The \\'{a}\\' key may produce unexpected results.\",nexttoken,nexttoken.value):o[nexttoken.value]=!0,advance(),advance(\":\"),jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"}\")}function jsonArray(){var t=nexttoken;if(advance(\"[\"),\"]\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\']\\' to match \\'[\\' from line {a}.\",nexttoken,t.line);else{if(\"]\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id&&error(\"Unexpected comma.\",nexttoken)}if(jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"]\")}switch(nexttoken.id){case\"{\":jsonObject();break;case\"[\":jsonArray();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":advance();break;case\"-\":advance(\"-\"),token.character!==nexttoken.from&&warning(\"Unexpected space after \\'-\\'.\",token),adjacent(token,nexttoken),advance(\"(number)\");break;default:error(\"Expected a JSON value.\",nexttoken)}}var anonname,declared,funct,functions,global,implied,inblock,indent,jsonmode,lines,lookahead,member,membersOnly,nexttoken,noreach,option,predefined,prereg,prevtoken,quotmark,scope,stack,directive,tab,token,unuseds,urls,useESNextSyntax,warnings,ax,cx,tx,nx,nxg,lx,ix,jx,ft,bang={\"\u003C\":!0,\"\u003C=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},boolOptions={asi:!0,bitwise:!0,boss:!0,browser:!0,camelcase:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,esnext:!0,evil:!0,expr:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,lastsemic:!0,latedef:!0,laxbreak:!0,laxcomma:!0,loopfunc:!0,mootools:!0,multistr:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nonstandard:!0,nomen:!0,onevar:!0,onecase:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,unused:!0,scripturl:!0,shadow:!0,smarttabs:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,validthis:!0,withstmt:!0,white:!0,worker:!0,wsh:!0,yui:!0},valOptions={maxlen:!1,indent:!1,maxerr:!1,predef:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1},invertedOptions={bitwise:!0,forin:!0,newcap:!0,nomen:!0,plusplus:!0,regexp:!0,undef:!0,white:!0,eqeqeq:!0,onevar:!0},renamedOptions={eqeq:\"eqeqeq\",vars:\"onevar\",windows:\"wsh\"},browser={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,DOMParser:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},functionicity=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],jquery={$:!1,jQuery:!1},mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},node={__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,acequire:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},standard={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,Set:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1,WeakMap:!1},nonstandard={escape:!1,unescape:!1},syntax={},worker={importScripts:!0,postMessage:!0,self:!0},wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},yui={YUI:!1,Y:!1,YUI_config:!1};\\n(function(){ax=/@cc|\u003C\\\\/?|script|\\\\]\\\\s*\\\\]|\u003C\\\\s*!|</i,cx=/[\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,tx=/^\\\\s*([(){}\\\\[.,:;\\'\"~\\\\?\\\\]#@]|==?=?|\\\\/=(?!(\\\\S*\\\\/[gim]?))|\\\\/(\\\\*(jshint|jslint|members?|global)?|\\\\/)?|\\\\*[\\\\/=]?|\\\\+(?:=|\\\\++)?|-(?:=|-+)?|%=?|&[&=]?|\\\\|[|=]?|>>?>?=?|\u003C([\\\\/=!]|\\\\!(\\\\[|--)?|\u003C=?)?|\\\\^=?|\\\\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\\\\.[0-9]*)?([eE][+\\\\-]?[0-9]+)?)/,nx=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,nxg=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/g,lx=/\\\\*\\\\//,ix=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,jx=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\\\\s*:/i,ft=/^\\\\s*\\\\/\\\\*\\\\s*falls\\\\sthrough\\\\s*\\\\*\\\\/\\\\s*$/})(),\"function\"!=typeof Array.isArray&&(Array.isArray=function(o){return\"[object Array]\"===Object.prototype.toString.apply(o)}),Array.prototype.forEach||(Array.prototype.forEach=function(fn,scope){for(var len=this.length,i=0;len>i;i++)fn.call(scope||this,this[i],i,this)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(searchElement){if(null===this||void 0===this)throw new TypeError;var t=Object(this),len=t.length>>>0;if(0===len)return-1;var n=0;if(arguments.length>0&&(n=Number(arguments[1]),n!=n?n=0:0!==n&&1/0!=n&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),n>=len)return-1;for(var k=n>=0?n:Math.max(len-Math.abs(n),0);len>k;k++)if(k in t&&t[k]===searchElement)return k;return-1}),\"function\"!=typeof Object.create&&(Object.create=function(o){return F.prototype=o,new F}),\"function\"!=typeof Object.keys&&(Object.keys=function(o){var k,a=[];for(k in o)is_own(o,k)&&a.push(k);return a});var lex=function lex(){function nextLine(){var at,match,tw;return line>=lines.length?!1:(character=1,s=lines[line],line+=1,option.smarttabs?(match=s.match(/(\\\\/\\\\/)? \\\\t/),at=match&&!match[1]?0:-1):at=s.search(/ \\\\t|\\\\t [^\\\\*]/),at>=0&&warningAt(\"Mixed spaces and tabs.\",line,at+1),s=s.replace(/\\\\t/g,tab),at=s.search(cx),at>=0&&warningAt(\"Unsafe character.\",line,at),option.maxlen&&option.maxlen\u003Cs.length&&warningAt(\"Line too long.\",line,s.length),tw=option.trailing&&s.match(/^(.*?)\\\\s+$/),tw&&!/^\\\\s+$/.test(s)&&warningAt(\"Trailing whitespace.\",line,tw[1].length+1),!0)}function it(type,value){function checkName(name){if(!option.proto&&\"__proto__\"===name)return warningAt(\"The \\'{a}\\' property is deprecated.\",line,from,name),void 0;if(!option.iterator&&\"__iterator__\"===name)return warningAt(\"\\'{a}\\' is only available in JavaScript 1.7.\",line,from,name),void 0;var hasDangling=/^(_+.*|.*_+)$/.test(name);if(option.nomen&&hasDangling&&\"_\"!==name){if(option.node&&\".\"!==token.id&&/^(__dirname|__filename)$/.test(name))return;return warningAt(\"Unexpected {a} in \\'{b}\\'.\",line,from,\"dangling \\'_\\'\",name),void 0}option.camelcase&&name.replace(/^_+/,\"\").indexOf(\"_\")>-1&&!name.match(/^[A-Z0-9_]*$/)&&warningAt(\"Identifier \\'{a}\\' is not in camel case.\",line,from,value)}var i,t;return t=\"(color)\"===type||\"(range)\"===type?{type:type}:\"(punctuator)\"===type||\"(identifier)\"===type&&is_own(syntax,value)?syntax[value]||syntax[\"(error)\"]:syntax[type],t=Object.create(t),(\"(string)\"===type||\"(range)\"===type)&&!option.scripturl&&jx.test(value)&&warningAt(\"Script URL.\",line,from),\"(identifier)\"===type&&(t.identifier=!0,checkName(value)),t.value=value,t.line=line,t.character=character,t.from=from,i=t.id,\"(endline)\"!==i&&(prereg=i&&(\"(,=:[!&|?{};\".indexOf(i.charAt(i.length-1))>=0||\"return\"===i||\"case\"===i)),t}var character,from,line,s;return{init:function(source){lines=\"string\"==typeof source?source.replace(/\\\\r\\\\n/g,\"\\\\n\").replace(/\\\\r/g,\"\\\\n\").split(\"\\\\n\"):source,lines[0]&&\"#!\"===lines[0].substr(0,2)&&(lines[0]=\"\"),line=0,nextLine(),from=1},range:function(begin,end){var c,value=\"\";for(from=character,s.charAt(0)!==begin&&errorAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,character,begin,s.charAt(0));;){switch(s=s.slice(1),character+=1,c=s.charAt(0)){case\"\":errorAt(\"Missing \\'{a}\\'.\",line,character,c);break;case end:return s=s.slice(1),character+=1,it(\"(range)\",value);case\"\\\\\\\\\":warningAt(\"Unexpected \\'{a}\\'.\",line,character,c)}value+=c}},token:function(){function match(x){var r1,r=x.exec(s);return r?(l=r[0].length,r1=r[1],c=r1.charAt(0),s=s.substr(l),from=character+l-r1.length,character+=l,r1):void 0}function string(x){function esc(n){var i=parseInt(s.substr(j+1,n),16);j+=n,i>=32&&126>=i&&34!==i&&92!==i&&39!==i&&warningAt(\"Unnecessary escapement.\",line,character),character+=n,c=String.fromCharCode(i)}var c,j,r=\"\",allowNewLine=!1;jsonmode&&\\'\"\\'!==x&&warningAt(\"Strings must use doublequote.\",line,character),option.quotmark&&(\"single\"===option.quotmark&&\"\\'\"!==x?warningAt(\"Strings must use singlequote.\",line,character):\"double\"===option.quotmark&&\\'\"\\'!==x?warningAt(\"Strings must use doublequote.\",line,character):option.quotmark===!0&&(quotmark=quotmark||x,quotmark!==x&&warningAt(\"Mixed double and single quotes.\",line,character))),j=0;unclosedString:for(;;){for(;j>=s.length;){j=0;var cl=line,cf=from;if(!nextLine()){errorAt(\"Unclosed string.\",cl,cf);break unclosedString}allowNewLine?allowNewLine=!1:warningAt(\"Unclosed string.\",cl,cf)}if(c=s.charAt(j),c===x)return character+=1,s=s.substr(j+1),it(\"(string)\",r,x);if(\" \">c){if(\"\\\\n\"===c||\"\\\\r\"===c)break;warningAt(\"Control character in string: {a}.\",line,character+j,s.slice(0,j))}else if(\"\\\\\\\\\"===c)switch(j+=1,character+=1,c=s.charAt(j),n=s.charAt(j+1),c){case\"\\\\\\\\\":case\\'\"\\':case\"/\":break;case\"\\'\":jsonmode&&warningAt(\"Avoid \\\\\\\\\\'.\",line,character);break;case\"b\":c=\"\\\\b\";break;case\"f\":c=\"\\\\f\";break;case\"n\":c=\"\\\\n\";break;case\"r\":c=\"\\\\r\";break;case\"t\":c=\"\t\";break;case\"0\":c=\"\\\\0\",n>=0&&7>=n&&directive[\"use strict\"]&&warningAt(\"Octal literals are not allowed in strict mode.\",line,character);break;case\"u\":esc(4);break;case\"v\":jsonmode&&warningAt(\"Avoid \\\\\\\\v.\",line,character),c=\"\u000b\";break;case\"x\":jsonmode&&warningAt(\"Avoid \\\\\\\\x-.\",line,character),esc(2);break;case\"\":if(allowNewLine=!0,option.multistr){jsonmode&&warningAt(\"Avoid EOL escapement.\",line,character),c=\"\",character-=1;break}warningAt(\"Bad escapement of EOL. Use option multistr if needed.\",line,character);break;case\"!\":if(\"\u003C\"===s.charAt(j-2))break;default:warningAt(\"Bad escapement.\",line,character)}r+=c,character+=1,j+=1}}for(var b,c,captures,d,depth,high,i,l,low,q,t,isLiteral,isInRange,n;;){if(!s)return it(nextLine()?\"(endline)\":\"(end)\",\"\");if(t=match(tx)){if(isAlpha(c)||\"_\"===c||\"$\"===c)return it(\"(identifier)\",t);if(isDigit(c))return isFinite(Number(t))||warningAt(\"Bad number \\'{a}\\'.\",line,character,t),isAlpha(s.substr(0,1))&&warningAt(\"Missing space after \\'{a}\\'.\",line,character,t),\"0\"===c&&(d=t.substr(1,1),isDigit(d)?\".\"!==token.id&&warningAt(\"Don\\'t use extra leading zeros \\'{a}\\'.\",line,character,t):!jsonmode||\"x\"!==d&&\"X\"!==d||warningAt(\"Avoid 0x-. \\'{a}\\'.\",line,character,t)),\".\"===t.substr(t.length-1)&&warningAt(\"A trailing decimal point can be confused with a dot \\'{a}\\'.\",line,character,t),it(\"(number)\",t);switch(t){case\\'\"\\':case\"\\'\":return string(t);case\"//\":s=\"\",token.comment=!0;break;case\"/*\":for(;i=s.search(lx),!(i>=0);)nextLine()||errorAt(\"Unclosed comment.\",line,character);s=s.substr(i+2),token.comment=!0;break;case\"/*members\":case\"/*member\":case\"/*jshint\":case\"/*jslint\":case\"/*global\":case\"*/\":return{value:t,type:\"special\",line:line,character:character,from:from};case\"\":break;case\"/\":if(\"=\"===s.charAt(0)&&errorAt(\"A regular expression literal can be confused with \\'/=\\'.\",line,from),prereg){for(depth=0,captures=0,l=0;;){switch(b=!0,c=s.charAt(l),l+=1,c){case\"\":return errorAt(\"Unclosed regular expression.\",line,from),quit(\"Stopping.\",line,from);case\"/\":for(depth>0&&warningAt(\"{a} unterminated regular expression group(s).\",line,from+l,depth),c=s.substr(0,l-1),q={g:!0,i:!0,m:!0};q[s.charAt(l)]===!0;)q[s.charAt(l)]=!1,l+=1;return character+=l,s=s.substr(l),q=s.charAt(0),(\"/\"===q||\"*\"===q)&&errorAt(\"Confusing regular expression.\",line,from),it(\"(regexp)\",c);case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1;break;case\"(\":if(depth+=1,b=!1,\"?\"===s.charAt(l))switch(l+=1,s.charAt(l)){case\":\":case\"=\":case\"!\":l+=1;break;default:warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\":\",s.charAt(l))}else captures+=1;break;case\"|\":b=!1;break;case\")\":0===depth?warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\")\"):depth-=1;break;case\" \":for(q=1;\" \"===s.charAt(l);)l+=1,q+=1;q>1&&warningAt(\"Spaces are hard to count. Use {{a}}.\",line,from+l,q);break;case\"[\":c=s.charAt(l),\"^\"===c&&(l+=1,\"]\"===s.charAt(l)&&errorAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"^\")),\"]\"===c&&warningAt(\"Empty class.\",line,from+l-1),isLiteral=!1,isInRange=!1;klass:do switch(c=s.charAt(l),l+=1,c){case\"[\":case\"^\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c),isInRange?isInRange=!1:isLiteral=!0;break;case\"-\":isLiteral&&!isInRange?(isLiteral=!1,isInRange=!0):isInRange?isInRange=!1:\"]\"===s.charAt(l)?isInRange=!0:(option.regexdash!==(2===l||3===l&&\"^\"===s.charAt(1))&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\"),isLiteral=!0);break;case\"]\":isInRange&&!option.regexdash&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\");break klass;case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1,/[wsd]/i.test(c)?(isInRange&&(warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"-\"),isInRange=!1),isLiteral=!1):isInRange?isInRange=!1:isLiteral=!0;break;case\"/\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"/\"),isInRange?isInRange=!1:isLiteral=!0;break;case\"\u003C\":isInRange?isInRange=!1:isLiteral=!0;break;default:isInRange?isInRange=!1:isLiteral=!0}while(c);break;case\".\":option.regexp&&warningAt(\"Insecure \\'{a}\\'.\",line,from+l,c);break;case\"]\":case\"?\":case\"{\":case\"}\":case\"+\":case\"*\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c)}if(b)switch(s.charAt(l)){case\"?\":case\"+\":case\"*\":l+=1,\"?\"===s.charAt(l)&&(l+=1);break;case\"{\":if(l+=1,c=s.charAt(l),\"0\">c||c>\"9\"){warningAt(\"Expected a number and instead saw \\'{a}\\'.\",line,from+l,c);break}for(l+=1,low=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,low=+c+10*low;if(high=low,\",\"===c&&(l+=1,high=1/0,c=s.charAt(l),c>=\"0\"&&\"9\">=c))for(l+=1,high=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,high=+c+10*high;\"}\"!==s.charAt(l)?warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\"}\",c):l+=1,\"?\"===s.charAt(l)&&(l+=1),low>high&&warningAt(\"\\'{a}\\' should not be greater than \\'{b}\\'.\",line,from+l,low,high)}}return c=s.substr(0,l-1),character+=l,s=s.substr(l),it(\"(regexp)\",c)}return it(\"(punctuator)\",t);case\"#\":return it(\"(punctuator)\",t);default:return it(\"(punctuator)\",t)}}else{for(t=\"\",c=\"\";s&&\"!\">s;)s=s.substr(1);s&&(errorAt(\"Unexpected \\'{a}\\'.\",line,character,s.substr(0,1)),s=\"\")}}}}}();type(\"(number)\",function(){return this}),type(\"(string)\",function(){return this}),syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var f,v=this.value,s=scope[v];if(\"function\"==typeof s?s=void 0:\"boolean\"==typeof s&&(f=funct,funct=functions[0],addlabel(v,\"var\"),s=funct,funct=f),funct===s)switch(funct[v]){case\"unused\":funct[v]=\"var\";break;case\"unction\":funct[v]=\"function\",this[\"function\"]=!0;break;case\"function\":this[\"function\"]=!0;break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}else if(funct[\"(global)\"])option.undef&&\"boolean\"!=typeof predefined[v]&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),note_implied(token);else switch(funct[v]){case\"closure\":case\"function\":case\"var\":case\"unused\":warning(\"\\'{a}\\' used out of scope.\",token,v);break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v);break;case\"outer\":case\"global\":break;default:if(s===!0)funct[v]=!0;else if(null===s)warning(\"\\'{a}\\' is not allowed.\",token,v),note_implied(token);else if(\"object\"!=typeof s)option.undef&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),funct[v]=!0,note_implied(token);else switch(s[v]){case\"function\":case\"unction\":this[\"function\"]=!0,s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"var\":case\"unused\":s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"closure\":funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}}return this},led:function(){error(\"Expected an operator and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value)}},type(\"(regexp)\",function(){return this}),delim(\"(endline)\"),delim(\"(begin)\"),delim(\"(end)\").reach=!0,delim(\"\u003C/\").reach=!0,delim(\"\u003C!\"),delim(\"\u003C!--\"),delim(\"-->\"),delim(\"(error)\").reach=!0,delim(\"}\").reach=!0,delim(\")\"),delim(\"]\"),delim(\\'\"\\').reach=!0,delim(\"\\'\").reach=!0,delim(\";\"),delim(\":\").reach=!0,delim(\",\"),delim(\"#\"),delim(\"@\"),reserve(\"else\"),reserve(\"case\").reach=!0,reserve(\"catch\"),reserve(\"default\").reach=!0,reserve(\"finally\"),reservevar(\"arguments\",function(x){directive[\"use strict\"]&&funct[\"(global)\"]&&warning(\"Strict violation.\",x)}),reservevar(\"eval\"),reservevar(\"false\"),reservevar(\"Infinity\"),reservevar(\"null\"),reservevar(\"this\",function(x){directive[\"use strict\"]&&!option.validthis&&(funct[\"(statement)\"]&&funct[\"(name)\"].charAt(0)>\"Z\"||funct[\"(global)\"])&&warning(\"Possible strict violation.\",x)}),reservevar(\"true\"),reservevar(\"undefined\"),assignop(\"=\",\"assign\",20),assignop(\"+=\",\"assignadd\",20),assignop(\"-=\",\"assignsub\",20),assignop(\"*=\",\"assignmult\",20),assignop(\"/=\",\"assigndiv\",20).nud=function(){error(\"A regular expression literal can be confused with \\'/=\\'.\")},assignop(\"%=\",\"assignmod\",20),bitwiseassignop(\"&=\",\"assignbitand\",20),bitwiseassignop(\"|=\",\"assignbitor\",20),bitwiseassignop(\"^=\",\"assignbitxor\",20),bitwiseassignop(\"\u003C\u003C=\",\"assignshiftleft\",20),bitwiseassignop(\">>=\",\"assignshiftright\",20),bitwiseassignop(\">>>=\",\"assignshiftrightunsigned\",20),infix(\"?\",function(left,that){return that.left=left,that.right=expression(10),advance(\":\"),that[\"else\"]=expression(10),that},30),infix(\"||\",\"or\",40),infix(\"&&\",\"and\",50),bitwise(\"|\",\"bitor\",70),bitwise(\"^\",\"bitxor\",80),bitwise(\"&\",\"bitand\",90),relation(\"==\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"===\",\"==\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",right.value),this}),relation(\"===\"),relation(\"!=\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"!==\",\"!=\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",right.value),this}),relation(\"!==\"),relation(\"\u003C\"),relation(\">\"),relation(\"\u003C=\"),relation(\">=\"),bitwise(\"\u003C\u003C\",\"shiftleft\",120),bitwise(\">>\",\"shiftright\",120),bitwise(\">>>\",\"shiftrightunsigned\",120),infix(\"in\",\"in\",120),infix(\"instanceof\",\"instanceof\",120),infix(\"+\",function(left,that){var right=expression(130);return left&&right&&\"(string)\"===left.id&&\"(string)\"===right.id?(left.value+=right.value,left.character=right.character,!option.scripturl&&jx.test(left.value)&&warning(\"JavaScript URL.\",left),left):(that.left=left,that.right=right,that)},130),prefix(\"+\",\"num\"),prefix(\"+++\",function(){return warning(\"Confusing pluses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"+++\",function(left){return warning(\"Confusing pluses.\"),this.left=left,this.right=expression(130),this},130),infix(\"-\",\"sub\",130),prefix(\"-\",\"neg\"),prefix(\"---\",function(){return warning(\"Confusing minuses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"---\",function(left){return warning(\"Confusing minuses.\"),this.left=left,this.right=expression(130),this},130),infix(\"*\",\"mult\",140),infix(\"/\",\"div\",140),infix(\"%\",\"mod\",140),suffix(\"++\",\"postinc\"),prefix(\"++\",\"preinc\"),syntax[\"++\"].exps=!0,suffix(\"--\",\"postdec\"),prefix(\"--\",\"predec\"),syntax[\"--\"].exps=!0,prefix(\"delete\",function(){var p=expression(0);return(!p||\".\"!==p.id&&\"[\"!==p.id)&&warning(\"Variables should not be deleted.\"),this.first=p,this}).exps=!0,prefix(\"~\",function(){return option.bitwise&&warning(\"Unexpected \\'{a}\\'.\",this,\"~\"),expression(150),this}),prefix(\"!\",function(){return this.right=expression(150),this.arity=\"unary\",bang[this.right.id]===!0&&warning(\"Confusing use of \\'{a}\\'.\",this,\"!\"),this}),prefix(\"typeof\",\"typeof\"),prefix(\"new\",function(){var i,c=expression(155);if(c&&\"function\"!==c.id)if(c.identifier)switch(c[\"new\"]=!0,c.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":warning(\"Do not use {a} as a constructor.\",prevtoken,c.value);break;case\"Function\":option.evil||warning(\"The Function constructor is eval.\");break;case\"Date\":case\"RegExp\":break;default:\"function\"!==c.id&&(i=c.value.substr(0,1),option.newcap&&(\"A\">i||i>\"Z\")&&!is_own(global,c.value)&&warning(\"A constructor name should start with an uppercase letter.\",token))}else\".\"!==c.id&&\"[\"!==c.id&&\"(\"!==c.id&&warning(\"Bad constructor.\",token);else option.supernew||warning(\"Weird construction. Delete \\'new\\'.\",this);return adjacent(token,nexttoken),\"(\"===nexttoken.id||option.supernew||warning(\"Missing \\'()\\' invoking a constructor.\",token,token.value),this.first=c,this}),syntax[\"new\"].exps=!0,prefix(\"void\").exps=!0,infix(\".\",function(left,that){adjacent(prevtoken,token),nobreak();var m=identifier();return\"string\"==typeof m&&countMember(m),that.left=left,that.right=m,!left||\"arguments\"!==left.value||\"callee\"!==m&&\"caller\"!==m?option.evil||!left||\"document\"!==left.value||\"write\"!==m&&\"writeln\"!==m||warning(\"document.write can be a form of eval.\",left):option.noarg?warning(\"Avoid arguments.{a}.\",left,m):directive[\"use strict\"]&&error(\"Strict violation.\"),option.evil||\"eval\"!==m&&\"execScript\"!==m||warning(\"eval is evil.\"),that},160,!0),infix(\"(\",function(left,that){\"}\"!==prevtoken.id&&\")\"!==prevtoken.id&&nobreak(prevtoken,token),nospace(),option.immed&&!left.immed&&\"function\"===left.id&&warning(\"Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.\");var n=0,p=[];if(left&&\"(identifier)\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\"Number String Boolean Date Object\".indexOf(left.value)&&(\"Math\"===left.value?warning(\"Math is not a function.\",left):option.newcap&&warning(\"Missing \\'new\\' prefix when invoking a constructor.\",left)),\")\"!==nexttoken.id)for(;p[p.length]=expression(10),n+=1,\",\"===nexttoken.id;)comma();return advance(\")\"),nospace(prevtoken,token),\"object\"==typeof left&&(\"parseInt\"===left.value&&1===n&&warning(\"Missing radix parameter.\",token),option.evil||(\"eval\"===left.value||\"Function\"===left.value||\"execScript\"===left.value?(warning(\"eval is evil.\",left),p[0]&&\"(string)\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\"(string)\"!==p[0].id||\"setTimeout\"!==left.value&&\"setInterval\"!==left.value?!p[0]||\"(string)\"!==p[0].id||\".\"!==left.value||\"window\"!==left.left.value||\"setTimeout\"!==left.right&&\"setInterval\"!==left.right||(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value)):(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value))),left.identifier||\".\"===left.id||\"[\"===left.id||\"(\"===left.id||\"&&\"===left.id||\"||\"===left.id||\"?\"===left.id||warning(\"Bad invocation.\",left)),that.left=left,that},155,!0).exps=!0,prefix(\"(\",function(){nospace(),\"function\"===nexttoken.id&&(nexttoken.immed=!0);var v=expression(0);return advance(\")\",this),nospace(prevtoken,token),option.immed&&\"function\"===v.id&&\"(\"!==nexttoken.id&&(\".\"!==nexttoken.id||\"call\"!==peek().value&&\"apply\"!==peek().value)&&warning(\"Do not wrap function literals in parens unless they are to be immediately invoked.\",this),v}),infix(\"[\",function(left,that){nobreak(prevtoken,token),nospace();var s,e=expression(0);return e&&\"(string)\"===e.type&&(option.evil||\"eval\"!==e.value&&\"execScript\"!==e.value||warning(\"eval is evil.\",that),countMember(e.value),!option.sub&&ix.test(e.value)&&(s=syntax[e.value],s&&s.reserved||warning(\"[\\'{a}\\'] is better written in dot notation.\",prevtoken,e.value))),advance(\"]\",that),nospace(prevtoken,token),that.left=left,that.right=e,that},160,!0),prefix(\"[\",function(){var b=token.line!==nexttoken.line;for(this.first=[],b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"(end)\"!==nexttoken.id;){for(;\",\"===nexttoken.id;)option.es5||warning(\"Extra comma.\"),advance(\",\");if(\"]\"===nexttoken.id)break;if(b&&token.line!==nexttoken.line&&indentation(),this.first.push(expression(10)),\",\"!==nexttoken.id)break;if(comma(),\"]\"===nexttoken.id&&!option.es5){warning(\"Extra comma.\",token);break}}return b&&(indent-=option.indent,indentation()),advance(\"]\",this),this},160),function(x){x.nud=function(){function saveProperty(name,token){props[name]&&is_own(props,name)?warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].basic=!0,props[name].basicToken=token}function saveSetter(name,token){props[name]&&is_own(props,name)?(props[name].basic||props[name].setter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].setter=!0,props[name].setterToken=token}function saveGetter(name){props[name]&&is_own(props,name)?(props[name].basic||props[name].getter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].getter=!0,props[name].getterToken=token}var b,f,i,p,t,props={};for(b=token.line!==nexttoken.line,b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"}\"!==nexttoken.id;){if(b&&indentation(),\"get\"===nexttoken.value&&\":\"!==peek().id)advance(\"get\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveGetter(i),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&warning(\"Unexpected parameter \\'{a}\\' in get {b} function.\",t,p[0],i),adjacent(token,nexttoken);else if(\"set\"===nexttoken.value&&\":\"!==peek().id)advance(\"set\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveSetter(i,nexttoken),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&1===p.length||warning(\"Expected a single parameter in set {a} function.\",t,i);else{if(i=property_name(),saveProperty(i,nexttoken),\"string\"!=typeof i)break;advance(\":\"),nonadjacent(token,nexttoken),expression(10)}if(countMember(i),\",\"!==nexttoken.id)break;comma(),\",\"===nexttoken.id?warning(\"Extra comma.\",token):\"}\"!==nexttoken.id||option.es5||warning(\"Extra comma.\",token)}if(b&&(indent-=option.indent,indentation()),advance(\"}\",this),option.es5)for(var name in props)is_own(props,name)&&props[name].setter&&!props[name].getter&&warning(\"Setter is defined without getter.\",props[name].setterToken);return this},x.fud=function(){error(\"Expected to see a statement and instead saw a block.\",token)}}(delim(\"{\")),useESNextSyntax=function(){var conststatement=stmt(\"const\",function(prefix){var id,name,value;for(this.first=[];(nonadjacent(token,nexttoken),id=identifier(),\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"const\"),!prefix)&&(name=token,this.first.push(token),\"=\"!==nexttoken.id&&warning(\"const \\'{a}\\' is initialized to \\'undefined\\'.\",token,id),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Constant {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});conststatement.exps=!0};var varstatement=stmt(\"var\",function(prefix){var id,name,value;for(funct[\"(onevar)\"]&&option.onevar?warning(\"Too many var statements.\"):funct[\"(global)\"]||(funct[\"(onevar)\"]=!0),this.first=[];(nonadjacent(token,nexttoken),id=identifier(),option.esnext&&\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"unused\",token),!prefix)&&(name=token,this.first.push(token),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Variable {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});varstatement.exps=!0,blockstmt(\"function\",function(){inblock&&warning(\"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.\",token);var i=identifier();return option.esnext&&\"const\"===funct[i]&&warning(\"const \\'\"+i+\"\\' has already been declared\"),adjacent(token,nexttoken),addlabel(i,\"unction\",token),doFunction(i,{statement:!0}),\"(\"===nexttoken.id&&nexttoken.line===token.line&&error(\"Function declarations are not invocable. Wrap the whole function invocation in parens.\"),this}),prefix(\"function\",function(){var i=optionalidentifier();return i?adjacent(token,nexttoken):nonadjacent(token,nexttoken),doFunction(i),!option.loopfunc&&funct[\"(loopage)\"]&&warning(\"Don\\'t make functions within a loop.\"),this}),blockstmt(\"if\",function(){var t=nexttoken;return increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),\"else\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"else\"),\"if\"===nexttoken.id||\"switch\"===nexttoken.id?statement(!0):block(!0,!0)),this}),blockstmt(\"try\",function(){function doCatch(){var e,oldScope=scope;advance(\"catch\"),nonadjacent(token,nexttoken),advance(\"(\"),scope=Object.create(oldScope),e=nexttoken.value,\"(identifier)\"!==nexttoken.type&&(e=null,warning(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,e)),advance(),advance(\")\"),funct={\"(name)\":\"(catch)\",\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":funct[\"(breakage)\"],\"(loopage)\":funct[\"(loopage)\"],\"(scope)\":scope,\"(statement)\":!1,\"(metrics)\":createMetrics(nexttoken),\"(catch)\":!0,\"(tokens)\":{}},e&&addlabel(e,\"exception\"),token.funct=funct,functions.push(funct),block(!1),scope=oldScope,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"]}var b;return block(!1),\"catch\"===nexttoken.id&&(increaseComplexityCount(),doCatch(),b=!0),\"finally\"===nexttoken.id?(advance(\"finally\"),block(!1),void 0):(b||error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"catch\",nexttoken.value),this)}),blockstmt(\"while\",function(){var t=nexttoken;return funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,blockstmt(\"with\",function(){var t=nexttoken;return directive[\"use strict\"]?error(\"\\'with\\' is not allowed in strict mode.\",token):option.withstmt||warning(\"Don\\'t use \\'with\\'.\",token),advance(\"(\"),nonadjacent(this,t),nospace(),expression(0),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),this}),blockstmt(\"switch\",function(){var t=nexttoken,g=!1;for(funct[\"(breakage)\"]+=1,advance(\"(\"),nonadjacent(this,t),nospace(),this.condition=expression(20),advance(\")\",t),nospace(prevtoken,token),nonadjacent(token,nexttoken),t=nexttoken,advance(\"{\"),nonadjacent(token,nexttoken),indent+=option.indent,this.cases=[];;)switch(nexttoken.id){case\"case\":switch(funct[\"(verb)\"]){case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'case\\'.\",token)}indentation(-option.indent),advance(\"case\"),this.cases.push(expression(20)),increaseComplexityCount(),g=!0,advance(\":\"),funct[\"(verb)\"]=\"case\";break;case\"default\":switch(funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'default\\'.\",token)}indentation(-option.indent),advance(\"default\"),g=!0,advance(\":\");break;case\"}\":return indent-=option.indent,indentation(),advance(\"}\",t),(1===this.cases.length||\"true\"===this.condition.id||\"false\"===this.condition.id)&&(option.onecase||warning(\"This \\'switch\\' should be an \\'if\\'.\",this)),funct[\"(breakage)\"]-=1,funct[\"(verb)\"]=void 0,void 0;case\"(end)\":return error(\"Missing \\'{a}\\'.\",nexttoken,\"}\"),void 0;default:if(g)switch(token.id){case\",\":return error(\"Each value should have its own case label.\"),void 0;case\":\":g=!1,statements();break;default:return error(\"Missing \\':\\' on a case clause.\",token),void 0}else{if(\":\"!==token.id)return error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"case\",nexttoken.value),void 0;advance(\":\"),error(\"Unexpected \\'{a}\\'.\",token,\":\"),statements()}}}).labelled=!0,stmt(\"debugger\",function(){return option.debug||warning(\"All \\'debugger\\' statements should be removed.\"),this}).exps=!0,function(){var x=stmt(\"do\",function(){funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),this.first=block(!0),advance(\"while\");var t=nexttoken;return nonadjacent(token,t),advance(\"(\"),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\"for\",function(){var s,t=nexttoken;if(funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),\"in\"===peek(\"var\"===nexttoken.id?1:0).id){if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement,!0);else{switch(funct[nexttoken.value]){case\"unused\":funct[nexttoken.value]=\"var\";break;case\"var\":break;default:warning(\"Bad for in variable \\'{a}\\'.\",nexttoken,nexttoken.value)}advance()}return advance(\"in\"),expression(20),advance(\")\",t),s=block(!0,!0),option.forin&&s&&(s.length>1||\"object\"!=typeof s[0]||\"if\"!==s[0].value)&&warning(\"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.\",this),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}if(\";\"!==nexttoken.id)if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement);else for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();if(nolinebreak(token),advance(\";\"),\";\"!==nexttoken.id&&(expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20))),nolinebreak(token),advance(\";\"),\";\"===nexttoken.id&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\")\",\";\"),\")\"!==nexttoken.id)for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();return advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,stmt(\"break\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id&&token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()),reachable(\"break\"),this\\n}).exps=!0,stmt(\"continue\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id?token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()):funct[\"(loopage)\"]||warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),reachable(\"continue\"),this}).exps=!0,stmt(\"return\",function(){return this.line===nexttoken.line?(\"(regexp)\"===nexttoken.id&&warning(\"Wrap the /regexp/ literal in parens to disambiguate the slash operator.\"),\";\"===nexttoken.id||nexttoken.reach||(nonadjacent(token,nexttoken),\"=\"!==peek().value||option.boss||warningAt(\"Did you mean to return a conditional instead of an assignment?\",token.line,token.character+1),this.first=expression(0))):option.asi||nolinebreak(this),reachable(\"return\"),this}).exps=!0,stmt(\"throw\",function(){return nolinebreak(this),nonadjacent(token,nexttoken),this.first=expression(20),reachable(\"throw\"),this}).exps=!0,reserve(\"class\"),reserve(\"const\"),reserve(\"enum\"),reserve(\"export\"),reserve(\"extends\"),reserve(\"import\"),reserve(\"super\"),reserve(\"let\"),reserve(\"yield\"),reserve(\"implements\"),reserve(\"interface\"),reserve(\"package\"),reserve(\"private\"),reserve(\"protected\"),reserve(\"public\"),reserve(\"static\");var itself=function(s,o,g){var a,i,k,x,optionKeys,newOptionObj={};if(o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\"(main)\"),predefined=Object.create(standard),declared=Object.create(null),combine(predefined,g||{}),o)for(a=o.predef,a&&(Array.isArray(a)||\"object\"!=typeof a||(a=Object.keys(a)),a.forEach(function(item){var slice;\"-\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice):predefined[item]=!0})),optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)newOptionObj[optionKeys[x]]=o[optionKeys[x]],\"newcap\"===optionKeys[x]&&o[optionKeys[x]]===!1&&(newOptionObj[\"(explicitNewcap)\"]=!0),\"indent\"===optionKeys[x]&&(newOptionObj.white=!0);for(option=newOptionObj,option.indent=option.indent||4,option.maxerr=option.maxerr||50,tab=\"\",i=0;option.indent>i;i+=1)tab+=\" \";if(indent=1,global=Object.create(predefined),scope=global,funct={\"(global)\":!0,\"(name)\":\"(global)\",\"(scope)\":scope,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(metrics)\":createMetrics(nexttoken)},functions=[funct],urls=[],stack=null,member={},membersOnly=null,implied={},inblock=!1,lookahead=[],jsonmode=!1,warnings=0,lines=[],unuseds=[],!isString(s)&&!Array.isArray(s))return errorAt(\"Input is neither a string nor an array of strings.\",0),!1;if(isString(s)&&/^\\\\s*$/g.test(s))return errorAt(\"Input is an empty string.\",0),!1;if(0===s.length)return errorAt(\"Input is an empty array.\",0),!1;lex.init(s),prereg=!0,directive={},prevtoken=token=nexttoken=syntax[\"(begin)\"];for(var name in o)is_own(o,name)&&checkOption(name,token);assume(),combine(predefined,g||{}),comma.first=!0,quotmark=void 0;try{switch(advance(),nexttoken.id){case\"{\":case\"[\":option.laxbreak=!0,jsonmode=!0,jsonValue();break;default:directives(),directive[\"use strict\"]&&!option.globalstrict&&warning(\\'Use the function form of \"use strict\".\\',prevtoken),statements()}advance(nexttoken&&\".\"!==nexttoken.value?\"(end)\":void 0);var markDefined=function(name,context){do{if(\"string\"==typeof context[name])return\"unused\"===context[name]?context[name]=\"var\":\"unction\"===context[name]&&(context[name]=\"closure\"),!0;context=context[\"(context)\"]}while(context);return!1},clearImplied=function(name,line){if(implied[name]){for(var newImplied=[],i=0;implied[name].length>i;i+=1)implied[name][i]!==line&&newImplied.push(implied[name][i]);0===newImplied.length?delete implied[name]:implied[name]=newImplied}},warnUnused=function(name,token){var line=token.line,chr=token.character;option.unused&&warningAt(\"\\'{a}\\' is defined but never used.\",line,chr,name),unuseds.push({name:name,line:line,character:chr})},checkUnused=function(func,key){var type=func[key],token=func[\"(tokens)\"][key];\"(\"!==key.charAt(0)&&(\"unused\"===type||\"unction\"===type)&&(func[\"(params)\"]&&-1!==func[\"(params)\"].indexOf(key)||warnUnused(key,token))};for(i=0;JSHINT.undefs.length>i;i+=1)k=JSHINT.undefs[i].slice(0),markDefined(k[2].value,k[0])?clearImplied(k[2].value,k[2].line):warning.apply(warning,k.slice(1));functions.forEach(function(func){for(var key in func)is_own(func,key)&&checkUnused(func,key);if(func[\"(params)\"])for(var type,params=func[\"(params)\"].slice(),param=params.pop();param;){if(type=func[param],\"undefined\"===param)return;if(\"unused\"!==type&&\"unction\"!==type)return;warnUnused(param,func[\"(tokens)\"][param]),param=params.pop()}});for(var key in declared)is_own(declared,key)&&!is_own(global,key)&&warnUnused(key,declared[key])}catch(e){if(e){var nt=nexttoken||{};JSHINT.errors.push({raw:e.raw,reason:e.message,line:e.line||nt.line,character:e.character||nt.from},null)}}if(\"(main)\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:option},implieds=[],members=[];itself.errors.length&&(data.errors=itself.errors),jsonmode&&(data.json=!0);for(n in implied)is_own(implied,n)&&implieds.push({name:n,line:implied[n]});for(implieds.length>0&&(data.implieds=implieds),urls.length>0&&(data.urls=urls),globals=Object.keys(scope),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\"(name)\"],fu.param=f[\"(params)\"],fu.line=f[\"(line)\"],fu.character=f[\"(character)\"],fu.last=f[\"(last)\"],fu.lastcharacter=f[\"(lastcharacter)\"],data.functions.push(fu)}unuseds.length>0&&(data.unused=unuseds),members=[];for(n in member)if(\"number\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\"object\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)});'\n})()},{}],23:[function(){\"use strict\";Function.prototype.bind||(Function.prototype.bind=function(this_){if(\"function\"!=typeof this)throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");var args=Array.prototype.slice.call(arguments,1),fn=this,Noop=function(){},fnbound=function(){return fn.apply(this instanceof Noop&&this_?this:this_,args.concat(Array.prototype.slice.call(arguments)))};return Noop.prototype=this.prototype,fnbound.prototype=new Noop,fnbound})},{}],21:[function(require,module){\"use strict\";function scroll(elem){elem&&(elem.scrollTop=elem.scrollHeight)}var Terminal=require(\"./term\"),through=require(\"through\");module.exports=function(opts){var term=new Terminal(opts);term.open();var hypernal=through(term.write.bind(term));return hypernal.appendTo=function(elem){\"string\"==typeof elem&&(elem=document.querySelector(elem)),elem.appendChild(term.element),elem.setAttribute(\"style\",\"overflow-y : auto;\"),hypernal.container=elem,term.element.style.position=\"relative\"},hypernal.writeln=function(line){term.writeln(line),hypernal.tail&&scroll(hypernal.container)},hypernal.write=function(data){term.write(data),hypernal.tail&&scroll(hypernal.container)},hypernal.reset=term.reset.bind(term),hypernal.element=term.element,hypernal.term=term,hypernal}},{\"./term\":24,through:25}],22:[function(require,module){(function(process){\"use strict\";function highlightLines(script){return highlight(script,{linenos:!0}).split(\"\\n\")}require(\"./lib/shim-bind\");var highlight=require(\"cardinal\").highlight,snippetify=require(\"snippetify\"),evalSnippets=require(\"./lib/eval-snippets\"),resolveTales=require(\"./lib/resolve-tales\");process.browser,module.exports=function(script,scriptPath,opts){opts=opts||{};var toLines=opts.toLines||highlightLines,writeln=opts.writeln||(process.browser===!0?function(){}:console.log.bind(console)),snippets=snippetify(script,{nonstrict:!0});evalSnippets(snippets,scriptPath,opts.diff);var tales=resolveTales(snippets,opts),lines=toLines(script),offset=0;return tales.forEach(function(x){x.tale.length&&lines.splice(x.insertAfter+offset++,0,x.tale)}),lines=lines.filter(function(x){return x.length}),lines.forEach(function(line){writeln(line)}),lines}})(require(\"__browserify_process\"))},{\"./lib/shim-bind\":23,\"./lib/eval-snippets\":26,\"./lib/resolve-tales\":27,cardinal:28,snippetify:29,__browserify_process:16}],20:[function(require,module){(function(){(function(){function exportAce(ns){var acequire=function(module,callback){return _acequire(\"\",module,callback)},root=global;ns&&(global[ns]||(global[ns]={}),root=global[ns]),root.define&&root.define.packaged||(_define.original=root.define,root.define=_define,root.define.packaged=!0),root.acequire&&root.acequire.packaged||(_acequire.original=root.acequire,root.acequire=acequire,root.acequire.packaged=!0)}var ACE_NAMESPACE=\"ace\",global=function(){return this}();if(ACE_NAMESPACE||\"undefined\"==typeof acequirejs){var _define=function(module,deps,payload){return\"string\"!=typeof module?(_define.original?_define.original.apply(window,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace()),void 0):(2==arguments.length&&(payload=deps),_define.modules||(_define.modules={}),_define.modules[module]=payload,void 0)},_acequire=function(parentId,module,callback){if(\"[object Array]\"===Object.prototype.toString.call(module)){for(var params=[],i=0,l=module.length;l>i;++i){var dep=lookup(parentId,module[i]);if(!dep&&_acequire.original)return _acequire.original.apply(window,arguments);params.push(dep)}callback&&callback.apply(null,params)}else{if(\"string\"==typeof module){var payload=lookup(parentId,module);return!payload&&_acequire.original?_acequire.original.apply(window,arguments):(callback&&callback(),payload)}if(_acequire.original)return _acequire.original.apply(window,arguments)}},normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},lookup=function(parentId,moduleName){moduleName=normalizeModule(parentId,moduleName);var module=_define.modules[moduleName];if(!module)return null;if(\"function\"==typeof module){var exports={},mod={id:moduleName,uri:\"\",exports:exports,packaged:!0},req=function(module,callback){return _acequire(moduleName,module,callback)},returnValue=module(req,exports,mod);return exports=returnValue||mod.exports,_define.modules[moduleName]=exports,exports}return module};exportAce(ACE_NAMESPACE)}})(),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/multi_select\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),Editor=acequire(\"./editor\").Editor,EditSession=acequire(\"./edit_session\").EditSession,UndoManager=acequire(\"./undomanager\").UndoManager,Renderer=acequire(\"./virtual_renderer\").VirtualRenderer,MultiSelect=acequire(\"./multi_select\").MultiSelect;acequire(\"./worker/worker_client\"),acequire(\"./keyboard/hash_handler\"),acequire(\"./placeholder\"),acequire(\"./mode/folding/fold_mode\"),acequire(\"./theme/textmate\"),exports.config=acequire(\"./config\"),exports.acequire=acequire,exports.edit=function(el){if(\"string\"==typeof el){var _id=el,el=document.getElementById(_id);if(!el)throw\"ace.edit can't find div #\"+_id}if(el.env&&el.env.editor instanceof Editor)return el.env.editor;var doc=exports.createEditSession(dom.getInnerText(el));el.innerHTML=\"\";var editor=new Editor(new Renderer(el));new MultiSelect(editor),editor.setSession(doc);var env={document:doc,editor:editor,onResize:editor.resize.bind(editor,null)};return event.addListener(window,\"resize\",env.onResize),editor.on(\"destroy\",function(){event.removeListener(window,\"resize\",env.onResize)}),el.env=editor.env=env,editor},exports.createEditSession=function(text){var doc=new EditSession(text,doc);return doc.setUndoManager(new UndoManager),doc},exports.EditSession=EditSession,exports.UndoManager=UndoManager}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(\"undefined\"!=typeof document){var XHTML_NS=\"http://www.w3.org/1999/xhtml\";exports.getDocumentHead=function(doc){return doc||(doc=document),doc.head||doc.getElementsByTagName(\"head\")[0]||doc.documentElement},exports.createElement=function(tag,ns){return document.createElementNS?document.createElementNS(ns||XHTML_NS,tag):document.createElement(tag)},exports.hasCssClass=function(el,name){var classes=el.className.split(/\\s+/g);return-1!==classes.indexOf(name)},exports.addCssClass=function(el,name){exports.hasCssClass(el,name)||(el.className+=\" \"+name)},exports.removeCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g);;){var index=classes.indexOf(name);if(-1==index)break;classes.splice(index,1)}el.className=classes.join(\" \")},exports.toggleCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g),add=!0;;){var index=classes.indexOf(name);if(-1==index)break;add=!1,classes.splice(index,1)}return add&&classes.push(name),el.className=classes.join(\" \"),add},exports.setCssClass=function(node,className,include){include?exports.addCssClass(node,className):exports.removeCssClass(node,className)},exports.hasCssString=function(id,doc){var sheets,index=0;if(doc=doc||document,doc.createStyleSheet&&(sheets=doc.styleSheets)){for(;sheets.length>index;)if(sheets[index++].owningElement.id===id)return!0}else if(sheets=doc.getElementsByTagName(\"style\"))for(;sheets.length>index;)if(sheets[index++].id===id)return!0;return!1},exports.importCssString=function(cssText,id,doc){if(doc=doc||document,id&&exports.hasCssString(id,doc))return null;var style;doc.createStyleSheet?(style=doc.createStyleSheet(),style.cssText=cssText,id&&(style.owningElement.id=id)):(style=doc.createElementNS?doc.createElementNS(XHTML_NS,\"style\"):doc.createElement(\"style\"),style.appendChild(doc.createTextNode(cssText)),id&&(style.id=id),exports.getDocumentHead(doc).appendChild(style))},exports.importCssStylsheet=function(uri,doc){if(doc.createStyleSheet)doc.createStyleSheet(uri);else{var link=exports.createElement(\"link\");link.rel=\"stylesheet\",link.href=uri,exports.getDocumentHead(doc).appendChild(link)}},exports.getInnerWidth=function(element){return parseInt(exports.computedStyle(element,\"paddingLeft\"),10)+parseInt(exports.computedStyle(element,\"paddingRight\"),10)+element.clientWidth},exports.getInnerHeight=function(element){return parseInt(exports.computedStyle(element,\"paddingTop\"),10)+parseInt(exports.computedStyle(element,\"paddingBottom\"),10)+element.clientHeight},void 0!==window.pageYOffset?(exports.getPageScrollTop=function(){return window.pageYOffset},exports.getPageScrollLeft=function(){return window.pageXOffset}):(exports.getPageScrollTop=function(){return document.body.scrollTop},exports.getPageScrollLeft=function(){return document.body.scrollLeft}),exports.computedStyle=window.getComputedStyle?function(element,style){return style?(window.getComputedStyle(element,\"\")||{})[style]||\"\":window.getComputedStyle(element,\"\")||{}}:function(element,style){return style?element.currentStyle[style]:element.currentStyle},exports.scrollbarWidth=function(document){var inner=exports.createElement(\"ace_inner\");inner.style.width=\"100%\",inner.style.minWidth=\"0px\",inner.style.height=\"200px\",inner.style.display=\"block\";var outer=exports.createElement(\"ace_outer\"),style=outer.style;style.position=\"absolute\",style.left=\"-10000px\",style.overflow=\"hidden\",style.width=\"200px\",style.minWidth=\"0px\",style.height=\"150px\",style.display=\"block\",outer.appendChild(inner);var body=document.documentElement;body.appendChild(outer);var noScrollbar=inner.offsetWidth;style.overflow=\"scroll\";var withScrollbar=inner.offsetWidth;return noScrollbar==withScrollbar&&(withScrollbar=outer.clientWidth),body.removeChild(outer),noScrollbar-withScrollbar},exports.setInnerHtml=function(el,innerHtml){var element=el.cloneNode(!1);return element.innerHTML=innerHtml,el.parentNode.replaceChild(element,el),element},\"textContent\"in document.documentElement?(exports.setInnerText=function(el,innerText){el.textContent=innerText},exports.getInnerText=function(el){return el.textContent}):(exports.setInnerText=function(el,innerText){el.innerText=innerText},exports.getInnerText=function(el){return el.innerText}),exports.getParentWindow=function(document){return document.defaultView||document.parentWindow}}}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\",\"ace/lib/dom\"],function(acequire,exports){function normalizeCommandKeys(callback,e,keyCode){var hashId=0;if(hashId=!useragent.isOpera||\"KeyboardEvent\"in window||!useragent.isMac?0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0):0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0),keyCode in keys.MODIFIER_KEYS){switch(keys.MODIFIER_KEYS[keyCode]){case\"Alt\":hashId=2;break;case\"Shift\":hashId=4;break;case\"Ctrl\":hashId=1;break;default:hashId=8}keyCode=0}return 8&hashId&&(91==keyCode||93==keyCode)&&(keyCode=0),hashId||keyCode in keys.FUNCTION_KEYS||keyCode in keys.PRINTABLE_KEYS?callback(e,hashId,keyCode):!1}var keys=acequire(\"./keys\"),useragent=acequire(\"./useragent\");if(acequire(\"./dom\"),exports.addListener=function(elem,type,callback){if(elem.addEventListener)return elem.addEventListener(type,callback,!1);if(elem.attachEvent){var wrapper=function(){callback(window.event)};callback._wrapper=wrapper,elem.attachEvent(\"on\"+type,wrapper)}},exports.removeListener=function(elem,type,callback){return elem.removeEventListener?elem.removeEventListener(type,callback,!1):(elem.detachEvent&&elem.detachEvent(\"on\"+type,callback._wrapper||callback),void 0)},exports.stopEvent=function(e){return exports.stopPropagation(e),exports.preventDefault(e),!1},exports.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},exports.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},exports.getButton=function(e){return\"dblclick\"==e.type?0:\"contextmenu\"==e.type||e.ctrlKey&&useragent.isMac?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},exports.capture=document.documentElement.setCapture?function(el,eventHandler,releaseCaptureHandler){function onReleaseCapture(e){eventHandler(e),called||(called=!0,releaseCaptureHandler(e)),exports.removeListener(el,\"mousemove\",eventHandler),exports.removeListener(el,\"mouseup\",onReleaseCapture),exports.removeListener(el,\"losecapture\",onReleaseCapture),el.releaseCapture()}var called=!1;exports.addListener(el,\"mousemove\",eventHandler),exports.addListener(el,\"mouseup\",onReleaseCapture),exports.addListener(el,\"losecapture\",onReleaseCapture),el.setCapture()}:function(el,eventHandler,releaseCaptureHandler){function onMouseUp(e){eventHandler&&eventHandler(e),releaseCaptureHandler&&releaseCaptureHandler(e),document.removeEventListener(\"mousemove\",eventHandler,!0),document.removeEventListener(\"mouseup\",onMouseUp,!0),e.stopPropagation()}document.addEventListener(\"mousemove\",eventHandler,!0),document.addEventListener(\"mouseup\",onMouseUp,!0)},exports.addMouseWheelListener=function(el,callback){var factor=8,listener=function(e){void 0!==e.wheelDelta?void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/factor,e.wheelY=-e.wheelDeltaY/factor):(e.wheelX=0,e.wheelY=-e.wheelDelta/factor):e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),callback(e)};exports.addListener(el,\"DOMMouseScroll\",listener),exports.addListener(el,\"mousewheel\",listener)},exports.addMultiMouseDownListener=function(el,timeouts,eventHandler,callbackName){var startX,startY,timer,clicks=0,eventNames={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};exports.addListener(el,\"mousedown\",function(e){if(0!=exports.getButton(e))clicks=0;else{var isNewClick=Math.abs(e.clientX-startX)>5||Math.abs(e.clientY-startY)>5;(!timer||isNewClick)&&(clicks=0),clicks+=1,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600)}if(1==clicks&&(startX=e.clientX,startY=e.clientY),eventHandler[callbackName](\"mousedown\",e),clicks>4)clicks=0;else if(clicks>1)return eventHandler[callbackName](eventNames[clicks],e)}),useragent.isOldIE&&exports.addListener(el,\"dblclick\",function(e){clicks=2,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600),eventHandler[callbackName](\"mousedown\",e),eventHandler[callbackName](eventNames[clicks],e)})},exports.addCommandKeyListener=function(el,callback){var addListener=exports.addListener;if(useragent.isOldGecko||useragent.isOpera&&!(\"KeyboardEvent\"in window)){var lastKeyDownKeyCode=null;addListener(el,\"keydown\",function(e){lastKeyDownKeyCode=e.keyCode}),addListener(el,\"keypress\",function(e){return normalizeCommandKeys(callback,e,lastKeyDownKeyCode)})}else{var lastDown=null;addListener(el,\"keydown\",function(e){return lastDown=e.keyIdentifier||e.keyCode,normalizeCommandKeys(callback,e,e.keyCode)})}},window.postMessage&&!useragent.isOldIE){var postMessageId=1;exports.nextTick=function(callback,win){win=win||window;var messageName=\"zero-timeout-message-\"+postMessageId;exports.addListener(win,\"message\",function listener(e){e.data==messageName&&(exports.stopPropagation(e),exports.removeListener(win,\"message\",listener),callback())}),win.postMessage(messageName,\"*\")}}exports.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,exports.nextFrame=exports.nextFrame?exports.nextFrame.bind(window):function(callback){setTimeout(callback,17)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"],function(acequire,exports){var oop=acequire(\"./oop\"),Keys=function(){var ret={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",188:\",\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"}};for(var i in ret.FUNCTION_KEYS){var name=ret.FUNCTION_KEYS[i].toLowerCase();ret[name]=parseInt(i,10)}return oop.mixin(ret,ret.MODIFIER_KEYS),oop.mixin(ret,ret.PRINTABLE_KEYS),oop.mixin(ret,ret.FUNCTION_KEYS),ret.enter=ret[\"return\"],ret.escape=ret.esc,ret.del=ret[\"delete\"],ret[173]=\"-\",ret}();oop.mixin(exports,Keys),exports.keyCodeToString=function(keyCode){return(Keys[keyCode]||String.fromCharCode(keyCode)).toLowerCase()}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};\nreturn function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(exports.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},exports.getOS=function(){return exports.isMac?exports.OS.MAC:exports.isLinux?exports.OS.LINUX:exports.OS.WINDOWS},\"object\"==typeof navigator){var os=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),ua=navigator.userAgent;exports.isWin=\"win\"==os,exports.isMac=\"mac\"==os,exports.isLinux=\"linux\"==os,exports.isIE=(\"Microsoft Internet Explorer\"==navigator.appName||navigator.appName.indexOf(\"MSAppHost\")>=0)&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\\.0-9]+)/)[1]),exports.isOldIE=exports.isIE&&9>exports.isIE,exports.isGecko=exports.isMozilla=window.controllers&&\"Gecko\"===window.navigator.product,exports.isOldGecko=exports.isGecko&&4>parseInt((navigator.userAgent.match(/rv\\:(\\d+)/)||[])[1],10),exports.isOpera=window.opera&&\"[object Opera]\"==Object.prototype.toString.call(window.opera),exports.isWebKit=parseFloat(ua.split(\"WebKit/\")[1])||void 0,exports.isChrome=parseFloat(ua.split(\" Chrome/\")[1])||void 0,exports.isAIR=ua.indexOf(\"AdobeAIR\")>=0,exports.isIPad=ua.indexOf(\"iPad\")>=0,exports.isTouchPad=ua.indexOf(\"TouchPad\")>=0}}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),useragent=acequire(\"./lib/useragent\"),TextInput=acequire(\"./keyboard/textinput\").TextInput,MouseHandler=acequire(\"./mouse/mouse_handler\").MouseHandler,FoldHandler=acequire(\"./mouse/fold_handler\").FoldHandler,KeyBinding=acequire(\"./keyboard/keybinding\").KeyBinding,EditSession=acequire(\"./edit_session\").EditSession,Search=acequire(\"./search\").Search,Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,CommandManager=acequire(\"./commands/command_manager\").CommandManager,defaultCommands=acequire(\"./commands/default_commands\").commands,config=acequire(\"./config\"),Editor=function(renderer,session){var container=renderer.getContainerElement();this.container=container,this.renderer=renderer,this.commands=new CommandManager(useragent.isMac?\"mac\":\"win\",defaultCommands),this.textInput=new TextInput(renderer.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new KeyBinding(this),this.$mouseHandler=new MouseHandler(this),new FoldHandler(this),this.$blockScrolling=0,this.$search=(new Search).set({wrap:!0}),this.setSession(session||new EditSession(\"\")),config.resetOptions(this),config._emit(\"editor\",this)};(function(){oop.implement(this,EventEmitter),this.setKeyboardHandler=function(keyboardHandler){if(keyboardHandler)if(\"string\"==typeof keyboardHandler){this.$keybindingId=keyboardHandler;var _self=this;config.loadModule([\"keybinding\",keyboardHandler],function(module){_self.$keybindingId==keyboardHandler&&_self.keyBinding.setKeyboardHandler(module&&module.handler)})}else delete this.$keybindingId,this.keyBinding.setKeyboardHandler(keyboardHandler);else this.keyBinding.setKeyboardHandler(null)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(session){if(this.session!=session){if(this.session){var oldSession=this.session;this.session.removeEventListener(\"change\",this.$onDocumentChange),this.session.removeEventListener(\"changeMode\",this.$onChangeMode),this.session.removeEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.removeEventListener(\"changeTabSize\",this.$onChangeTabSize),this.session.removeEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.removeEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.session.removeEventListener(\"onChangeFold\",this.$onChangeFold),this.session.removeEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.removeEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.session.removeEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.removeEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.session.removeEventListener(\"changeOverwrite\",this.$onCursorChange),this.session.removeEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.session.removeEventListener(\"changeScrollLeft\",this.$onScrollLeftChange);var selection=this.session.getSelection();selection.removeEventListener(\"changeCursor\",this.$onCursorChange),selection.removeEventListener(\"changeSelection\",this.$onSelectionChange)}this.session=session,this.$onDocumentChange=this.onDocumentChange.bind(this),session.addEventListener(\"change\",this.$onDocumentChange),this.renderer.setSession(session),this.$onChangeMode=this.onChangeMode.bind(this),session.addEventListener(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),session.addEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),session.addEventListener(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),session.addEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),session.addEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),session.addEventListener(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=session.getSelection(),this.selection.addEventListener(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit(\"changeSession\",{session:session,oldSession:oldSession})}},this.getSession=function(){return this.session},this.setValue=function(val,cursorPos){return this.session.doc.setValue(val),cursorPos?1==cursorPos?this.navigateFileEnd():-1==cursorPos&&this.navigateFileStart():this.selectAll(),val},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(force){this.renderer.onResize(force)},this.setTheme=function(theme){this.renderer.setTheme(theme)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(style){this.renderer.setStyle(style)},this.unsetStyle=function(style){this.renderer.unsetStyle(style)},this.setFontSize=function(size){this.setOption(\"fontSize\",size)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var self=this;this.$highlightPending=!0,setTimeout(function(){self.$highlightPending=!1;var pos=self.session.findMatchingBracket(self.getCursorPosition());if(pos)var range=new Range(pos.row,pos.column,pos.row,pos.column+1);else if(self.session.$mode.getMatching)var range=self.session.$mode.getMatching(self.session);range&&(self.session.$bracketHighlight=self.session.addMarker(range,\"ace_bracket\",\"text\"))},50)}},this.focus=function(){var _self=this;setTimeout(function(){_self.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\"))},this.onBlur=function(){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\"))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var lastRow,delta=e.data,range=delta.range;lastRow=range.start.row==range.end.row&&\"insertLines\"!=delta.action&&\"removeLines\"!=delta.action?range.end.row:1/0,this.renderer.updateLines(range.start.row,lastRow),this._emit(\"change\",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var rows=e.data;this.renderer.updateLines(rows.first,rows.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var highlight,session=this.getSession();if(this.$highlightActiveLine&&(\"line\"==this.$selectionStyle&&this.selection.isMultiLine()||(highlight=this.getCursorPosition())),session.$highlightLineMarker&&!highlight)session.removeMarker(session.$highlightLineMarker.id),session.$highlightLineMarker=null;else if(!session.$highlightLineMarker&&highlight){var range=new Range(highlight.row,highlight.column,highlight.row,1/0);range.id=session.addMarker(range,\"ace_active-line\",\"screenLine\"),session.$highlightLineMarker=range}else highlight&&(session.$highlightLineMarker.start.row=highlight.row,session.$highlightLineMarker.end.row=highlight.row,session.$highlightLineMarker.start.column=highlight.column,session._emit(\"changeBackMarker\"))},this.onSelectionChange=function(){var session=this.session;if(session.$selectionMarker&&session.removeMarker(session.$selectionMarker),session.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var range=this.selection.getRange(),style=this.getSelectionStyle();session.$selectionMarker=session.addMarker(range,\"ace_selection\",style)}var re=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(re),this._emit(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var session=this.session,selection=this.getSelectionRange();if(!selection.isEmpty()&&!selection.isMultiLine()){var startOuter=selection.start.column-1,endOuter=selection.end.column+1,line=session.getLine(selection.start.row),lineCols=line.length,needle=line.substring(Math.max(startOuter,0),Math.min(endOuter,lineCols));if(!(startOuter>=0&&/^[\\w\\d]/.test(needle)||lineCols>=endOuter&&/[\\w\\d]$/.test(needle))&&(needle=line.substring(selection.start.column,selection.end.column),/^[\\w\\d]+$/.test(needle))){var re=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:needle});return re}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var text=\"\";return this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange())),this._emit(\"copy\",text),text},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(text){this.$readOnly||(this._emit(\"paste\",text),this.insert(text))},this.execCommand=function(command,args){this.commands.exec(command,this,args)},this.insert=function(text){var session=this.session,mode=session.getMode(),cursor=this.getCursorPosition();if(this.getBehavioursEnabled()){var transform=mode.transformAction(session.getState(cursor.row),\"insertion\",this,session,text);transform&&(text=transform.text)}if(text=text.replace(\"\t\",this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var range=new Range.fromPoints(cursor,cursor);range.end.column+=text.length,this.session.remove(range)}}else cursor=this.session.remove(this.getSelectionRange()),this.clearSelection();this.clearSelection();var start=cursor.column,lineState=session.getState(cursor.row),line=session.getLine(cursor.row),shouldOutdent=mode.checkOutdent(lineState,line,text),end=session.insert(cursor,text);if(transform&&transform.selection&&(2==transform.selection.length?this.selection.setSelectionRange(new Range(cursor.row,start+transform.selection[0],cursor.row,start+transform.selection[1])):this.selection.setSelectionRange(new Range(cursor.row+transform.selection[0],transform.selection[1],cursor.row+transform.selection[2],transform.selection[3]))),session.getDocument().isNewLine(text)){var lineIndent=mode.getNextLineIndent(lineState,line.slice(0,cursor.column),session.getTabString());this.moveCursorTo(cursor.row+1,0);for(var size=session.getTabSize(),minIndent=Number.MAX_VALUE,row=cursor.row+1;end.row>=row;++row){var indent=0;line=session.getLine(row);for(var i=0;line.length>i;++i)if(\"\t\"==line.charAt(i))indent+=size;else{if(\" \"!=line.charAt(i))break;indent+=1}/[^\\s]/.test(line)&&(minIndent=Math.min(indent,minIndent))}for(var row=cursor.row+1;end.row>=row;++row){var outdent=minIndent;line=session.getLine(row);for(var i=0;line.length>i&&outdent>0;++i)\"\t\"==line.charAt(i)?outdent-=size:\" \"==line.charAt(i)&&(outdent-=1);session.remove(new Range(row,0,row,i))}session.indentRows(cursor.row+1,end.row,lineIndent)}shouldOutdent&&mode.autoOutdent(lineState,session,cursor.row)},this.onTextInput=function(text){this.keyBinding.onTextInput(text)},this.onCommandKey=function(e,hashId,keyCode){this.keyBinding.onCommandKey(e,hashId,keyCode)},this.setOverwrite=function(overwrite){this.session.setOverwrite(overwrite)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(speed){this.setOption(\"scrollSpeed\",speed)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(dragDelay){this.setOption(\"dragDelay\",dragDelay)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(val){this.setOption(\"selectionStyle\",val)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(shouldHighlight){this.setOption(\"highlightActiveLine\",shouldHighlight)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(shouldHighlight){this.setOption(\"highlightSelectedWord\",shouldHighlight)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(shouldAnimate){this.renderer.setAnimatedScroll(shouldAnimate)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(showInvisibles){this.renderer.setShowInvisibles(showInvisibles)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(display){this.renderer.setDisplayIndentGuides(display)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(showPrintMargin){this.renderer.setShowPrintMargin(showPrintMargin)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(showPrintMargin){this.renderer.setPrintMarginColumn(showPrintMargin)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(readOnly){this.setOption(\"readOnly\",readOnly)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(enabled){this.setOption(\"behavioursEnabled\",enabled)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(enabled){this.setOption(\"wrapBehavioursEnabled\",enabled)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(show){this.setOption(\"showFoldWidgets\",show)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(fade){this.setOption(\"fadeFoldWidgets\",fade)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(dir){this.selection.isEmpty()&&(\"left\"==dir?this.selection.selectLeft():this.selection.selectRight());var range=this.getSelectionRange();if(this.getBehavioursEnabled()){var session=this.session,state=session.getState(range.start.row),new_range=session.getMode().transformAction(state,\"deletion\",this,session,range);new_range&&(range=new_range)}this.session.remove(range),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var range=this.getSelectionRange();range.start.column==range.end.column&&range.start.row==range.end.row&&(range.end.column=0,range.end.row++),this.session.remove(range),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var cursor=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(cursor)},this.transposeLetters=function(){if(this.selection.isEmpty()){var cursor=this.getCursorPosition(),column=cursor.column;if(0!==column){var swap,range,line=this.session.getLine(cursor.row);line.length>column?(swap=line.charAt(column)+line.charAt(column-1),range=new Range(cursor.row,column-1,cursor.row,column+1)):(swap=line.charAt(column-1)+line.charAt(column-2),range=new Range(cursor.row,column-2,cursor.row,column)),this.session.replace(range,swap)}}},this.toLowerCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toLowerCase()),this.selection.setSelectionRange(originalRange)},this.toUpperCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toUpperCase()),this.selection.setSelectionRange(originalRange)},this.indent=function(){var session=this.session,range=this.getSelectionRange();if(!(range.start.row\u003Crange.end.row||range.start.column\u003Crange.end.column)){var indentString;if(this.session.getUseSoftTabs()){var size=session.getTabSize(),position=this.getCursorPosition(),column=session.documentToScreenColumn(position.row,position.column),count=size-column%size;indentString=lang.stringRepeat(\" \",count)}else indentString=\"\t\";return this.insert(indentString)}var rows=this.$getSelectedRows();session.indentRows(rows.first,rows.last,\"\t\")},this.blockIndent=function(){var rows=this.$getSelectedRows();this.session.indentRows(rows.first,rows.last,\"\t\")},this.blockOutdent=function(){var selection=this.session.getSelection();this.session.outdentRows(selection.getRange())},this.sortLines=function(){var rows=this.$getSelectedRows(),session=this.session,lines=[];for(i=rows.first;rows.last>=i;i++)lines.push(session.getLine(i));lines.sort(function(a,b){return a.toLowerCase()\u003Cb.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0});for(var deleteRange=new Range(0,0,0,0),i=rows.first;rows.last>=i;i++){var line=session.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i,deleteRange.end.column=line.length,session.replace(deleteRange,lines[i-rows.first])}},this.toggleCommentLines=function(){var state=this.session.getState(this.getCursorPosition().row),rows=this.$getSelectedRows();this.session.getMode().toggleCommentLines(state,this.session,rows.first,rows.last)},this.getNumberAt=function(row,column){var _numberRx=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;_numberRx.lastIndex=0;for(var s=this.session.getLine(row);column>_numberRx.lastIndex;){var m=_numberRx.exec(s);if(column>=m.index&&m.index+m[0].length>=column){var number={value:m[0],start:m.index,end:m.index+m[0].length};return number}}return null},this.modifyNumber=function(amount){var row=this.selection.getCursor().row,column=this.selection.getCursor().column,charRange=new Range(row,column-1,row,column),c=this.session.getTextRange(charRange);if(!isNaN(parseFloat(c))&&isFinite(c)){var nr=this.getNumberAt(row,column);if(nr){var fp=nr.value.indexOf(\".\")>=0?nr.start+nr.value.indexOf(\".\")+1:nr.end,decimals=nr.start+nr.value.length-fp,t=parseFloat(nr.value);t*=Math.pow(10,decimals),amount*=fp!==nr.end&&fp>column?Math.pow(10,nr.end-column-1):Math.pow(10,nr.end-column),t+=amount,t/=Math.pow(10,decimals);var nnr=t.toFixed(decimals),replaceRange=new Range(row,nr.start,row,nr.end);this.session.replace(replaceRange,nnr),this.moveCursorTo(row,Math.max(nr.start+1,column+nnr.length-nr.value.length))}}},this.removeLines=function(){var range,rows=this.$getSelectedRows();range=0===rows.first||rows.last+1\u003Cthis.session.getLength()?new Range(rows.first,0,rows.last+1,0):new Range(rows.first-1,this.session.getLine(rows.first-1).length,rows.last,this.session.getLine(rows.last).length),this.session.remove(range),this.clearSelection()},this.duplicateSelection=function(){var sel=this.selection,doc=this.session,range=sel.getRange(),reverse=sel.isBackwards();if(range.isEmpty()){var row=range.start.row;doc.duplicateLines(row,row)}else{var point=reverse?range.start:range.end,endPoint=doc.insert(point,doc.getTextRange(range),!1);range.start=point,range.end=endPoint,sel.setSelectionRange(range,reverse)}},this.moveLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesDown(firstRow,lastRow)})},this.moveLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesUp(firstRow,lastRow)})},this.moveText=function(range,toPosition){return this.session.moveText(range,toPosition)},this.copyLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow),0})},this.copyLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow)})},this.$moveLines=function(mover){var selection=this.selection;if(!selection.inMultiSelectMode||this.inVirtualSelectionMode){var range=selection.toOrientedRange(),rows=this.$getSelectedRows(range),linesMoved=mover.call(this,rows.first,rows.last);range.moveBy(linesMoved,0),selection.fromOrientedRange(range)}else{var ranges=selection.rangeList.ranges;selection.rangeList.detach(this.session);for(var i=ranges.length;i--;){for(var rangeIndex=i,rows=ranges[i].collapseRows(),last=rows.end.row,first=rows.start.row;i--;){var rows=ranges[i].collapseRows();if(!(1>=first-rows.end.row))break;first=rows.end.row}i++;for(var linesMoved=mover.call(this,first,last);rangeIndex>=i;)ranges[rangeIndex].moveBy(linesMoved,0),rangeIndex--}selection.fromOrientedRange(selection.ranges[0]),selection.rangeList.attach(this.session)}},this.$getSelectedRows=function(){var range=this.getSelectionRange().collapseRows();return{first:range.start.row,last:range.end.row}},this.onCompositionStart=function(){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(text){this.renderer.setCompositionText(text)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(row){return row>=this.getFirstVisibleRow()&&this.getLastVisibleRow()>=row},this.isRowFullyVisible=function(row){return row>=this.renderer.getFirstFullyVisibleRow()&&this.renderer.getLastFullyVisibleRow()>=row},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(dir,select){var renderer=this.renderer,config=this.renderer.layerConfig,rows=dir*Math.floor(config.height/config.lineHeight);this.$blockScrolling++,1==select?this.selection.$moveSelection(function(){this.moveCursorBy(rows,0)}):0==select&&(this.selection.moveCursorBy(rows,0),this.selection.clearSelection()),this.$blockScrolling--;var scrollTop=renderer.scrollTop;renderer.scrollBy(0,rows*config.lineHeight),null!=select&&renderer.scrollCursorIntoView(null,.5),renderer.animateScrolling(scrollTop)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(row){this.renderer.scrollToRow(row)},this.scrollToLine=function(line,center,animate,callback){this.renderer.scrollToLine(line,center,animate,callback)},this.centerSelection=function(){var range=this.getSelectionRange(),pos={row:Math.floor(range.start.row+(range.end.row-range.start.row)/2),column:Math.floor(range.start.column+(range.end.column-range.start.column)/2)};this.renderer.alignCursor(pos,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(row,column){this.selection.moveCursorTo(row,column)},this.moveCursorToPosition=function(pos){this.selection.moveCursorToPosition(pos)},this.jumpToMatching=function(select){var cursor=this.getCursorPosition(),range=this.session.getBracketRange(cursor);if(!range){if(range=this.find({needle:/[{}()\\[\\]]/g,preventScroll:!0,start:{row:cursor.row,column:cursor.column-1}}),!range)return;var pos=range.start;pos.row==cursor.row&&2>Math.abs(pos.column-cursor.column)&&(range=this.session.getBracketRange(pos))}pos=range&&range.cursor||pos,pos&&(select?range&&range.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(pos.row,pos.column):(this.clearSelection(),this.moveCursorTo(pos.row,pos.column)))},this.gotoLine=function(lineNumber,column,animate){this.selection.clearSelection(),this.session.unfold({row:lineNumber-1,column:column||0}),this.$blockScrolling+=1,this.moveCursorTo(lineNumber-1,column||0),this.$blockScrolling-=1,this.isRowFullyVisible(lineNumber-1)||this.scrollToLine(lineNumber-1,!0,animate)},this.navigateTo=function(row,column){this.clearSelection(),this.moveCursorTo(row,column)},this.navigateUp=function(times){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var selectionStart=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionStart)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(-times,0)},this.navigateDown=function(times){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var selectionEnd=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionEnd)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(times,0)},this.navigateLeft=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorLeft();else{var selectionStart=this.getSelectionRange().start;this.moveCursorToPosition(selectionStart)}this.clearSelection()},this.navigateRight=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorRight();else{var selectionEnd=this.getSelectionRange().end;this.moveCursorToPosition(selectionEnd)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateFileStart=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(replacement,options){options&&this.$search.set(options);var range=this.$search.find(this.session),replaced=0;return range?(this.$tryReplace(range,replacement)&&(replaced=1),null!==range&&(this.selection.setSelectionRange(range),this.renderer.scrollSelectionIntoView(range.start,range.end)),replaced):replaced},this.replaceAll=function(replacement,options){options&&this.$search.set(options);var ranges=this.$search.findAll(this.session),replaced=0;if(!ranges.length)return replaced;this.$blockScrolling+=1;var selection=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var i=ranges.length-1;i>=0;--i)this.$tryReplace(ranges[i],replacement)&&replaced++;return this.selection.setSelectionRange(selection),this.$blockScrolling-=1,replaced},this.$tryReplace=function(range,replacement){var input=this.session.getTextRange(range);return replacement=this.$search.replace(input,replacement),null!==replacement?(range.end=this.session.replace(range,replacement),range):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(needle,options,animate){options||(options={}),\"string\"==typeof needle||needle instanceof RegExp?options.needle=needle:\"object\"==typeof needle&&oop.mixin(options,needle);\nvar range=this.selection.getRange();null==options.needle&&(needle=this.session.getTextRange(range)||this.$search.$options.needle,needle||(range=this.session.getWordRange(range.start.row,range.start.column),needle=this.session.getTextRange(range)),this.$search.set({needle:needle})),this.$search.set(options),options.start||this.$search.set({start:range});var newRange=this.$search.find(this.session);return options.preventScroll?newRange:newRange?(this.revealRange(newRange,animate),newRange):(options.backwards?range.start=range.end:range.end=range.start,this.selection.setRange(range),void 0)},this.findNext=function(options,animate){this.find({skipCurrent:!0,backwards:!1},options,animate)},this.findPrevious=function(options,animate){this.find(options,{skipCurrent:!0,backwards:!0},animate)},this.revealRange=function(range,animate){this.$blockScrolling+=1,this.session.unfold(range),this.selection.setSelectionRange(range),this.$blockScrolling-=1;var scrollTop=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(range.start,range.end,.5),0!=animate&&this.renderer.animateScrolling(scrollTop)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._emit(\"destroy\",this)},this.setAutoScrollEditorIntoView=function(enable){if(enable!==!1){var rect,self=this,shouldScroll=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var scrollAnchor=this.$scrollAnchor;scrollAnchor.style.cssText=\"position:absolute\",this.container.insertBefore(scrollAnchor,this.container.firstChild);var onChangeSelection=this.on(\"changeSelection\",function(){shouldScroll=!0}),onBeforeRender=this.renderer.on(\"beforeRender\",function(){shouldScroll&&(rect=self.renderer.container.getBoundingClientRect())}),onAfterRender=this.renderer.on(\"afterRender\",function(){if(shouldScroll&&rect&&self.isFocused()){var renderer=self.renderer,pos=renderer.$cursorLayer.$pixelPos,config=renderer.layerConfig,top=pos.top-config.offset;shouldScroll=pos.top>=0&&0>top+rect.top?!0:pos.top\u003Cconfig.height&&pos.top+rect.top+config.lineHeight>window.innerHeight?!1:null,null!=shouldScroll&&(scrollAnchor.style.top=top+\"px\",scrollAnchor.style.left=pos.left+\"px\",scrollAnchor.style.height=config.lineHeight+\"px\",scrollAnchor.scrollIntoView(shouldScroll)),shouldScroll=rect=null}});this.setAutoScrollEditorIntoView=function(enable){enable!==!0&&(delete this.setAutoScrollEditorIntoView,this.removeEventListener(\"changeSelection\",onChangeSelection),this.renderer.removeEventListener(\"afterRender\",onAfterRender),this.renderer.removeEventListener(\"beforeRender\",onBeforeRender))}}}}).call(Editor.prototype),config.defineOptions(Editor.prototype,\"editor\",{selectionStyle:{set:function(style){this.onSelectionChange(),this._emit(\"changeSelectionStyle\",{data:style})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(readOnly){this.textInput.setReadOnly(readOnly);var cursorLayer=this.renderer.$cursorLayer;cursorLayer&&cursorLayer.setBlinking(!readOnly)},initialValue:!1},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},hScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",focusTimout:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",foldStyle:\"session\"}),exports.Editor=Editor}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),BROKEN_SETDATA=18>useragent.isChrome,TextInput=function(parentNode,host){function resetSelection(isEmpty){if(!inComposition){if(inputHandler)selectionStart=0,selectionEnd=isEmpty?0:text.value.length-1;else var selectionStart=isEmpty?2:1,selectionEnd=2;try{text.setSelectionRange(selectionStart,selectionEnd)}catch(e){}}}function resetValue(){inComposition||(text.value=PLACEHOLDER,useragent.isWebKit&&syncValue.schedule())}function onContextMenuClose(){setTimeout(function(){tempStyle&&(text.style.cssText=tempStyle,tempStyle=\"\"),null==host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=!0,host.renderer.$moveTextAreaToCursor())},0)}var text=dom.createElement(\"textarea\");text.className=\"ace_text-input\",useragent.isTouchPad&&text.setAttribute(\"x-palm-disable-auto-cap\",!0),text.wrap=\"off\",text.autocorrect=\"off\",text.autocapitalize=\"off\",text.spellcheck=!1,text.style.bottom=\"2000em\",parentNode.insertBefore(text,parentNode.firstChild);var PLACEHOLDER=\"\u0001\u0001\",cut=!1,copied=!1,pasted=!1,inComposition=!1,tempStyle=\"\",isSelectionEmpty=!0;try{var isFocused=document.activeElement===text}catch(e){}event.addListener(text,\"blur\",function(){host.onBlur(),isFocused=!1}),event.addListener(text,\"focus\",function(){isFocused=!0,host.onFocus(),resetSelection()}),this.focus=function(){text.focus()},this.blur=function(){text.blur()},this.isFocused=function(){return isFocused};var syncSelection=lang.delayedCall(function(){isFocused&&resetSelection(isSelectionEmpty)}),syncValue=lang.delayedCall(function(){inComposition||(text.value=PLACEHOLDER,isFocused&&resetSelection())});useragent.isWebKit||host.addEventListener(\"changeSelection\",function(){host.selection.isEmpty()!=isSelectionEmpty&&(isSelectionEmpty=!isSelectionEmpty,syncSelection.schedule())}),resetValue(),isFocused&&host.onFocus();var isAllSelected=function(text){return 0===text.selectionStart&&text.selectionEnd===text.value.length};if(!text.setSelectionRange&&text.createTextRange&&(text.setSelectionRange=function(selectionStart,selectionEnd){var range=this.createTextRange();range.collapse(!0),range.moveStart(\"character\",selectionStart),range.moveEnd(\"character\",selectionEnd),range.select()},isAllSelected=function(text){try{var range=text.ownerDocument.selection.createRange()}catch(e){}return range&&range.parentElement()==text?range.text==text.value:!1}),useragent.isOldIE){var inPropertyChange=!1,onPropertyChange=function(e){if(!inPropertyChange){var data=text.value;if(!inComposition&&data&&data!=PLACEHOLDER){if(e&&data==PLACEHOLDER[0])return syncProperty.schedule();sendText(data),inPropertyChange=!0,resetValue(),inPropertyChange=!1}}},syncProperty=lang.delayedCall(onPropertyChange);event.addListener(text,\"propertychange\",onPropertyChange);var keytable={13:1,27:1};event.addListener(text,\"keyup\",function(e){!inComposition||text.value&&!keytable[e.keyCode]||setTimeout(onCompositionEnd,0),129>(text.value.charCodeAt(0)||0)||(inComposition?onCompositionUpdate():onCompositionStart())})}var onSelect=function(){cut?cut=!1:copied?copied=!1:isAllSelected(text)?(host.selectAll(),resetSelection()):inputHandler&&resetSelection(host.selection.isEmpty())},inputHandler=null;this.setInputHandler=function(cb){inputHandler=cb},this.getInputHandler=function(){return inputHandler};var afterContextMenu=!1,sendText=function(data){inputHandler&&(data=inputHandler(data),inputHandler=null),pasted?(resetSelection(),data&&host.onPaste(data),pasted=!1):data==PLACEHOLDER[0]?afterContextMenu&&host.execCommand(\"del\",{source:\"ace\"}):(data.substring(0,2)==PLACEHOLDER?data=data.substr(2):data[0]==PLACEHOLDER[0]?data=data.substr(1):data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data&&host.onTextInput(data)),afterContextMenu&&(afterContextMenu=!1)},onInput=function(){if(!inComposition){var data=text.value;sendText(data),resetValue()}},onCut=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCut(),event.preventDefault(e))}supported||(cut=!0,text.value=data,text.select(),setTimeout(function(){cut=!1,resetValue(),resetSelection(),host.onCut()}))},onCopy=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCopy(),event.preventDefault(e))}supported||(copied=!0,text.value=data,text.select(),setTimeout(function(){copied=!1,resetValue(),resetSelection(),host.onCopy()}))},onPaste=function(e){var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData){var data=clipboardData.getData(\"Text\");data&&host.onPaste(data),useragent.isIE&&setTimeout(resetSelection),event.preventDefault(e)}else text.value=\"\",pasted=!0};event.addCommandKeyListener(text,host.onCommandKey.bind(host)),event.addListener(text,\"select\",onSelect),event.addListener(text,\"input\",onInput),event.addListener(text,\"cut\",onCut),event.addListener(text,\"copy\",onCopy),event.addListener(text,\"paste\",onPaste),\"oncut\"in text&&\"oncopy\"in text&&\"onpaste\"in text||event.addListener(parentNode,\"keydown\",function(e){if((!useragent.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:onCopy(e);break;case 86:onPaste(e);break;case 88:onCut(e)}});var onCompositionStart=function(){inComposition={},host.onCompositionStart(),setTimeout(onCompositionUpdate,0),host.on(\"mousedown\",onCompositionEnd),host.selection.isEmpty()||(host.insert(\"\"),host.session.markUndoGroup(),host.selection.clearSelection()),host.session.markUndoGroup()},onCompositionUpdate=function(){if(inComposition&&(host.onCompositionUpdate(text.value),inComposition.lastValue&&host.undo(),inComposition.lastValue=text.value.replace(/\\x01/g,\"\"),inComposition.lastValue)){var r=host.selection.getRange();host.insert(inComposition.lastValue),host.session.markUndoGroup(),inComposition.range=host.selection.getRange(),host.selection.setRange(r),host.selection.clearSelection()}},onCompositionEnd=function(e){var c=inComposition;inComposition=!1;var timer=setTimeout(function(){var str=text.value.replace(/\\x01/g,\"\");inComposition||str!=c.lastValue||resetValue()});inputHandler=function(str){return clearTimeout(timer),str=str.replace(/\\x01/g,\"\"),str==c.lastValue?\"\":(str||c.lastValue&&host.undo(),str)},host.onCompositionEnd(),host.removeListener(\"mousedown\",onCompositionEnd),\"compositionend\"==e.type&&host.selection.setRange(c.range)},syncComposition=lang.delayedCall(onCompositionUpdate,50);event.addListener(text,\"compositionstart\",onCompositionStart),event.addListener(text,useragent.isGecko?\"text\":\"keyup\",function(){syncComposition.schedule()}),event.addListener(text,\"compositionend\",onCompositionEnd),this.getElement=function(){return text},this.setReadOnly=function(readOnly){text.readOnly=readOnly},this.onContextMenu=function(e){afterContextMenu=!0,tempStyle||(tempStyle=text.style.cssText),text.style.cssText=\"z-index:100000;\"+(useragent.isIE?\"opacity:0.1;\":\"\"),resetSelection(host.selection.isEmpty()),host._emit(\"nativecontextmenu\",{target:host});var rect=host.container.getBoundingClientRect(),style=dom.computedStyle(host.container),top=rect.top+(parseInt(style.borderTopWidth)||0),left=rect.left+(parseInt(rect.borderLeftWidth)||0),maxTop=rect.bottom-top-text.clientHeight,move=function(e){text.style.left=e.clientX-left-2+\"px\",text.style.top=Math.min(e.clientY-top-2,maxTop)+\"px\"};move(e),\"mousedown\"==e.type&&(host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=null),useragent.isWin&&event.capture(host.container,move,onContextMenuClose))},this.onContextMenuClose=onContextMenuClose,useragent.isGecko||event.addListener(text,\"contextmenu\",function(e){host.textInput.onContextMenu(e),onContextMenuClose()})};exports.TextInput=TextInput}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop\",\"ace/config\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),DefaultHandlers=acequire(\"./default_handlers\").DefaultHandlers,DefaultGutterHandler=acequire(\"./default_gutter_handler\").GutterHandler,MouseEvent=acequire(\"./mouse_event\").MouseEvent,DragdropHandler=acequire(\"./dragdrop\").DragdropHandler,config=acequire(\"../config\"),MouseHandler=function(editor){this.editor=editor,new DefaultHandlers(this),new DefaultGutterHandler(this),new DragdropHandler(this),event.addListener(editor.container,\"mousedown\",function(e){return editor.focus(),event.preventDefault(e)});var mouseTarget=editor.renderer.getMouseEventTarget();event.addListener(mouseTarget,\"click\",this.onMouseEvent.bind(this,\"click\")),event.addListener(mouseTarget,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),event.addMultiMouseDownListener(mouseTarget,[300,300,250],this,\"onMouseEvent\"),event.addMouseWheelListener(editor.container,this.onMouseWheel.bind(this,\"mousewheel\"));var gutterEl=editor.renderer.$gutter;event.addListener(gutterEl,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),event.addListener(gutterEl,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),event.addListener(gutterEl,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),event.addListener(gutterEl,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\"))};(function(){this.onMouseEvent=function(name,e){this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseMove=function(name,e){var listeners=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;listeners&&listeners.length&&this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseWheel=function(name,e){var mouseEvent=new MouseEvent(e,this.editor);mouseEvent.speed=2*this.$scrollSpeed,mouseEvent.wheelX=e.wheelX,mouseEvent.wheelY=e.wheelY,this.editor._emit(name,mouseEvent)},this.setState=function(state){this.state=state},this.captureMouse=function(ev,state){state&&this.setState(state),this.x=ev.x,this.y=ev.y,this.isMousePressed=!0;var renderer=this.editor.renderer;renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=null);var self=this,onMouseMove=function(e){self.x=e.clientX,self.y=e.clientY},onCaptureEnd=function(e){clearInterval(timerId),onCaptureInterval(),self[self.state+\"End\"]&&self[self.state+\"End\"](e),self.$clickSelection=null,null==renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=!0,renderer.$moveTextAreaToCursor()),self.isMousePressed=!1,self.onMouseEvent(\"mouseup\",e)},onCaptureInterval=function(){self[self.state]&&self[self.state]()};if(useragent.isOldIE&&\"dblclick\"==ev.domEvent.type)return setTimeout(function(){onCaptureEnd(ev.domEvent)});event.capture(this.editor.container,onMouseMove,onCaptureEnd);var timerId=setInterval(onCaptureInterval,20)}}).call(MouseHandler.prototype),config.defineOptions(MouseHandler.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:150},focusTimout:{initialValue:0}}),exports.MouseHandler=MouseHandler}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/useragent\"],function(acequire,exports){function DefaultHandlers(mouseHandler){mouseHandler.$clickSelection=null;var editor=mouseHandler.editor;editor.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(mouseHandler)),editor.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(mouseHandler)),editor.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(mouseHandler)),editor.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(mouseHandler)),editor.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(mouseHandler));var exports=[\"select\",\"startSelect\",\"drag\",\"dragEnd\",\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"focusWait\"];exports.forEach(function(x){mouseHandler[x]=this[x]},this),mouseHandler.selectByLines=this.extendSelectionBy.bind(mouseHandler,\"getLineRange\"),mouseHandler.selectByWords=this.extendSelectionBy.bind(mouseHandler,\"getWordRange\")}function calcDistance(ax,ay,bx,by){return Math.sqrt(Math.pow(bx-ax,2)+Math.pow(by-ay,2))}function calcRangeOrientation(range,cursor){if(range.start.row==range.end.row)var cmp=2*cursor.column-range.start.column-range.end.column;else var cmp=2*cursor.row-range.start.row-range.end.row;return 0>cmp?{cursor:range.start,anchor:range.end}:{cursor:range.end,anchor:range.start}}var dom=acequire(\"../lib/dom\");acequire(\"../lib/useragent\");var DRAG_OFFSET=0;(function(){this.onMouseDown=function(ev){var inSelection=ev.inSelection(),pos=ev.getDocumentPosition();this.mousedownEvent=ev;var editor=this.editor,button=ev.getButton();if(0!==button){var selectionRange=editor.getSelectionRange(),selectionEmpty=selectionRange.isEmpty();return selectionEmpty&&(editor.moveCursorToPosition(pos),editor.selection.clearSelection()),editor.textInput.onContextMenu(ev.domEvent),void 0}return!inSelection||editor.isFocused()||(editor.focus(),!this.$focusTimout||this.$clickSelection||editor.inMultiSelectMode)?(!inSelection||this.$clickSelection||ev.getShiftKey()||editor.inMultiSelectMode?this.startSelect(pos):inSelection&&(this.mousedownEvent.time=(new Date).getTime(),this.setState(\"dragWait\")),this.captureMouse(ev),ev.preventDefault()):(this.setState(\"focusWait\"),this.captureMouse(ev),ev.preventDefault())},this.startSelect=function(pos){pos=pos||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(pos):this.$clickSelection||(this.editor.moveCursorToPosition(pos),this.editor.selection.clearSelection()),this.setState(\"select\")},this.select=function(){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var cmp=this.$clickSelection.comparePoint(cursor);if(-1==cmp)anchor=this.$clickSelection.end;else if(1==cmp)anchor=this.$clickSelection.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(unitName){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y),range=editor.selection[unitName](cursor.row,cursor.column);if(this.$clickSelection){var cmpStart=this.$clickSelection.comparePoint(range.start),cmpEnd=this.$clickSelection.comparePoint(range.end);if(-1==cmpStart&&0>=cmpEnd)anchor=this.$clickSelection.end,(range.end.row!=cursor.row||range.end.column!=cursor.column)&&(cursor=range.start);else if(1==cmpEnd&&cmpStart>=0)anchor=this.$clickSelection.start,(range.start.row!=cursor.row||range.start.column!=cursor.column)&&(cursor=range.end);else if(-1==cmpStart&&1==cmpEnd)cursor=range.end,anchor=range.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.startDrag=function(){var editor=this.editor;this.setState(\"drag\"),this.dragRange=editor.getSelectionRange();var style=editor.getSelectionStyle();this.dragSelectionMarker=editor.session.addMarker(this.dragRange,\"ace_selection\",style),editor.clearSelection(),dom.addCssClass(editor.container,\"ace_dragging\"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(data,hashId,keyString){return\"esc\"==keyString?{command:this.command}:void 0},command:{exec:function(editor){var self=editor.$mouseHandler;self.dragCursor=null,self.dragEnd(),self.startSelect()}}}),editor.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.focusWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime();(distance>DRAG_OFFSET||time-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.dragWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime(),editor=this.editor;distance>DRAG_OFFSET?this.startSelect(this.mousedownEvent.getDocumentPosition()):time-this.mousedownEvent.time>editor.$mouseHandler.$dragDelay&&this.startDrag()},this.dragWaitEnd=function(e){this.mousedownEvent.domEvent=e,this.startSelect()},this.drag=function(){var editor=this.editor;this.dragCursor=editor.renderer.screenToTextCoordinates(this.x,this.y),editor.moveCursorToPosition(this.dragCursor),editor.renderer.scrollCursorIntoView()},this.dragEnd=function(e){var editor=this.editor,dragCursor=this.dragCursor,dragRange=this.dragRange;if(dom.removeCssClass(editor.container,\"ace_dragging\"),editor.session.removeMarker(this.dragSelectionMarker),editor.keyBinding.removeKeyboardHandler(this.$dragKeybinding),dragCursor){if(editor.clearSelection(),e&&(e.ctrlKey||e.altKey)){var session=editor.session,newRange=dragRange;newRange.end=session.insert(dragCursor,session.getTextRange(dragRange)),newRange.start=dragCursor}else{if(dragRange.contains(dragCursor.row,dragCursor.column))return;var newRange=editor.moveText(dragRange,dragCursor)}newRange&&editor.selection.setSelectionRange(newRange)}},this.onDoubleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor,session=editor.session,range=session.getBracketRange(pos);return range?(range.isEmpty()&&(range.start.column--,range.end.column++),this.$clickSelection=range,this.setState(\"select\"),void 0):(this.$clickSelection=editor.selection.getWordRange(pos.row,pos.column),this.setState(\"selectByWords\"),void 0)},this.onTripleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor;this.setState(\"selectByLines\"),this.$clickSelection=editor.selection.getLineRange(pos.row)},this.onQuadClick=function(){var editor=this.editor;editor.selectAll(),this.$clickSelection=editor.getSelectionRange(),this.setState(\"null\")},this.onMouseWheel=function(ev){if(!ev.getShiftKey()&&!ev.getAccelKey()){var t=ev.domEvent.timeStamp,dt=t-(this.$lastScrollTime||0),editor=this.editor,isScrolable=editor.renderer.isScrollableBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed);return isScrolable||200>dt?(this.$lastScrollTime=t,editor.renderer.scrollBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed),ev.stop()):void 0}}}).call(DefaultHandlers.prototype),exports.DefaultHandlers=DefaultHandlers}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\"],function(acequire,exports){function GutterHandler(mouseHandler){function createTooltip(){tooltip=dom.createElement(\"div\"),tooltip.className=\"ace_gutter-tooltip\",tooltip.style.display=\"none\",editor.container.appendChild(tooltip)}function showTooltip(){tooltip||createTooltip();var row=mouseEvent.getDocumentPosition().row,annotation=gutter.$annotations[row];if(!annotation)return hideTooltip();var maxRow=editor.session.getLength();if(row==maxRow){var screenRow=editor.renderer.pixelToScreenCoordinates(0,mouseEvent.y).row,pos=mouseEvent.$pos;if(screenRow>editor.session.documentToScreenRow(pos.row,pos.column))return hideTooltip()}tooltipAnnotation!=annotation&&(tooltipAnnotation=annotation.text.join(\"\u003Cbr/>\"),tooltip.style.display=\"block\",tooltip.innerHTML=tooltipAnnotation,editor.on(\"mousewheel\",hideTooltip),moveTooltip(mouseEvent))}function hideTooltip(){tooltipTimeout&&(tooltipTimeout=clearTimeout(tooltipTimeout)),tooltipAnnotation&&(tooltip.style.display=\"none\",tooltipAnnotation=null,editor.removeEventListener(\"mousewheel\",hideTooltip))}function moveTooltip(e){var rect=editor.renderer.$gutter.getBoundingClientRect();tooltip.style.left=e.x+15+\"px\",e.y+3*editor.renderer.lineHeight+15\u003Crect.bottom?(tooltip.style.bottom=\"\",tooltip.style.top=e.y+15+\"px\"):(tooltip.style.top=\"\",tooltip.style.bottom=rect.bottom-e.y+5+\"px\")}var editor=mouseHandler.editor,gutter=editor.renderer.$gutterLayer;mouseHandler.editor.setDefaultHandler(\"guttermousedown\",function(e){if(editor.isFocused()){var gutterRegion=gutter.getRegion(e);if(\"foldWidgets\"!=gutterRegion){var row=e.getDocumentPosition().row,selection=editor.session.selection;if(e.getShiftKey())selection.selectTo(row,0);else{if(2==e.domEvent.detail)return editor.selectAll(),e.preventDefault();mouseHandler.$clickSelection=editor.selection.getLineRange(row)}return mouseHandler.captureMouse(e,\"selectByLines\"),e.preventDefault()}}});var tooltipTimeout,mouseEvent,tooltip,tooltipAnnotation;mouseHandler.editor.setDefaultHandler(\"guttermousemove\",function(e){var target=e.domEvent.target||e.domEvent.srcElement;return dom.hasCssClass(target,\"ace_fold-widget\")?hideTooltip():(tooltipAnnotation&&moveTooltip(e),mouseEvent=e,tooltipTimeout||(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,mouseEvent&&!mouseHandler.isMousePressed?showTooltip():hideTooltip()},50)),void 0)}),event.addListener(editor.renderer.$gutter,\"mouseout\",function(){mouseEvent=null,tooltipAnnotation&&!tooltipTimeout&&(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,hideTooltip()},50))})}var dom=acequire(\"../lib/dom\"),event=acequire(\"../lib/event\");exports.GutterHandler=GutterHandler}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),MouseEvent=exports.MouseEvent=function(domEvent,editor){this.domEvent=domEvent,this.editor=editor,this.x=this.clientX=domEvent.clientX,this.y=this.clientY=domEvent.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){event.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){event.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var editor=this.editor;if(editor.getReadOnly())this.$inSelection=!1;else{var selectionRange=editor.getSelectionRange();if(selectionRange.isEmpty())this.$inSelection=!1;else{var pos=this.getDocumentPosition();this.$inSelection=selectionRange.contains(pos.row,pos.column)}}return this.$inSelection},this.getButton=function(){return event.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=useragent.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(MouseEvent.prototype)}),ace.define(\"ace/mouse/dragdrop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"../lib/event\"),DragdropHandler=function(mouseHandler){function addDragMarker(){range=editor.selection.toOrientedRange(),dragSelectionMarker=editor.session.addMarker(range,\"ace_selection\",editor.getSelectionStyle()),editor.clearSelection(),clearInterval(timerId),timerId=setInterval(onDragInterval,20),counter=0,event.addListener(document,\"mousemove\",onMouseMove)}function clearDragMarker(){clearInterval(timerId),editor.session.removeMarker(dragSelectionMarker),dragSelectionMarker=null,editor.selection.fromOrientedRange(range),counter=0,event.removeListener(document,\"mousemove\",onMouseMove)}function onMouseMove(){null==onMouseMoveTimer&&(onMouseMoveTimer=setTimeout(function(){null!=onMouseMoveTimer&&dragSelectionMarker&&clearDragMarker()},20))}var dragSelectionMarker,x,y,timerId,range,dragCursor,editor=mouseHandler.editor,counter=0,mouseTarget=editor.container;event.addListener(mouseTarget,\"dragenter\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return dragSelectionMarker||addDragMarker(),counter++,event.preventDefault(e)}}),event.addListener(mouseTarget,\"dragover\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return null!==onMouseMoveTimer&&(onMouseMoveTimer=null),x=e.clientX,y=e.clientY,event.preventDefault(e)}});var onDragInterval=function(){dragCursor=editor.renderer.screenToTextCoordinates(x,y),editor.moveCursorToPosition(dragCursor),editor.renderer.scrollCursorIntoView()};event.addListener(mouseTarget,\"dragleave\",function(e){return counter--,0>=counter&&dragSelectionMarker?(clearDragMarker(),event.preventDefault(e)):void 0}),event.addListener(mouseTarget,\"drop\",function(e){return dragSelectionMarker?(range.end=editor.session.insert(dragCursor,e.dataTransfer.getData(\"Text\")),range.start=dragCursor,clearDragMarker(),editor.focus(),event.preventDefault(e)):void 0});var onMouseMoveTimer=null};exports.DragdropHandler=DragdropHandler}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\"],function(acequire,exports,module){\"no use strict\";\nfunction deHyphenate(str){return str.replace(/-(.)/g,function(m,m1){return m1.toUpperCase()})}var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),net=acequire(\"./lib/net\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,global=function(){return this}(),options={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};exports.get=function(key){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);return options[key]},exports.set=function(key,value){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);options[key]=value},exports.all=function(){return lang.copyObject(options)},oop.implement(exports,EventEmitter),exports.moduleUrl=function(name,component){if(options.$moduleUrls[name])return options.$moduleUrls[name];var parts=name.split(\"/\");component=component||parts[parts.length-2]||\"\";var base=parts[parts.length-1].replace(component,\"\").replace(/(^[\\-_])|([\\-_]$)/,\"\");!base&&parts.length>1&&(base=parts[parts.length-2]);var path=options[component+\"Path\"];return null==path&&(path=options.basePath),path&&\"/\"!=path.slice(-1)&&(path+=\"/\"),path+component+\"-\"+base+this.get(\"suffix\")},exports.setModuleUrl=function(name,subst){return options.$moduleUrls[name]=subst},exports.$loading={},exports.loadModule=function(moduleName,onLoad){var module,moduleType;Array.isArray(moduleName)&&(moduleType=moduleName[0],moduleName=moduleName[1]);try{module=acequire(moduleName)}catch(e){}if(module&&!exports.$loading[moduleName])return onLoad&&onLoad(module);if(exports.$loading[moduleName]||(exports.$loading[moduleName]=[]),exports.$loading[moduleName].push(onLoad),!(exports.$loading[moduleName].length>1)){var afterLoad=function(){acequire([moduleName],function(module){exports._emit(\"load.module\",{name:moduleName,module:module});var listeners=exports.$loading[moduleName];exports.$loading[moduleName]=null,listeners.forEach(function(onLoad){onLoad&&onLoad(module)})})};return exports.get(\"packaged\")?(net.loadScript(exports.moduleUrl(moduleName,moduleType),afterLoad),void 0):afterLoad()}},exports.init=function(){if(options.packaged=acequire.packaged||module.packaged||global.define&&define.packaged,!global.document)return\"\";for(var scriptOptions={},scriptUrl=\"\",scripts=document.getElementsByTagName(\"script\"),i=0;scripts.length>i;i++){var script=scripts[i],src=script.src||script.getAttribute(\"src\");if(src){for(var attributes=script.attributes,j=0,l=attributes.length;l>j;j++){var attr=attributes[j];0===attr.name.indexOf(\"data-ace-\")&&(scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/,\"\"))]=attr.value)}var m=src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);m&&(scriptUrl=m[1])}}scriptUrl&&(scriptOptions.base=scriptOptions.base||scriptUrl,scriptOptions.packaged=!0),scriptOptions.basePath=scriptOptions.base,scriptOptions.workerPath=scriptOptions.workerPath||scriptOptions.base,scriptOptions.modePath=scriptOptions.modePath||scriptOptions.base,scriptOptions.themePath=scriptOptions.themePath||scriptOptions.base,delete scriptOptions.base;for(var key in scriptOptions)scriptOptions[key]!==void 0&&exports.set(key,scriptOptions[key])};var optionsProvider={setOptions:function(optList){Object.keys(optList).forEach(function(key){this.setOption(key,optList[key])},this)},getOptions:function(a){var b={};return Object.keys(a).forEach(function(key){b[key]=this.getOption(key)},this),b},setOption:function(name,value){if(this[\"$\"+name]!==value){var opt=this.$options[name];if(!opt)return void 0;if(opt.forwardTo)return this[opt.forwardTo]&&this[opt.forwardTo].setOption(name,value);opt.handlesSet||(this[\"$\"+name]=value),opt&&opt.set&&opt.set.call(this,value)}},getOption:function(name){var opt=this.$options[name];return opt?opt.forwardTo?this[opt.forwardTo]&&this[opt.forwardTo].getOption(name):opt&&opt.get?opt.get.call(this):this[\"$\"+name]:void 0}},defaultOptions={};exports.defineOptions=function(obj,path,options){return obj.$options||(defaultOptions[path]=obj.$options={}),Object.keys(options).forEach(function(key){var opt=options[key];\"string\"==typeof opt&&(opt={forwardTo:opt}),opt.name||(opt.name=key),obj.$options[opt.name]=opt,\"initialValue\"in opt&&(obj[\"$\"+opt.name]=opt.initialValue)}),oop.implement(obj,optionsProvider),this},exports.resetOptions=function(obj){Object.keys(obj.$options).forEach(function(key){var opt=obj.$options[key];\"value\"in opt&&obj.setOption(key,opt.value)})},exports.setDefaultValue=function(path,name,value){var opts=defaultOptions[path]||(defaultOptions[path]={});opts[name]&&(opts.forwardTo?exports.setDefaultValue(opts.forwardTo,name,value):opts[name].value=value)},exports.setDefaultValues=function(path,optionHash){Object.keys(optionHash).forEach(function(key){exports.setDefaultValue(path,key,optionHash[key])})}}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"./dom\");exports.get=function(url,callback){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,!0),xhr.onreadystatechange=function(){4===xhr.readyState&&callback(xhr.responseText)},xhr.send(null)},exports.loadScript=function(path,callback){var head=dom.getDocumentHead(),s=document.createElement(\"script\");s.src=path,head.appendChild(s),s.onload=s.onreadystatechange=function(_,isAbort){(isAbort||!s.readyState||\"loaded\"==s.readyState||\"complete\"==s.readyState)&&(s=s.onload=s.onreadystatechange=null,isAbort||callback())}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for '\"+eventName+\"' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function FoldHandler(editor){editor.on(\"click\",function(e){var position=e.getDocumentPosition(),session=editor.session,fold=session.getFoldAt(position.row,position.column,1);fold&&(e.getAccelKey()?session.removeFold(fold):session.expandFold(fold),e.stop())}),editor.on(\"gutterclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session;session.foldWidgets&&session.foldWidgets[row]&&editor.session.onFoldWidgetClick(row,e),editor.isFocused()||editor.focus(),e.stop()}}),editor.on(\"gutterdblclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session,data=session.getParentFoldRangeData(row,!0),range=data.range||data.firstRange;if(range){var row=range.start.row,fold=session.getFoldAt(row,session.getLine(row).length,1);fold?session.removeFold(fold):(session.addFold(\"...\",range),editor.renderer.scrollCursorIntoView({row:range.start.row,column:0}))}e.stop()}})}exports.FoldHandler=FoldHandler}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(acequire,exports){var keyUtil=acequire(\"../lib/keys\"),event=acequire(\"../lib/event\"),KeyBinding=function(editor){this.$editor=editor,this.$data={},this.$handlers=[],this.setDefaultHandler(editor.commands)};(function(){this.setDefaultHandler=function(kb){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=kb,this.addKeyboardHandler(kb,0),this.$data={editor:this.$editor}},this.setKeyboardHandler=function(kb){var h=this.$handlers;if(h[h.length-1]!=kb){for(;h[h.length-1]&&h[h.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(h[h.length-1]);this.addKeyboardHandler(kb,1)}},this.addKeyboardHandler=function(kb,pos){if(kb){var i=this.$handlers.indexOf(kb);-1!=i&&this.$handlers.splice(i,1),void 0==pos?this.$handlers.push(kb):this.$handlers.splice(pos,0,kb),-1==i&&kb.attach&&kb.attach(this.$editor)}},this.removeKeyboardHandler=function(kb){var i=this.$handlers.indexOf(kb);return-1==i?!1:(this.$handlers.splice(i,1),kb.detach&&kb.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.$callKeyboardHandlers=function(hashId,keyString,keyCode,e){for(var toExecute,success=!1,commands=this.$editor.commands,i=this.$handlers.length;i--&&(toExecute=this.$handlers[i].handleKeyboard(this.$data,hashId,keyString,keyCode,e),!(toExecute&&toExecute.command&&(success=\"null\"==toExecute.command?1!=toExecute.passEvent:commands.exec(toExecute.command,this.$editor,toExecute.args,e),success&&e&&-1!=hashId&&event.stopEvent(e),success))););return success},this.onCommandKey=function(e,hashId,keyCode){var keyString=keyUtil.keyCodeToString(keyCode);this.$callKeyboardHandlers(hashId,keyString,keyCode,e)},this.onTextInput=function(text){var success=this.$callKeyboardHandlers(-1,text);success||this.$editor.commands.exec(\"insertstring\",this.$editor,text)}}).call(KeyBinding.prototype),exports.KeyBinding=KeyBinding}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),config=acequire(\"./config\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Selection=acequire(\"./selection\").Selection,TextMode=acequire(\"./mode/text\").Mode,Range=acequire(\"./range\").Range,Document=acequire(\"./document\").Document,BackgroundTokenizer=acequire(\"./background_tokenizer\").BackgroundTokenizer,SearchHighlight=acequire(\"./search_highlight\").SearchHighlight,EditSession=function(text,mode){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),\"object\"==typeof text&&text.getLine||(text=new Document(text)),this.setDocument(text),this.selection=new Selection(this),this.setMode(mode),config.resetOptions(this),config._emit(\"session\",this)};(function(){function isFullWidth(c){return 4352>c?!1:c>=4352&&4447>=c||c>=4515&&4519>=c||c>=4602&&4607>=c||c>=9001&&9002>=c||c>=11904&&11929>=c||c>=11931&&12019>=c||c>=12032&&12245>=c||c>=12272&&12283>=c||c>=12288&&12350>=c||c>=12353&&12438>=c||c>=12441&&12543>=c||c>=12549&&12589>=c||c>=12593&&12686>=c||c>=12688&&12730>=c||c>=12736&&12771>=c||c>=12784&&12830>=c||c>=12832&&12871>=c||c>=12880&&13054>=c||c>=13056&&19903>=c||c>=19968&&42124>=c||c>=42128&&42182>=c||c>=43360&&43388>=c||c>=44032&&55203>=c||c>=55216&&55238>=c||c>=55243&&55291>=c||c>=63744&&64255>=c||c>=65040&&65049>=c||c>=65072&&65106>=c||c>=65108&&65126>=c||c>=65128&&65131>=c||c>=65281&&65376>=c||c>=65504&&65510>=c}oop.implement(this,EventEmitter),this.setDocument=function(doc){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=doc,doc.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(docRow){if(!docRow)return this.$docRowCache=[],this.$screenRowCache=[],void 0;var l=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,docRow)+1;l>i&&(this.$docRowCache.splice(i,l),this.$screenRowCache.splice(i,l))},this.$getRowCacheIndex=function(cacheArray,val){for(var low=0,hi=cacheArray.length-1;hi>=low;){var mid=low+hi>>1,c=cacheArray[mid];if(val>c)low=mid+1;else{if(!(c>val))return mid;hi=mid-1}}return low-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var fold=e.data;this.$resetRowCache(fold.start.row)},this.onChange=function(e){var delta=e.data;this.$modified=!0,this.$resetRowCache(delta.range.start.row);var removedFolds=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||delta.ignore||(this.$deltasDoc.push(delta),removedFolds&&0!=removedFolds.length&&this.$deltasFold.push({action:\"removeFolds\",folds:removedFolds}),this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(delta),this._emit(\"change\",e)},this.setValue=function(text){this.doc.setValue(text),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(row){return this.bgTokenizer.getState(row)},this.getTokens=function(row){return this.bgTokenizer.getTokens(row)},this.getTokenAt=function(row,column){var token,tokens=this.bgTokenizer.getTokens(row),c=0;if(null==column)i=tokens.length-1,c=this.getLine(row).length;else for(var i=0;tokens.length>i&&(c+=tokens[i].value.length,!(c>=column));i++);return(token=tokens[i])?(token.index=i,token.start=c-token.value.length,token):null},this.setUndoManager=function(undoManager){if(this.$undoManager=undoManager,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),undoManager){var self=this;this.$syncInformUndoManager=function(){self.$informUndoManager.cancel(),self.$deltasFold.length&&(self.$deltas.push({group:\"fold\",deltas:self.$deltasFold}),self.$deltasFold=[]),self.$deltasDoc.length&&(self.$deltas.push({group:\"doc\",deltas:self.$deltasDoc}),self.$deltasDoc=[]),self.$deltas.length>0&&undoManager.execute({action:\"aceupdate\",args:[self.$deltas,self]}),self.$deltas=[]},this.$informUndoManager=lang.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?lang.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(val){this.setOption(\"useSoftTabs\",val)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.setTabSize=function(tabSize){this.setOption(\"tabSize\",tabSize)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(position){return this.$useSoftTabs&&0==position.column%this.$tabSize},this.$overwrite=!1,this.setOverwrite=function(overwrite){this.setOption(\"overwrite\",overwrite)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(row,className){this.$decorations[row]||(this.$decorations[row]=\"\"),this.$decorations[row]+=\" \"+className,this._emit(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(row,className){this.$decorations[row]=(this.$decorations[row]||\"\").replace(\" \"+className,\"\"),this._emit(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(rows){this.$breakpoints=[];for(var i=0;rows.length>i;i++)this.$breakpoints[rows[i]]=\"ace_breakpoint\";this._emit(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._emit(\"changeBreakpoint\",{})},this.setBreakpoint=function(row,className){void 0===className&&(className=\"ace_breakpoint\"),className?this.$breakpoints[row]=className:delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.clearBreakpoint=function(row){delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.addMarker=function(range,clazz,type,inFront){var id=this.$markerId++,marker={range:range,type:type||\"line\",renderer:\"function\"==typeof type?type:null,clazz:clazz,inFront:!!inFront,id:id};return inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),id},this.addDynamicMarker=function(marker,inFront){if(marker.update){var id=this.$markerId++;return marker.id=id,marker.inFront=!!inFront,inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),marker}},this.removeMarker=function(markerId){var marker=this.$frontMarkers[markerId]||this.$backMarkers[markerId];if(marker){var markers=marker.inFront?this.$frontMarkers:this.$backMarkers;marker&&(delete markers[markerId],this._emit(marker.inFront?\"changeFrontMarker\":\"changeBackMarker\"))}},this.getMarkers=function(inFront){return inFront?this.$frontMarkers:this.$backMarkers},this.highlight=function(re){if(!this.$searchHighlight){var highlight=new SearchHighlight(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(highlight)}this.$searchHighlight.setRegexp(re)},this.highlightLines=function(startRow,endRow,clazz,inFront){\"number\"!=typeof endRow&&(clazz=endRow,endRow=startRow),clazz||(clazz=\"ace_step\");var range=new Range(startRow,0,endRow,1/0);return range.id=this.addMarker(range,clazz,\"fullLine\",inFront),range},this.setAnnotations=function(annotations){this.$annotations=annotations,this._emit(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r?\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getWordRange=function(row,column){var line=this.getLine(row),inToken=!1;if(column>0&&(inToken=!!line.charAt(column-1).match(this.tokenRe)),inToken||(inToken=!!line.charAt(column).match(this.tokenRe)),inToken)var re=this.tokenRe;else if(/^\\s+$/.test(line.slice(column-1,column+1)))var re=/\\s/;else var re=this.nonTokenRe;var start=column;if(start>0){do start--;while(start>=0&&line.charAt(start).match(re));start++}for(var end=column;line.length>end&&line.charAt(end).match(re);)end++;return new Range(row,start,row,end)},this.getAWordRange=function(row,column){for(var wordRange=this.getWordRange(row,column),line=this.getLine(wordRange.end.row);line.charAt(wordRange.end.column).match(/[ \\t]/);)wordRange.end.column+=1;return wordRange},this.setNewLineMode=function(newLineMode){this.doc.setNewLineMode(newLineMode)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(useWorker){this.setOption(\"useWorker\",useWorker)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var rows=e.data;this.bgTokenizer.start(rows.first),this._emit(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(mode){if(mode&&\"object\"==typeof mode){if(mode.getTokenizer)return this.$onChangeMode(mode);var options=mode,path=options.path}else path=mode||\"ace/mode/text\";return this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new TextMode),this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(this.$modeId=path,config.loadModule([\"mode\",path],function(m){return this.$modeId===path?this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(m&&m.Mode&&(m=new m.Mode(options),options||(this.$modes[path]=m,m.$id=path),this.$onChangeMode(m)),void 0):void 0}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0),void 0)},this.$onChangeMode=function(mode,$isPlaceholder){if(this.$mode!==mode){this.$mode=mode,this.$stopWorker(),this.$useWorker&&this.$startWorker();var tokenizer=mode.getTokenizer();if(void 0!==tokenizer.addEventListener){var onReloadTokenizer=this.onReloadTokenizer.bind(this);tokenizer.addEventListener(\"update\",onReloadTokenizer)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(tokenizer);else{this.bgTokenizer=new BackgroundTokenizer(tokenizer);var _self=this;this.bgTokenizer.addEventListener(\"update\",function(e){_self._emit(\"tokenizerUpdate\",e)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=mode.tokenRe,this.nonTokenRe=mode.nonTokenRe,$isPlaceholder||(this.$modeId=mode.$id,this.$setFolding(mode.foldingRules),this._emit(\"changeMode\"),this.bgTokenizer.start(0))}},this.$stopWorker=function(){this.$worker&&this.$worker.terminate(),this.$worker=null},this.$startWorker=function(){if(\"undefined\"==typeof Worker||acequire.noWorker)this.$worker=null;else try{this.$worker=this.$mode.createWorker(this)}catch(e){console.log(\"Could not load worker\"),console.log(e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(scrollTop){scrollTop=Math.round(Math.max(0,scrollTop)),this.$scrollTop===scrollTop||isNaN(scrollTop)||(this.$scrollTop=scrollTop,this._signal(\"changeScrollTop\",scrollTop))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(scrollLeft){scrollLeft=Math.round(Math.max(0,scrollLeft)),this.$scrollLeft===scrollLeft||isNaN(scrollLeft)||(this.$scrollLeft=scrollLeft,this._signal(\"changeScrollLeft\",scrollLeft))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.screenWidth},this.$computeWidth=function(force){if(this.$modified||force){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var lines=this.doc.getAllLines(),cache=this.$rowLengthCache,longestScreenLine=0,foldIndex=0,foldLine=this.$foldData[foldIndex],foldStart=foldLine?foldLine.start.row:1/0,len=lines.length,i=0;len>i;i++){if(i>foldStart){if(i=foldLine.end.row+1,i>=len)break;foldLine=this.$foldData[foldIndex++],foldStart=foldLine?foldLine.start.row:1/0}null==cache[i]&&(cache[i]=this.$getStringScreenWidth(lines[i])[0]),cache[i]>longestScreenLine&&(longestScreenLine=cache[i])}this.screenWidth=longestScreenLine}},this.getLine=function(row){return this.doc.getLine(row)},this.getLines=function(firstRow,lastRow){return this.doc.getLines(firstRow,lastRow)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(range){return this.doc.getTextRange(range||this.selection.getRange())},this.insert=function(position,text){return this.doc.insert(position,text)},this.remove=function(range){return this.doc.remove(range)},this.undoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=deltas.length-1;-1!=i;i--){var delta=deltas[i];\"doc\"==delta.group?(this.doc.revertDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!0,lastUndoRange)):delta.deltas.forEach(function(foldDelta){this.addFolds(foldDelta.folds)},this)}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.redoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=0;deltas.length>i;i++){var delta=deltas[i];\"doc\"==delta.group&&(this.doc.applyDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!1,lastUndoRange))}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.setUndoSelect=function(enable){this.$undoSelect=enable},this.$getUndoSelection=function(deltas,isUndo,lastUndoRange){function isInsert(delta){var insert=\"insertText\"===delta.action||\"insertLines\"===delta.action;return isUndo?!insert:insert}var range,point,delta=deltas[0],lastDeltaIsInsert=!1;isInsert(delta)?(range=delta.range.clone(),lastDeltaIsInsert=!0):(range=Range.fromPoints(delta.range.start,delta.range.start),lastDeltaIsInsert=!1);for(var i=1;deltas.length>i;i++)delta=deltas[i],isInsert(delta)?(point=delta.range.start,-1==range.compare(point.row,point.column)&&range.setStart(delta.range.start),point=delta.range.end,1==range.compare(point.row,point.column)&&range.setEnd(delta.range.end),lastDeltaIsInsert=!0):(point=delta.range.start,-1==range.compare(point.row,point.column)&&(range=Range.fromPoints(delta.range.start,delta.range.start)),lastDeltaIsInsert=!1);if(null!=lastUndoRange){var cmp=lastUndoRange.compareRange(range);1==cmp?range.setStart(lastUndoRange.start):-1==cmp&&range.setEnd(lastUndoRange.end)}return range},this.replace=function(range,text){return this.doc.replace(range,text)},this.moveText=function(fromRange,toPosition,copy){var text=this.getTextRange(fromRange),folds=this.getFoldsInRange(fromRange),toRange=Range.fromPoints(toPosition,toPosition);if(!copy){this.remove(fromRange);var rowDiff=fromRange.start.row-fromRange.end.row,collDiff=rowDiff?-fromRange.end.column:fromRange.start.column-fromRange.end.column;collDiff&&(toRange.start.row==fromRange.end.row&&toRange.start.column>fromRange.end.column&&(toRange.start.column+=collDiff),toRange.end.row==fromRange.end.row&&toRange.end.column>fromRange.end.column&&(toRange.end.column+=collDiff)),rowDiff&&toRange.start.row>=fromRange.end.row&&(toRange.start.row+=rowDiff,toRange.end.row+=rowDiff)}if(this.insert(toRange.start,text),folds.length){var oldStart=fromRange.start,newStart=toRange.start,rowDiff=newStart.row-oldStart.row,collDiff=newStart.column-oldStart.column;this.addFolds(folds.map(function(x){return x=x.clone(),x.start.row==oldStart.row&&(x.start.column+=collDiff),x.end.row==oldStart.row&&(x.end.column+=collDiff),x.start.row+=rowDiff,x.end.row+=rowDiff,x}))}return toRange},this.indentRows=function(startRow,endRow,indentString){indentString=indentString.replace(/\\t/g,this.getTabString());for(var row=startRow;endRow>=row;row++)this.insert({row:row,column:0},indentString)},this.outdentRows=function(range){for(var rowRange=range.collapseRows(),deleteRange=new Range(0,0,0,0),size=this.getTabSize(),i=rowRange.start.row;rowRange.end.row>=i;++i){var line=this.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i;for(var j=0;size>j&&\" \"==line.charAt(j);++j);size>j&&\"\t\"==line.charAt(j)?(deleteRange.start.column=j,deleteRange.end.column=j+1):(deleteRange.start.column=0,deleteRange.end.column=j),this.remove(deleteRange)}},this.$moveLines=function(firstRow,lastRow,dir){if(firstRow=this.getRowFoldStart(firstRow),lastRow=this.getRowFoldEnd(lastRow),0>dir){var row=this.getRowFoldStart(firstRow+dir);if(0>row)return 0;var diff=row-firstRow}else if(dir>0){var row=this.getRowFoldEnd(lastRow+dir);if(row>this.doc.getLength()-1)return 0;var diff=row-lastRow}else{firstRow=this.$clipRowToDocument(firstRow),lastRow=this.$clipRowToDocument(lastRow);var diff=lastRow-firstRow+1}var range=new Range(firstRow,0,lastRow,Number.MAX_VALUE),folds=this.getFoldsInRange(range).map(function(x){return x=x.clone(),x.start.row+=diff,x.end.row+=diff,x}),lines=0==dir?this.doc.getLines(firstRow,lastRow):this.doc.removeLines(firstRow,lastRow);return this.doc.insertLines(firstRow+diff,lines),folds.length&&this.addFolds(folds),diff},this.moveLinesUp=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,-1)},this.moveLinesDown=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,1)},this.duplicateLines=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,0)},this.$clipRowToDocument=function(row){return Math.max(0,Math.min(row,this.doc.getLength()-1))},this.$clipColumnToRow=function(row,column){return 0>column?0:Math.min(this.doc.getLine(row).length,column)},this.$clipPositionToDocument=function(row,column){if(column=Math.max(0,column),0>row)row=0,column=0;else{var len=this.doc.getLength();row>=len?(row=len-1,column=this.doc.getLine(len-1).length):column=Math.min(this.doc.getLine(row).length,column)}return{row:row,column:column}},this.$clipRangeToDocument=function(range){0>range.start.row?(range.start.row=0,range.start.column=0):range.start.column=this.$clipColumnToRow(range.start.row,range.start.column);var len=this.doc.getLength()-1;return range.end.row>len?(range.end.row=len,range.end.column=this.doc.getLine(len).length):range.end.column=this.$clipColumnToRow(range.end.row,range.end.column),range},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(useWrapMode){if(useWrapMode!=this.$useWrapMode){if(this.$useWrapMode=useWrapMode,this.$modified=!0,this.$resetRowCache(0),useWrapMode){var len=this.getLength();this.$wrapData=[];for(var i=0;len>i;i++)this.$wrapData.push([]);this.$updateWrapData(0,len-1)}this._emit(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(min,max){(this.$wrapLimitRange.min!==min||this.$wrapLimitRange.max!==max)&&(this.$wrapLimitRange.min=min,this.$wrapLimitRange.max=max,this.$modified=!0,this._emit(\"changeWrapMode\"))},this.adjustWrapLimit=function(desiredLimit,$printMargin){var limits=this.$wrapLimitRange;0>limits.max&&(limits={min:$printMargin,max:$printMargin});var wrapLimit=this.$constrainWrapLimit(desiredLimit,limits.min,limits.max);return wrapLimit!=this.$wrapLimit&&wrapLimit>1?(this.$wrapLimit=wrapLimit,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(wrapLimit,min,max){return min&&(wrapLimit=Math.max(min,wrapLimit)),max&&(wrapLimit=Math.min(max,wrapLimit)),wrapLimit},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var len,useWrapMode=this.$useWrapMode,action=e.data.action,firstRow=e.data.range.start.row,lastRow=e.data.range.end.row,start=e.data.range.start,end=e.data.range.end,removedFolds=null;if(-1!=action.indexOf(\"Lines\")?(lastRow=\"insertLines\"==action?firstRow+e.data.lines.length:firstRow,len=e.data.lines?e.data.lines.length:lastRow-firstRow):len=lastRow-firstRow,this.$updating=!0,0!=len)if(-1!=action.indexOf(\"remove\")){this[useWrapMode?\"$wrapData\":\"$rowLengthCache\"].splice(firstRow,len);var foldLines=this.$foldData;removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds);var foldLine=this.getFoldLine(end.row),idx=0;if(foldLine){foldLine.addRemoveChars(end.row,end.column,start.column-end.column),foldLine.shiftRow(-len);var foldLineBefore=this.getFoldLine(firstRow);foldLineBefore&&foldLineBefore!==foldLine&&(foldLineBefore.merge(foldLine),foldLine=foldLineBefore),idx=foldLines.indexOf(foldLine)+1\n}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=end.row&&foldLine.shiftRow(-len)}lastRow=firstRow}else{var args;if(useWrapMode){args=[firstRow,0];for(var i=0;len>i;i++)args.push([]);this.$wrapData.splice.apply(this.$wrapData,args)}else args=Array(len),args.unshift(firstRow,0),this.$rowLengthCache.splice.apply(this.$rowLengthCache,args);var foldLines=this.$foldData,foldLine=this.getFoldLine(firstRow),idx=0;if(foldLine){var cmp=foldLine.range.compareInside(start.row,start.column);0==cmp?(foldLine=foldLine.split(start.row,start.column),foldLine.shiftRow(len),foldLine.addRemoveChars(lastRow,0,end.column-start.column)):-1==cmp&&(foldLine.addRemoveChars(firstRow,0,end.column-start.column),foldLine.shiftRow(len)),idx=foldLines.indexOf(foldLine)+1}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=firstRow&&foldLine.shiftRow(len)}}else{len=Math.abs(e.data.range.start.column-e.data.range.end.column),-1!=action.indexOf(\"remove\")&&(removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds),len=-len);var foldLine=this.getFoldLine(firstRow);foldLine&&foldLine.addRemoveChars(firstRow,start.column,len)}return useWrapMode&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,useWrapMode?this.$updateWrapData(firstRow,lastRow):this.$updateRowLengthCache(firstRow,lastRow),removedFolds},this.$updateRowLengthCache=function(firstRow,lastRow){this.$rowLengthCache[firstRow]=null,this.$rowLengthCache[lastRow]=null},this.$updateWrapData=function(firstRow,lastRow){var tokens,foldLine,lines=this.doc.getAllLines(),tabSize=this.getTabSize(),wrapData=this.$wrapData,wrapLimit=this.$wrapLimit,row=firstRow;for(lastRow=Math.min(lastRow,lines.length-1);lastRow>=row;)if(foldLine=this.getFoldLine(row,foldLine)){for(tokens=[],foldLine.walk(function(placeholder,row,column,lastColumn){var walkTokens;if(null!=placeholder){walkTokens=this.$getDisplayTokens(placeholder,tokens.length),walkTokens[0]=PLACEHOLDER_START;for(var i=1;walkTokens.length>i;i++)walkTokens[i]=PLACEHOLDER_BODY}else walkTokens=this.$getDisplayTokens(lines[row].substring(lastColumn,column),tokens.length);tokens=tokens.concat(walkTokens)}.bind(this),foldLine.end.row,lines[foldLine.end.row].length+1);0!=tokens.length&&tokens[tokens.length-1]>=SPACE;)tokens.pop();wrapData[foldLine.start.row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row=foldLine.end.row+1}else tokens=this.$getDisplayTokens(lang.stringTrimRight(lines[row])),wrapData[row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row++};var CHAR=1,CHAR_EXT=2,PLACEHOLDER_START=3,PLACEHOLDER_BODY=4,PUNCTUATION=9,SPACE=10,TAB=11,TAB_SPACE=12;this.$computeWrapSplits=function(tokens,wrapLimit){function addSplit(screenPos){var displayed=tokens.slice(lastSplit,screenPos),len=displayed.length;displayed.join(\"\").replace(/12/g,function(){len-=1}).replace(/2/g,function(){len-=1}),lastDocSplit+=len,splits.push(lastDocSplit),lastSplit=screenPos}if(0==tokens.length)return[];for(var splits=[],displayLength=tokens.length,lastSplit=0,lastDocSplit=0;displayLength-lastSplit>wrapLimit;){var split=lastSplit+wrapLimit;if(tokens[split]>=SPACE){for(;tokens[split]>=SPACE;)split++;addSplit(split)}else if(tokens[split]!=PLACEHOLDER_START&&tokens[split]!=PLACEHOLDER_BODY){for(var minSplit=Math.max(split-10,lastSplit-1);split>minSplit&&PLACEHOLDER_START>tokens[split];)split--;for(;split>minSplit&&tokens[split]==PUNCTUATION;)split--;split>minSplit?addSplit(++split):(split=lastSplit+wrapLimit,addSplit(split))}else{for(split;split!=lastSplit-1&&tokens[split]!=PLACEHOLDER_START;split--);if(split>lastSplit){addSplit(split);continue}for(split=lastSplit+wrapLimit;tokens.length>split&&tokens[split]==PLACEHOLDER_BODY;split++);if(split==tokens.length)break;addSplit(split)}}return splits},this.$getDisplayTokens=function(str,offset){var tabSize,arr=[];offset=offset||0;for(var i=0;str.length>i;i++){var c=str.charCodeAt(i);if(9==c){tabSize=this.getScreenTabSize(arr.length+offset),arr.push(TAB);for(var n=1;tabSize>n;n++)arr.push(TAB_SPACE)}else 32==c?arr.push(SPACE):c>39&&48>c||c>57&&64>c?arr.push(PUNCTUATION):c>=4352&&isFullWidth(c)?arr.push(CHAR,CHAR_EXT):arr.push(CHAR)}return arr},this.$getStringScreenWidth=function(str,maxScreenColumn,screenColumn){if(0==maxScreenColumn)return[0,0];null==maxScreenColumn&&(maxScreenColumn=1/0),screenColumn=screenColumn||0;var c,column;for(column=0;str.length>column&&(c=str.charCodeAt(column),screenColumn+=9==c?this.getScreenTabSize(screenColumn):c>=4352&&isFullWidth(c)?2:1,!(screenColumn>maxScreenColumn));column++);return[screenColumn,column]},this.getRowLength=function(row){return this.$useWrapMode&&this.$wrapData[row]?this.$wrapData[row].length+1:1},this.getScreenLastRowColumn=function(screenRow){var pos=this.screenToDocumentPosition(screenRow,Number.MAX_VALUE);return this.documentToScreenColumn(pos.row,pos.column)},this.getDocumentLastRowColumn=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.getScreenLastRowColumn(screenRow)},this.getDocumentLastRowColumnPosition=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.screenToDocumentPosition(screenRow,Number.MAX_VALUE/10)},this.getRowSplitData=function(row){return this.$useWrapMode?this.$wrapData[row]:void 0},this.getScreenTabSize=function(screenColumn){return this.$tabSize-screenColumn%this.$tabSize},this.screenToDocumentRow=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).row},this.screenToDocumentColumn=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).column},this.screenToDocumentPosition=function(screenRow,screenColumn){if(0>screenRow)return{row:0,column:0};var line,column,docRow=0,docColumn=0,row=0,rowLength=0,rowCache=this.$screenRowCache,i=this.$getRowCacheIndex(rowCache,screenRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],docRow=this.$docRowCache[i],doCache=screenRow>rowCache[l-1];else var doCache=!l;for(var maxRow=this.getLength()-1,foldLine=this.getNextFoldLine(docRow),foldStart=foldLine?foldLine.start.row:1/0;screenRow>=row&&(rowLength=this.getRowLength(docRow),!(row+rowLength-1>=screenRow||docRow>=maxRow));)row+=rowLength,docRow++,docRow>foldStart&&(docRow=foldLine.end.row+1,foldLine=this.getNextFoldLine(docRow,foldLine),foldStart=foldLine?foldLine.start.row:1/0),doCache&&(this.$docRowCache.push(docRow),this.$screenRowCache.push(row));if(foldLine&&docRow>=foldLine.start.row)line=this.getFoldDisplayLine(foldLine),docRow=foldLine.start.row;else{if(screenRow>=row+rowLength||docRow>maxRow)return{row:maxRow,column:this.getLine(maxRow).length};line=this.getLine(docRow),foldLine=null}if(this.$useWrapMode){var splits=this.$wrapData[docRow];splits&&(column=splits[screenRow-row],screenRow>row&&splits.length&&(docColumn=splits[screenRow-row-1]||splits[splits.length-1],line=line.substring(docColumn)))}return docColumn+=this.$getStringScreenWidth(line,screenColumn)[1],this.$useWrapMode&&docColumn>=column&&(docColumn=column-1),foldLine?foldLine.idxToPosition(docColumn):{row:docRow,column:docColumn}},this.documentToScreenPosition=function(docRow,docColumn){if(docColumn===void 0)var pos=this.$clipPositionToDocument(docRow.row,docRow.column);else pos=this.$clipPositionToDocument(docRow,docColumn);docRow=pos.row,docColumn=pos.column;var screenRow=0,foldStartRow=null,fold=null;fold=this.getFoldAt(docRow,docColumn,1),fold&&(docRow=fold.start.row,docColumn=fold.start.column);var rowEnd,row=0,rowCache=this.$docRowCache,i=this.$getRowCacheIndex(rowCache,docRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],screenRow=this.$screenRowCache[i],doCache=docRow>rowCache[l-1];else var doCache=!l;for(var foldLine=this.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;docRow>row;){if(row>=foldStart){if(rowEnd=foldLine.end.row+1,rowEnd>docRow)break;foldLine=this.getNextFoldLine(rowEnd,foldLine),foldStart=foldLine?foldLine.start.row:1/0}else rowEnd=row+1;screenRow+=this.getRowLength(row),row=rowEnd,doCache&&(this.$docRowCache.push(row),this.$screenRowCache.push(screenRow))}var textLine=\"\";if(foldLine&&row>=foldStart?(textLine=this.getFoldDisplayLine(foldLine,docRow,docColumn),foldStartRow=foldLine.start.row):(textLine=this.getLine(docRow).substring(0,docColumn),foldStartRow=docRow),this.$useWrapMode){for(var wrapRow=this.$wrapData[foldStartRow],screenRowOffset=0;textLine.length>=wrapRow[screenRowOffset];)screenRow++,screenRowOffset++;textLine=textLine.substring(wrapRow[screenRowOffset-1]||0,textLine.length)}return{row:screenRow,column:this.$getStringScreenWidth(textLine)[0]}},this.documentToScreenColumn=function(row,docColumn){return this.documentToScreenPosition(row,docColumn).column},this.documentToScreenRow=function(docRow,docColumn){return this.documentToScreenPosition(docRow,docColumn).row},this.getScreenLength=function(){var screenRows=0,fold=null;if(this.$useWrapMode)for(var lastRow=this.$wrapData.length,row=0,i=0,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0;lastRow>row;)screenRows+=this.$wrapData[row].length+1,row++,row>foldStart&&(row=fold.end.row+1,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0);else{screenRows=this.getLength();for(var foldData=this.$foldData,i=0;foldData.length>i;i++)fold=foldData[i],screenRows-=fold.end.row-fold.start.row}return screenRows}}).call(EditSession.prototype),acequire(\"./edit_session/folding\").Folding.call(EditSession.prototype),acequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype),config.defineOptions(EditSession.prototype,\"session\",{wrap:{set:function(value){if(value&&\"off\"!=value?\"free\"==value?value=!0:\"printMargin\"==value?value=-1:\"string\"==typeof value&&(value=parseInt(value,10)||!1):value=!1,this.$wrap!=value){if(value){var col=\"number\"==typeof value?value:null;this.setWrapLimitRange(col,col),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1);this.$wrap=value}},get:function(){return this.getUseWrapMode()?this.getWrapLimitRange().min||\"free\":\"off\"},handlesSet:!0},firstLineNumber:{set:function(){this._emit(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(useWorker){this.$useWorker=useWorker,this.$stopWorker(),useWorker&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(tabSize){isNaN(tabSize)||this.$tabSize===tabSize||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=tabSize,this._emit(\"changeTabSize\"))},initialValue:4,handlesSet:!0},overwrite:{set:function(){this._emit(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(val){this.doc.setNewLineMode(val)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0}}),exports.EditSession=EditSession}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Selection=function(session){this.session=session,this.doc=session.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var self=this;this.lead.on(\"change\",function(e){self._emit(\"changeCursor\"),self.$isEmpty||self._emit(\"changeSelection\"),self.$keepDesiredColumnOnChange||e.old.column==e.value.column||(self.$desiredColumn=null)}),this.selectionAnchor.on(\"change\",function(){self.$isEmpty||self._emit(\"changeSelection\")})};(function(){oop.implement(this,EventEmitter),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(row,column){this.anchor.setPosition(row,column),this.$isEmpty&&(this.$isEmpty=!1,this._emit(\"changeSelection\"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(columns){if(this.$isEmpty)return this.moveCursorTo(this.lead.row,this.lead.column+columns),void 0;var anchor=this.getSelectionAnchor(),lead=this.getSelectionLead(),isBackwards=this.isBackwards();isBackwards&&0===anchor.column||this.setSelectionAnchor(anchor.row,anchor.column+columns),(isBackwards||0!==lead.column)&&this.$moveSelection(function(){this.moveCursorTo(lead.row,lead.column+columns)})},this.isBackwards=function(){var anchor=this.anchor,lead=this.lead;return anchor.row>lead.row||anchor.row==lead.row&&anchor.column>lead.column},this.getRange=function(){var anchor=this.anchor,lead=this.lead;return this.isEmpty()?Range.fromPoints(lead,lead):this.isBackwards()?Range.fromPoints(lead,anchor):Range.fromPoints(anchor,lead)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){var lastRow=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(lastRow,this.doc.getLine(lastRow).length)},this.setRange=this.setSelectionRange=function(range,reverse){reverse?(this.setSelectionAnchor(range.end.row,range.end.column),this.selectTo(range.start.row,range.start.column)):(this.setSelectionAnchor(range.start.row,range.start.column),this.selectTo(range.end.row,range.end.column)),this.$desiredColumn=null},this.$moveSelection=function(mover){var lead=this.lead;this.$isEmpty&&this.setSelectionAnchor(lead.row,lead.column),mover.call(this)},this.selectTo=function(row,column){this.$moveSelection(function(){this.moveCursorTo(row,column)})},this.selectToPosition=function(pos){this.$moveSelection(function(){this.moveCursorToPosition(pos)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(row,column){if(column===void 0){var cursor=row||this.lead;row=cursor.row,column=cursor.column}return this.session.getWordRange(row,column)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var cursor=this.getCursor(),range=this.session.getAWordRange(cursor.row,cursor.column);this.setSelectionRange(range)},this.getLineRange=function(row,excludeLastChar){var rowEnd,rowStart=\"number\"==typeof row?row:this.lead.row,foldLine=this.session.getFoldLine(rowStart);return foldLine?(rowStart=foldLine.start.row,rowEnd=foldLine.end.row):rowEnd=rowStart,excludeLastChar?new Range(rowStart,0,rowEnd,this.session.getLine(rowEnd).length):new Range(rowStart,0,rowEnd+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,-1))this.moveCursorTo(fold.start.row,fold.start.column);else if(0==cursor.column)cursor.row>0&&this.moveCursorTo(cursor.row-1,this.doc.getLine(cursor.row-1).length);else{var tabSize=this.session.getTabSize();this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column-tabSize,cursor.column).split(\" \").length-1==tabSize?this.moveCursorBy(0,-tabSize):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,1))this.moveCursorTo(fold.end.row,fold.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row\u003Cthis.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var tabSize=this.session.getTabSize(),cursor=this.lead;this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column,cursor.column+tabSize).split(\" \").length-1==tabSize?this.moveCursorBy(0,tabSize):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var row=this.lead.row,column=this.lead.column,screenRow=this.session.documentToScreenRow(row,column),firstColumnPosition=this.session.screenToDocumentPosition(screenRow,0),beforeCursor=this.session.getDisplayLine(row,null,firstColumnPosition.row,firstColumnPosition.column),leadingSpace=beforeCursor.match(/^\\s*/);leadingSpace[0].length==column||this.session.$useEmacsStyleLineStart||(firstColumnPosition.column+=leadingSpace[0].length),this.moveCursorToPosition(firstColumnPosition)},this.moveCursorLineEnd=function(){var lead=this.lead,lineEnd=this.session.getDocumentLastRowColumnPosition(lead.row,lead.column);if(this.lead.column==lineEnd.column){var line=this.session.getLine(lineEnd.row);if(lineEnd.column==line.length){var textEnd=line.search(/\\s+$/);textEnd>0&&(lineEnd.column=textEnd)}}this.moveCursorTo(lineEnd.row,lineEnd.column)},this.moveCursorFileEnd=function(){var row=this.doc.getLength()-1,column=this.doc.getLine(row).length;this.moveCursorTo(row,column)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var match,row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var fold=this.session.getFoldAt(row,column,1);return fold?(this.moveCursorTo(fold.end.row,fold.end.column),void 0):((match=this.session.nonTokenRe.exec(rightOfCursor))&&(column+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,rightOfCursor=line.substring(column)),column>=line.length?(this.moveCursorTo(row,line.length),this.moveCursorRight(),this.doc.getLength()-1>row&&this.moveCursorWordRight(),void 0):((match=this.session.tokenRe.exec(rightOfCursor))&&(column+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0))},this.moveCursorLongWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column),void 0;var str=this.session.getFoldStringAt(row,column,-1);null==str&&(str=this.doc.getLine(row).substring(0,column));var match,leftOfCursor=lang.stringReverse(str);return this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,(match=this.session.nonTokenRe.exec(leftOfCursor))&&(column-=this.session.nonTokenRe.lastIndex,leftOfCursor=leftOfCursor.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),0>=column?(this.moveCursorTo(row,0),this.moveCursorLeft(),row>0&&this.moveCursorWordLeft(),void 0):((match=this.session.tokenRe.exec(leftOfCursor))&&(column-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0)},this.$shortWordEndIndex=function(rightOfCursor){var match,ch,index=0,whitespaceRe=/\\s/,tokenRe=this.session.tokenRe;if(tokenRe.lastIndex=0,match=this.session.tokenRe.exec(rightOfCursor))index=this.session.tokenRe.lastIndex;else{for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(1>=index)for(tokenRe.lastIndex=0;(ch=rightOfCursor[index])&&!tokenRe.test(ch);)if(tokenRe.lastIndex=0,index++,whitespaceRe.test(ch)){if(index>2){index--;break}for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(index>2)break}}return tokenRe.lastIndex=0,index},this.moveCursorShortWordRight=function(){var row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column),fold=this.session.getFoldAt(row,column,1);if(fold)return this.moveCursorTo(fold.end.row,fold.end.column);if(column==line.length){var l=this.doc.getLength();do row++,rightOfCursor=this.doc.getLine(row);while(l>row&&/^\\s*$/.test(rightOfCursor));/^\\s+/.test(rightOfCursor)||(rightOfCursor=\"\"),column=0}var index=this.$shortWordEndIndex(rightOfCursor);this.moveCursorTo(row,column+index)},this.moveCursorShortWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column);var line=this.session.getLine(row).substring(0,column);if(0==column){do row--,line=this.doc.getLine(row);while(row>0&&/^\\s*$/.test(line));column=line.length,/\\s+$/.test(line)||(line=\"\")}var leftOfCursor=lang.stringReverse(line),index=this.$shortWordEndIndex(leftOfCursor);return this.moveCursorTo(row,column-index)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(rows,chars){var screenPos=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===chars&&(this.$desiredColumn?screenPos.column=this.$desiredColumn:this.$desiredColumn=screenPos.column);var docPos=this.session.screenToDocumentPosition(screenPos.row+rows,screenPos.column);this.moveCursorTo(docPos.row,docPos.column+chars,0===chars)},this.moveCursorToPosition=function(position){this.moveCursorTo(position.row,position.column)},this.moveCursorTo=function(row,column,keepDesiredColumn){var fold=this.session.getFoldAt(row,column,1);fold&&(row=fold.start.row,column=fold.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(row,column),this.$keepDesiredColumnOnChange=!1,keepDesiredColumn||(this.$desiredColumn=null)},this.moveCursorToScreen=function(row,column,keepDesiredColumn){var pos=this.session.screenToDocumentPosition(row,column);this.moveCursorTo(pos.row,pos.column,keepDesiredColumn)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(range){this.setSelectionRange(range,range.cursor==range.start),this.$desiredColumn=range.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(range){var r=this.getRange();return range?(range.start.column=r.start.column,range.start.row=r.start.row,range.end.column=r.end.column,range.end.row=r.end.row):range=r,range.cursor=this.isBackwards()?range.start:range.end,range.desiredColumn=this.$desiredColumn,range}}).call(Selection.prototype),exports.Selection=Selection}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\"],function(acequire,exports){var Tokenizer=acequire(\"../tokenizer\").Tokenizer,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,Behaviour=acequire(\"./behaviour\").Behaviour,unicode=acequire(\"../unicode\"),lang=acequire(\"../lib/lang\"),Mode=function(){this.$tokenizer=new Tokenizer((new TextHighlightRules).getRules()),this.$behaviour=new Behaviour};(function(){this.tokenRe=RegExp(\"^[\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]+\",\"g\"),this.nonTokenRe=RegExp(\"^(?:[^\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]|s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer},this.toggleCommentLines=function(state,session,startRow,endRow){var regexpStart,lineCommentStart,doc=session.doc;if(!this.lineCommentStart)return!1;Array.isArray(this.lineCommentStart)?(regexpStart=this.lineCommentStart.map(lang.escapeRegExp).join(\"|\"),lineCommentStart=this.lineCommentStart[0]):(regexpStart=lang.escapeRegExp(this.lineCommentStart),lineCommentStart=this.lineCommentStart),regexpStart=RegExp(\"^\\\\s*(?:\"+regexpStart+\") ?\");for(var removeComment=!0,minSpace=1/0,indentations=[],i=startRow;endRow>=i;i++){var line=doc.getLine(i),indent=line.search(/\\S|$/);indentations[i]=indent,minSpace>indent&&(minSpace=indent),removeComment&&!regexpStart.test(line)&&(removeComment=!1)}if(removeComment)for(var i=startRow;endRow>=i;i++){var line=doc.getLine(i),m=line.match(regexpStart);doc.removeInLine(i,indentations[i],m[0].length)}else{lineCommentStart+=\" \";for(var i=startRow;endRow>=i;i++)doc.insertInLine({row:i,column:minSpace},lineCommentStart)}},this.getNextLineIndent=function(state,line){return this.$getIndent(line)},this.checkOutdent=function(){return!1},this.autoOutdent=function(){},this.$getIndent=function(line){return line.match(/^\\s*/)[0]},this.createWorker=function(){return null},this.createModeDelegates=function(mapping){if(this.$embeds){this.$modes={};for(var i=0;this.$embeds.length>i;i++)mapping[this.$embeds[i]]&&(this.$modes[this.$embeds[i]]=new mapping[this.$embeds[i]]);for(var delegations=[\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\"],i=0;delegations.length>i;i++)(function(scope){var functionName=delegations[i],defaultHandler=scope[functionName];scope[delegations[i]]=function(){return this.$delegator(functionName,arguments,defaultHandler)}})(this)}},this.$delegator=function(method,args,defaultHandler){for(var state=args[0],i=0;this.$embeds.length>i;i++)if(this.$modes[this.$embeds[i]]){var split=state.split(this.$embeds[i]);if(!split[0]&&split[1]){args[0]=split[1];var mode=this.$modes[this.$embeds[i]];return mode[method].apply(mode,args)}}var ret=defaultHandler.apply(this,args);return defaultHandler?ret:void 0},this.transformAction=function(state,action){if(this.$behaviour){var behaviours=this.$behaviour.getBehaviours();for(var key in behaviours)if(behaviours[key][action]){var ret=behaviours[key][action].apply(this,arguments);if(ret)return ret}}}}).call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var MAX_TOKEN_COUNT=1e3,Tokenizer=function(rules){this.states=rules,this.regExps={},this.matchMappings={};for(var key in this.states){for(var state=this.states[key],ruleRegExps=[],matchTotal=0,mapping=this.matchMappings[key]={defaultToken:\"text\"},flag=\"g\",i=0;state.length>i;i++){var rule=state[i];if(rule.defaultToken&&(mapping.defaultToken=rule.defaultToken),rule.caseInsensitive&&(flag=\"gi\"),null!=rule.regex){rule.regex instanceof RegExp&&(rule.regex=(\"\"+rule.regex).slice(1,-1));var adjustedregex=rule.regex,matchcount=RegExp(\"(?:(\"+adjustedregex+\")|(.))\").exec(\"a\").length-2;if(Array.isArray(rule.token))if(1==rule.token.length||1==matchcount)rule.token=rule.token[0];else{if(matchcount-1!=rule.token.length)throw Error(\"number of classes and regexp groups in '\"+rule.token+\"'\\n'\"+rule.regex+\"' doesn't match\\n\"+(matchcount-1)+\"!=\"+rule.token.length);rule.tokenArray=rule.token,rule.onMatch=this.$arrayTokens}else\"function\"!=typeof rule.token||rule.onMatch||(rule.onMatch=matchcount>1?this.$applyToken:rule.token);matchcount>1&&(/\\\\\\d/.test(rule.regex)?adjustedregex=rule.regex.replace(/\\\\([0-9]+)/g,function(match,digit){return\"\\\\\"+(parseInt(digit,10)+matchTotal+1)}):(matchcount=1,adjustedregex=this.removeCapturingGroups(rule.regex)),rule.splitRegex||\"string\"==typeof rule.token||(rule.splitRegex=this.createSplitterRegexp(rule.regex,flag))),mapping[matchTotal]=i,matchTotal+=matchcount,ruleRegExps.push(adjustedregex),rule.onMatch||(rule.onMatch=null),rule.__proto__=null\n}}this.regExps[key]=RegExp(\"(\"+ruleRegExps.join(\")|(\")+\")|($)\",flag)}};(function(){this.$applyToken=function(str){var values=this.splitRegex.exec(str).slice(1),types=this.token.apply(this,values);if(\"string\"==typeof types)return[{type:types,value:str}];for(var tokens=[],i=0,l=types.length;l>i;i++)values[i]&&(tokens[tokens.length]={type:types[i],value:values[i]});return tokens},this.$arrayTokens=function(str){if(!str)return[];for(var values=this.splitRegex.exec(str),tokens=[],types=this.tokenArray,i=0,l=types.length;l>i;i++)values[i+1]&&(tokens[tokens.length]={type:types[i],value:values[i+1]});return tokens},this.removeCapturingGroups=function(src){var r=src.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(x,y){return y?\"(?:\":x});return r},this.createSplitterRegexp=function(src,flag){if(-1!=src.indexOf(\"(?=\")){var stack=0,inChClass=!1,lastCapture={};src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(m,esc,parenOpen,parenClose,square,index){return inChClass?inChClass=\"]\"!=square:square?inChClass=!0:parenClose?(stack==lastCapture.stack&&(lastCapture.end=index+1,lastCapture.stack=-1),stack--):parenOpen&&(stack++,1!=parenOpen.length&&(lastCapture.stack=stack,lastCapture.start=index)),m}),null!=lastCapture.end&&/^\\)*$/.test(src.substr(lastCapture.end))&&(src=src.substring(0,lastCapture.start)+src.substr(lastCapture.end))}return RegExp(src,(flag||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(line,startState){if(startState&&\"string\"!=typeof startState){var stack=startState.slice(0);startState=stack[0]}else var stack=[];var currentState=startState||\"start\",state=this.states[currentState],mapping=this.matchMappings[currentState],re=this.regExps[currentState];re.lastIndex=0;for(var match,tokens=[],lastIndex=0,token={type:null,value:\"\"};match=re.exec(line);){var type=mapping.defaultToken,rule=null,value=match[0],index=re.lastIndex;if(index-value.length>lastIndex){var skipped=line.substring(lastIndex,index-value.length);token.type==type?token.value+=skipped:(token.type&&tokens.push(token),token={type:type,value:skipped})}for(var i=0;match.length-2>i;i++)if(void 0!==match[i+1]){rule=state[mapping[i]],type=rule.onMatch?rule.onMatch(value,currentState,stack):rule.token,rule.next&&(currentState=\"string\"==typeof rule.next?rule.next:rule.next(currentState,stack),state=this.states[currentState],state||(window.console&&console.error&&console.error(currentState,\"doesn't exist\"),currentState=\"start\",state=this.states[currentState]),mapping=this.matchMappings[currentState],lastIndex=index,re=this.regExps[currentState],re.lastIndex=index);break}if(value)if(\"string\"==typeof type)rule&&rule.merge===!1||token.type!==type?(token.type&&tokens.push(token),token={type:type,value:value}):token.value+=value;else if(type){token.type&&tokens.push(token),token={type:null,value:\"\"};for(var i=0;type.length>i;i++)tokens.push(type[i])}if(lastIndex==line.length)break;if(lastIndex=index,tokens.length>MAX_TOKEN_COUNT){token.value+=line.substr(lastIndex),currentState=\"start\";break}}return token.type&&tokens.push(token),{tokens:tokens,state:stack.length?stack:currentState}}}).call(Tokenizer.prototype),exports.Tokenizer=Tokenizer}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(acequire,exports){var lang=acequire(\"../lib/lang\"),TextHighlightRules=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(rules,prefix){for(var key in rules){for(var state=rules[key],i=0;state.length>i;i++){var rule=state[i];rule.next&&(rule.next=prefix+rule.next)}this.$rules[prefix+key]=state}},this.getRules=function(){return this.$rules},this.embedRules=function(HighlightRules,prefix,escapeRules,states,append){var embedRules=(new HighlightRules).getRules();if(states)for(var i=0;states.length>i;i++)states[i]=prefix+states[i];else{states=[];for(var key in embedRules)states.push(prefix+key)}if(this.addRules(embedRules,prefix),escapeRules)for(var addRules=Array.prototype[append?\"push\":\"unshift\"],i=0;states.length>i;i++)addRules.apply(this.$rules[states[i]],lang.deepCopy(escapeRules));this.$embeds||(this.$embeds=[]),this.$embeds.push(prefix)},this.getEmbeds=function(){return this.$embeds};var pushState=function(currentState,stack){return\"start\"!=currentState&&stack.unshift(this.nextState,currentState),this.nextState},popState=function(currentState,stack){return stack[0]!==currentState?\"start\":(stack.shift(),stack.shift())};this.normalizeRules=function(){function processState(key){var state=rules[key];state.processed=!0;for(var i=0;state.length>i;i++){var rule=state[i];!rule.regex&&rule.start&&(rule.regex=rule.start,rule.next||(rule.next=[]),rule.next.push({defaultToken:rule.token},{token:rule.token+\".end\",regex:rule.end||rule.start,next:\"pop\"}),rule.token=rule.token+\".start\",rule.push=!0);var next=rule.next||rule.push;if(next&&Array.isArray(next)){var stateName=rule.stateName||rule.token+id++;rules[stateName]=next,rule.next=stateName,processState(stateName)}else\"pop\"==next&&(rule.next=popState);if(rule.push&&(rule.nextState=rule.next||rule.push,rule.next=pushState,delete rule.push),rule.rules)for(var r in rule.rules)rules[r]?rules[r].push&&rules[r].push.apply(rules[r],rule.rules[r]):rules[r]=rule.rules[r];if(rule.include||\"string\"==typeof rule)var includeName=rule.include||rule,toInsert=rules[includeName];else Array.isArray(rule)&&(toInsert=rule);if(toInsert){var args=[i,1].concat(toInsert);rule.noEscape&&(args=args.filter(function(x){return!x.next})),state.splice.apply(state,args),i--,toInsert=null}}}var id=0,rules=this.$rules;Object.keys(rules).forEach(processState)},this.createKeywordMapper=function(map,defaultToken,ignoreCase,splitChar){var keywords=Object.create(null);return Object.keys(map).forEach(function(className){var a=map[className];ignoreCase&&(a=a.toLowerCase());for(var list=a.split(splitChar||\"|\"),i=list.length;i--;)keywords[list[i]]=className}),map=null,ignoreCase?function(value){return keywords[value.toLowerCase()]||defaultToken}:function(value){return keywords[value]||defaultToken}},this.getKeywords=function(){return this.$keywords}}).call(TextHighlightRules.prototype),exports.TextHighlightRules=TextHighlightRules}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var Behaviour=function(){this.$behaviours={}};(function(){this.add=function(name,action,callback){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[name]:this.$behaviours[name]={}}this.$behaviours[name][action]=callback},this.addBehaviours=function(behaviours){for(var key in behaviours)for(var action in behaviours[key])this.add(key,action,behaviours[key][action])},this.remove=function(name){this.$behaviours&&this.$behaviours[name]&&delete this.$behaviours[name]},this.inherit=function(mode,filter){if(\"function\"==typeof mode)var behaviours=(new mode).getBehaviours(filter);else var behaviours=mode.getBehaviours(filter);this.addBehaviours(behaviours)},this.getBehaviours=function(filter){if(filter){for(var ret={},i=0;filter.length>i;i++)this.$behaviours[filter[i]]&&(ret[filter[i]]=this.$behaviours[filter[i]]);return ret}return this.$behaviours}}).call(Behaviour.prototype),exports.Behaviour=Behaviour}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function addUnicodePackage(pack){var codePoint=/\\w{4}/g;for(var name in pack)exports.packages[name]=pack[name].replace(codePoint,\"\\\\u$&\")}exports.packages={},addUnicodePackage({L:\"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",Ll:\"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",Lu:\"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",Lt:\"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",Lm:\"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",Lo:\"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",M:\"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",Mn:\"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",Mc:\"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",Me:\"0488048906DE20DD-20E020E2-20E4A670-A672\",N:\"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nd:\"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nl:\"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",No:\"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",P:\"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",Pd:\"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",Ps:\"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",Pe:\"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",Pi:\"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",Pf:\"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",Pc:\"005F203F20402054FE33FE34FE4D-FE4FFF3F\",Po:\"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",S:\"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",Sm:\"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",Sc:\"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",Sk:\"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",So:\"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",Z:\"002000A01680180E2000-200A20282029202F205F3000\",Zs:\"002000A01680180E2000-200A202F205F3000\",Zl:\"2028\",Zp:\"2029\",C:\"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",Cc:\"0000-001F007F-009F\",Cf:\"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",Co:\"E000-F8FF\",Cs:\"D800-DFFF\",Cn:\"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"})\n}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,BackgroundTokenizer=function(tokenizer){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=tokenizer;var self=this;this.$worker=function(){if(self.running){for(var workerStart=new Date,startLine=self.currentLine,doc=self.doc,processedLines=0,len=doc.getLength();len>self.currentLine;){for(self.$tokenizeRow(self.currentLine);self.lines[self.currentLine];)self.currentLine++;if(processedLines++,0==processedLines%5&&new Date-workerStart>20)return self.fireUpdateEvent(startLine,self.currentLine-1),self.running=setTimeout(self.$worker,20),void 0}self.running=!1,self.fireUpdateEvent(startLine,len-1)}}};(function(){oop.implement(this,EventEmitter),this.setTokenizer=function(tokenizer){this.tokenizer=tokenizer,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(doc){this.doc=doc,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(firstRow,lastRow){var data={first:firstRow,last:lastRow};this._emit(\"update\",{data:data})},this.start=function(startRow){this.currentLine=Math.min(startRow||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.$updateOnChange=function(delta){var range=delta.range,startRow=range.start.row,len=range.end.row-startRow;if(0===len)this.lines[startRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.lines.splice(startRow,len+1,null),this.states.splice(startRow,len+1,null);else{var args=Array(len+1);args.unshift(startRow,1),this.lines.splice.apply(this.lines,args),this.states.splice.apply(this.states,args)}this.currentLine=Math.min(startRow,this.currentLine,this.doc.getLength()),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(row){return this.lines[row]||this.$tokenizeRow(row)},this.getState=function(row){return this.currentLine==row&&this.$tokenizeRow(row),this.states[row]||\"start\"},this.$tokenizeRow=function(row){var line=this.doc.getLine(row),state=this.states[row-1],data=this.tokenizer.getLineTokens(line,state,row);return this.states[row]+\"\"!=data.state+\"\"?(this.states[row]=data.state,this.lines[row+1]=null,this.currentLine>row+1&&(this.currentLine=row+1)):this.currentLine==row&&(this.currentLine=row+1),this.lines[row]=data.tokens}}).call(BackgroundTokenizer.prototype),exports.BackgroundTokenizer=BackgroundTokenizer}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\");acequire(\"./lib/oop\");var Range=acequire(\"./range\").Range,SearchHighlight=function(regExp,clazz,type){this.setRegexp(regExp),this.clazz=clazz,this.type=type||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(regExp){this.regExp+\"\"!=regExp+\"\"&&(this.regExp=regExp,this.cache=[])},this.update=function(html,markerLayer,session,config){if(this.regExp)for(var start=config.firstRow,end=config.lastRow,i=start;end>=i;i++){var ranges=this.cache[i];null==ranges&&(ranges=lang.getMatchOffsets(session.getLine(i),this.regExp),ranges.length>this.MAX_RANGES&&(ranges=ranges.slice(0,this.MAX_RANGES)),ranges=ranges.map(function(match){return new Range(i,match.offset,i,match.offset+match.length)}),this.cache[i]=ranges.length?ranges:\"\");for(var j=ranges.length;j--;)markerLayer.drawSingleLineMarker(html,ranges[j].toScreenRange(session),this.clazz,config,null,this.type)}}}).call(SearchHighlight.prototype),exports.SearchHighlight=SearchHighlight}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(acequire,exports){function Folding(){this.getFoldAt=function(row,column,side){var foldLine=this.getFoldLine(row);if(!foldLine)return null;for(var folds=foldLine.folds,i=0;folds.length>i;i++){var fold=folds[i];if(fold.range.contains(row,column)){if(1==side&&fold.range.isEnd(row,column))continue;if(-1==side&&fold.range.isStart(row,column))continue;return fold}}},this.getFoldsInRange=function(range){var start=range.start,end=range.end,foldLines=this.$foldData,foundFolds=[];start.column+=1,end.column-=1;for(var i=0;foldLines.length>i;i++){var cmp=foldLines[i].range.compareRange(range);if(2!=cmp){if(-2==cmp)break;for(var folds=foldLines[i].folds,j=0;folds.length>j;j++){var fold=folds[j];if(cmp=fold.range.compareRange(range),-2==cmp)break;if(2!=cmp){if(42==cmp)break;foundFolds.push(fold)}}}}return start.column-=1,end.column+=1,foundFolds},this.getAllFolds=function(){function addFold(fold){folds.push(fold)}for(var folds=[],foldLines=this.$foldData,i=0;foldLines.length>i;i++)for(var j=0;foldLines[i].folds.length>j;j++)addFold(foldLines[i].folds[j]);return folds},this.getFoldStringAt=function(row,column,trim,foldLine){if(foldLine=foldLine||this.getFoldLine(row),!foldLine)return null;for(var str,fold,lastFold={end:{column:0}},i=0;foldLine.folds.length>i;i++){fold=foldLine.folds[i];var cmp=fold.range.compareEnd(row,column);if(-1==cmp){str=this.getLine(fold.start.row).substring(lastFold.end.column,fold.start.column);break}if(0===cmp)return null;lastFold=fold}return str||(str=this.getLine(fold.start.row).substring(lastFold.end.column)),-1==trim?str.substring(0,column-lastFold.end.column):1==trim?str.substring(column-lastFold.end.column):str},this.getFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(docRow>=foldLine.start.row&&foldLine.end.row>=docRow)return foldLine;if(foldLine.end.row>docRow)return null}return null},this.getNextFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(foldLine.end.row>=docRow)return foldLine}return null},this.getFoldedRowCount=function(first,last){for(var foldData=this.$foldData,rowCount=last-first+1,i=0;foldData.length>i;i++){var foldLine=foldData[i],end=foldLine.end.row,start=foldLine.start.row;if(end>=last){last>start&&(start>=first?rowCount-=last-start:rowCount=0);break}end>=first&&(rowCount-=start>=first?end-start:end-first+1)}return rowCount},this.$addFoldLine=function(foldLine){return this.$foldData.push(foldLine),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),foldLine},this.addFold=function(placeholder,range){var fold,foldData=this.$foldData,added=!1;placeholder instanceof Fold?fold=placeholder:(fold=new Fold(range,placeholder),fold.collapseChildren=range.collapseChildren),this.$clipRangeToDocument(fold.range);var startRow=fold.start.row,startColumn=fold.start.column,endRow=fold.end.row,endColumn=fold.end.column;if(startRow==endRow&&2>endColumn-startColumn)throw\"The range has to be at least 2 characters width\";var startFold=this.getFoldAt(startRow,startColumn,1),endFold=this.getFoldAt(endRow,endColumn,-1);if(startFold&&endFold==startFold)return startFold.addSubFold(fold);if(startFold&&!startFold.range.isStart(startRow,startColumn)||endFold&&!endFold.range.isEnd(endRow,endColumn))throw\"A fold can't intersect already existing fold\"+fold.range+startFold.range;var folds=this.getFoldsInRange(fold.range);folds.length>0&&(this.removeFolds(folds),folds.forEach(function(subFold){fold.addSubFold(subFold)}));for(var i=0;foldData.length>i;i++){var foldLine=foldData[i];if(endRow==foldLine.start.row){foldLine.addFold(fold),added=!0;break}if(startRow==foldLine.end.row){if(foldLine.addFold(fold),added=!0,!fold.sameRow){var foldLineNext=foldData[i+1];if(foldLineNext&&foldLineNext.start.row==endRow){foldLine.merge(foldLineNext);break}}break}if(foldLine.start.row>=endRow)break}return added||(foldLine=this.$addFoldLine(new FoldLine(this.$foldData,fold))),this.$useWrapMode?this.$updateWrapData(foldLine.start.row,foldLine.start.row):this.$updateRowLengthCache(foldLine.start.row,foldLine.start.row),this.$modified=!0,this._emit(\"changeFold\",{data:fold}),fold},this.addFolds=function(folds){folds.forEach(function(fold){this.addFold(fold)},this)},this.removeFold=function(fold){var foldLine=fold.foldLine,startRow=foldLine.start.row,endRow=foldLine.end.row,foldLines=this.$foldData,folds=foldLine.folds;if(1==folds.length)foldLines.splice(foldLines.indexOf(foldLine),1);else if(foldLine.range.isEnd(fold.end.row,fold.end.column))folds.pop(),foldLine.end.row=folds[folds.length-1].end.row,foldLine.end.column=folds[folds.length-1].end.column;else if(foldLine.range.isStart(fold.start.row,fold.start.column))folds.shift(),foldLine.start.row=folds[0].start.row,foldLine.start.column=folds[0].start.column;else if(fold.sameRow)folds.splice(folds.indexOf(fold),1);else{var newFoldLine=foldLine.split(fold.start.row,fold.start.column);folds=newFoldLine.folds,folds.shift(),newFoldLine.start.row=folds[0].start.row,newFoldLine.start.column=folds[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(startRow,endRow):this.$updateRowLengthCache(startRow,endRow)),this.$modified=!0,this._emit(\"changeFold\",{data:fold})},this.removeFolds=function(folds){for(var cloneFolds=[],i=0;folds.length>i;i++)cloneFolds.push(folds[i]);cloneFolds.forEach(function(fold){this.removeFold(fold)},this),this.$modified=!0},this.expandFold=function(fold){this.removeFold(fold),fold.subFolds.forEach(function(subFold){fold.restoreRange(subFold),this.addFold(subFold)},this),fold.collapseChildren>0&&this.foldAll(fold.start.row+1,fold.end.row,fold.collapseChildren-1),fold.subFolds=[]},this.expandFolds=function(folds){folds.forEach(function(fold){this.expandFold(fold)},this)},this.unfold=function(location,expandInner){var range,folds;if(null==location?(range=new Range(0,0,this.getLength(),0),expandInner=!0):range=\"number\"==typeof location?new Range(location,0,location,this.getLine(location).length):\"row\"in location?Range.fromPoints(location,location):location,folds=this.getFoldsInRange(range),expandInner)this.removeFolds(folds);else for(;folds.length;)this.expandFolds(folds),folds=this.getFoldsInRange(range)},this.isRowFolded=function(docRow,startFoldRow){return!!this.getFoldLine(docRow,startFoldRow)},this.getRowFoldEnd=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.end.row:docRow},this.getRowFoldStart=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.start.row:docRow},this.getFoldDisplayLine=function(foldLine,endRow,endColumn,startRow,startColumn){null==startRow&&(startRow=foldLine.start.row,startColumn=0),null==endRow&&(endRow=foldLine.end.row,endColumn=this.getLine(endRow).length);var doc=this.doc,textLine=\"\";return foldLine.walk(function(placeholder,row,column,lastColumn){if(!(startRow>row)){if(row==startRow){if(startColumn>column)return;lastColumn=Math.max(startColumn,lastColumn)}textLine+=null!=placeholder?placeholder:doc.getLine(row).substring(lastColumn,column)}},endRow,endColumn),textLine},this.getDisplayLine=function(row,endColumn,startRow,startColumn){var foldLine=this.getFoldLine(row);if(foldLine)return this.getFoldDisplayLine(foldLine,row,endColumn,startRow,startColumn);var line;return line=this.doc.getLine(row),line.substring(startColumn||0,endColumn||line.length)},this.$cloneFoldData=function(){var fd=[];return fd=this.$foldData.map(function(foldLine){var folds=foldLine.folds.map(function(fold){return fold.clone()});return new FoldLine(fd,folds)})},this.toggleFold=function(tryToUnfold){var fold,bracketPos,selection=this.selection,range=selection.getRange();if(range.isEmpty()){var cursor=range.start;if(fold=this.getFoldAt(cursor.row,cursor.column))return this.expandFold(fold),void 0;(bracketPos=this.findMatchingBracket(cursor))?1==range.comparePoint(bracketPos)?range.end=bracketPos:(range.start=bracketPos,range.start.column++,range.end.column--):(bracketPos=this.findMatchingBracket({row:cursor.row,column:cursor.column+1}))?(1==range.comparePoint(bracketPos)?range.end=bracketPos:range.start=bracketPos,range.start.column++):range=this.getCommentFoldRange(cursor.row,cursor.column)||range}else{var folds=this.getFoldsInRange(range);if(tryToUnfold&&folds.length)return this.expandFolds(folds),void 0;1==folds.length&&(fold=folds[0])}if(fold||(fold=this.getFoldAt(range.start.row,range.start.column)),fold&&\"\"+fold.range==\"\"+range)return this.expandFold(fold),void 0;var placeholder=\"...\";if(!range.isMultiLine()){if(placeholder=this.getTextRange(range),4>placeholder.length)return;placeholder=placeholder.trim().substring(0,2)+\"..\"}this.addFold(placeholder,range)},this.getCommentFoldRange=function(row,column,dir){var iterator=new TokenIterator(this,row,column),token=iterator.getCurrentToken();if(token&&/^comment|string/.test(token.type)){var range=new Range,re=RegExp(token.type.replace(/\\..*/,\"\\\\.\"));if(1!=dir){do token=iterator.stepBackward();while(token&&re.test(token.type));iterator.stepForward()}if(range.start.row=iterator.getCurrentTokenRow(),range.start.column=iterator.getCurrentTokenColumn()+2,iterator=new TokenIterator(this,row,column),-1!=dir){do token=iterator.stepForward();while(token&&re.test(token.type));token=iterator.stepBackward()}else token=iterator.getCurrentToken();return range.end.row=iterator.getCurrentTokenRow(),range.end.column=iterator.getCurrentTokenColumn()+token.value.length-2,range}},this.foldAll=function(startRow,endRow,depth){void 0==depth&&(depth=1e5);var foldWidgets=this.foldWidgets;endRow=endRow||this.getLength();for(var row=startRow||0;endRow>row;row++)if(null==foldWidgets[row]&&(foldWidgets[row]=this.getFoldWidget(row)),\"start\"==foldWidgets[row]){var range=this.getFoldWidgetRange(row);if(range&&endRow>=range.end.row)try{var fold=this.addFold(\"...\",range);fold.collapseChildren=depth}catch(e){}row=range.end.row}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(style){if(!this.$foldStyles[style])throw Error(\"invalid fold style: \"+style+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle!=style){this.$foldStyle=style,\"manual\"==style&&this.unfold();var mode=this.$foldMode;this.$setFolding(null),this.$setFolding(mode)}},this.$setFolding=function(foldMode){if(this.$foldMode!=foldMode){if(this.$foldMode=foldMode,this.removeListener(\"change\",this.$updateFoldWidgets),this._emit(\"changeAnnotation\"),!foldMode||\"manual\"==this.$foldStyle)return this.foldWidgets=null,void 0;this.foldWidgets=[],this.getFoldWidget=foldMode.getFoldWidget.bind(foldMode,this,this.$foldStyle),this.getFoldWidgetRange=foldMode.getFoldWidgetRange.bind(foldMode,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets)}},this.getParentFoldRangeData=function(row,ignoreCurrent){var fw=this.foldWidgets;if(!fw||ignoreCurrent&&fw[row])return{};for(var firstRange,i=row-1;i>=0;){var c=fw[i];if(null==c&&(c=fw[i]=this.getFoldWidget(i)),\"start\"==c){var range=this.getFoldWidgetRange(i);if(firstRange||(firstRange=range),range&&range.end.row>=row)break}i--}return{range:-1!==i&&range,firstRange:firstRange}},this.onFoldWidgetClick=function(row,e){var type=this.getFoldWidget(row),line=this.getLine(row);e=e.domEvent;var children=e.shiftKey,all=e.ctrlKey||e.metaKey,siblings=e.altKey,dir=\"end\"===type?-1:1,fold=this.getFoldAt(row,-1===dir?0:line.length,dir);if(fold)return children||all?this.removeFold(fold):this.expandFold(fold),void 0;var range=this.getFoldWidgetRange(row);if(range&&!range.isMultiLine()&&(fold=this.getFoldAt(range.start.row,range.start.column,1),fold&&range.isEqual(fold.range)))return this.removeFold(fold),void 0;if(siblings){var data=this.getParentFoldRangeData(row);if(data.range)var startRow=data.range.start.row+1,endRow=data.range.end.row;this.foldAll(startRow,endRow,all?1e4:0)}else if(children){var endRow=range?range.end.row:this.getLength();this.foldAll(row+1,range.end.row,all?1e4:0)}else range&&(all&&(range.collapseChildren=1e4),this.addFold(\"...\",range));range||((e.target||e.srcElement).className+=\" ace_invalid\")},this.updateFoldWidgets=function(e){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len)this.foldWidgets[firstRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.foldWidgets.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.foldWidgets.splice.apply(this.foldWidgets,args)}}}var Range=acequire(\"../range\").Range,FoldLine=acequire(\"./fold_line\").FoldLine,Fold=acequire(\"./fold\").Fold,TokenIterator=acequire(\"../token_iterator\").TokenIterator;exports.Folding=Folding}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){function FoldLine(foldData,folds){this.foldData=foldData,Array.isArray(folds)?this.folds=folds:folds=this.folds=[folds];var last=folds[folds.length-1];this.range=new Range(folds[0].start.row,folds[0].start.column,last.end.row,last.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(fold){fold.setFoldLine(this)},this)}var Range=acequire(\"../range\").Range;(function(){this.shiftRow=function(shift){this.start.row+=shift,this.end.row+=shift,this.folds.forEach(function(fold){fold.start.row+=shift,fold.end.row+=shift})},this.addFold=function(fold){if(fold.sameRow){if(fold.start.row\u003Cthis.startRow||fold.endRow>this.endRow)throw\"Can't add a fold to this FoldLine as it has no connection\";this.folds.push(fold),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(fold.start.row,fold.start.column)>0?(this.end.row=fold.end.row,this.end.column=fold.end.column):0>this.range.compareStart(fold.end.row,fold.end.column)&&(this.start.row=fold.start.row,this.start.column=fold.start.column)}else if(fold.start.row==this.end.row)this.folds.push(fold),this.end.row=fold.end.row,this.end.column=fold.end.column;else{if(fold.end.row!=this.start.row)throw\"Trying to add fold to FoldRow that doesn't have a matching row\";this.folds.unshift(fold),this.start.row=fold.start.row,this.start.column=fold.start.column}fold.foldLine=this},this.containsRow=function(row){return row>=this.start.row&&this.end.row>=row},this.walk=function(callback,endRow,endColumn){var fold,comp,stop,lastEnd=0,folds=this.folds,isNewRow=!0;null==endRow&&(endRow=this.end.row,endColumn=this.end.column);for(var i=0;folds.length>i;i++){if(fold=folds[i],comp=fold.range.compareStart(endRow,endColumn),-1==comp)return callback(null,endRow,endColumn,lastEnd,isNewRow),void 0;if(stop=callback(null,fold.start.row,fold.start.column,lastEnd,isNewRow),stop=!stop&&callback(fold.placeholder,fold.start.row,fold.start.column,lastEnd),stop||0==comp)return;isNewRow=!fold.sameRow,lastEnd=fold.end.column}callback(null,endRow,endColumn,lastEnd,isNewRow)},this.getNextFoldTo=function(row,column){for(var fold,cmp,i=0;this.folds.length>i;i++){if(fold=this.folds[i],cmp=fold.range.compareEnd(row,column),-1==cmp)return{fold:fold,kind:\"after\"};if(0==cmp)return{fold:fold,kind:\"inside\"}}return null},this.addRemoveChars=function(row,column,len){var fold,folds,ret=this.getNextFoldTo(row,column);if(ret)if(fold=ret.fold,\"inside\"==ret.kind&&fold.start.column!=column&&fold.start.row!=row)window.console&&window.console.log(row,column,fold);else if(fold.start.row==row){folds=this.folds;var i=folds.indexOf(fold);for(0==i&&(this.start.column+=len),i;folds.length>i;i++){if(fold=folds[i],fold.start.column+=len,!fold.sameRow)return;fold.end.column+=len}this.end.column+=len}},this.split=function(row,column){var fold=this.getNextFoldTo(row,column).fold,folds=this.folds,foldData=this.foldData;if(!fold)return null;var i=folds.indexOf(fold),foldBefore=folds[i-1];this.end.row=foldBefore.end.row,this.end.column=foldBefore.end.column,folds=folds.splice(i,folds.length-i);var newFoldLine=new FoldLine(foldData,folds);return foldData.splice(foldData.indexOf(this)+1,0,newFoldLine),newFoldLine},this.merge=function(foldLineNext){for(var folds=foldLineNext.folds,i=0;folds.length>i;i++)this.addFold(folds[i]);var foldData=this.foldData;foldData.splice(foldData.indexOf(foldLineNext),1)},this.toString=function(){var ret=[\"\"+this.range+\": [\"];return this.folds.forEach(function(fold){ret.push(\" \"+(\"\"+fold))}),ret.push(\"]\"),ret.join(\"\\n\")},this.idxToPosition=function(idx){for(var fold,lastFoldEndColumn=0,i=0;this.folds.length>i;i++){var fold=this.folds[i];if(idx-=fold.start.column-lastFoldEndColumn,0>idx)return{row:fold.start.row,column:fold.start.column+idx};if(idx-=fold.placeholder.length,0>idx)return fold.start;lastFoldEndColumn=fold.end.column}return{row:this.end.row,column:this.end.column+idx}}}).call(FoldLine.prototype),exports.FoldLine=FoldLine}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(acequire,exports){function consumePoint(point,anchor){point.row-=anchor.row,0==point.row&&(point.column-=anchor.column)}function consumeRange(range,anchor){consumePoint(range.start,anchor),consumePoint(range.end,anchor)}function restorePoint(point,anchor){0==point.row&&(point.column+=anchor.column),point.row+=anchor.row}function restoreRange(range,anchor){restorePoint(range.start,anchor),restorePoint(range.end,anchor)}acequire(\"../range\").Range;var RangeList=acequire(\"../range_list\").RangeList,oop=acequire(\"../lib/oop\"),Fold=exports.Fold=function(range,placeholder){this.foldLine=null,this.placeholder=placeholder,this.range=range,this.start=range.start,this.end=range.end,this.sameRow=range.start.row==range.end.row,this.subFolds=this.ranges=[]};oop.inherits(Fold,RangeList),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+(\"\"+this.range)\n},this.setFoldLine=function(foldLine){this.foldLine=foldLine,this.subFolds.forEach(function(fold){fold.setFoldLine(foldLine)})},this.clone=function(){var range=this.range.clone(),fold=new Fold(range,this.placeholder);return this.subFolds.forEach(function(subFold){fold.subFolds.push(subFold.clone())}),fold.collapseChildren=this.collapseChildren,fold},this.addSubFold=function(fold){if(!this.range.isEqual(fold)){if(!this.range.containsRange(fold))throw\"A fold can't intersect already existing fold\"+fold.range+this.range;consumeRange(fold,this.start);for(var row=fold.start.row,column=fold.start.column,i=0,cmp=-1;this.subFolds.length>i&&(cmp=this.subFolds[i].range.compare(row,column),1==cmp);i++);var afterStart=this.subFolds[i];if(0==cmp)return afterStart.addSubFold(fold);for(var row=fold.range.end.row,column=fold.range.end.column,j=i,cmp=-1;this.subFolds.length>j&&(cmp=this.subFolds[j].range.compare(row,column),1==cmp);j++);if(this.subFolds[j],0==cmp)throw\"A fold can't intersect already existing fold\"+fold.range+this.range;return this.subFolds.splice(i,j-i,fold),fold.setFoldLine(this.foldLine),fold}},this.restoreRange=function(range){return restoreRange(range,this.start)}}.call(Fold.prototype)}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"./range\").Range,comparePoints=Range.comparePoints,RangeList=function(){this.ranges=[]};(function(){this.comparePoints=comparePoints,this.pointIndex=function(pos,excludeEdges,startIndex){for(var list=this.ranges,i=startIndex||0;list.length>i;i++){var range=list[i],cmpEnd=comparePoints(pos,range.end);if(!(cmpEnd>0)){var cmpStart=comparePoints(pos,range.start);return 0===cmpEnd?excludeEdges&&0!==cmpStart?-i-2:i:cmpStart>0||0===cmpStart&&!excludeEdges?i:-i-1}}return-i-1},this.add=function(range){var excludeEdges=!range.isEmpty(),startIndex=this.pointIndex(range.start,excludeEdges);0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex(range.end,excludeEdges,startIndex);return 0>endIndex?endIndex=-endIndex-1:endIndex++,this.ranges.splice(startIndex,endIndex-startIndex,range)},this.addList=function(list){for(var removed=[],i=list.length;i--;)removed.push.call(removed,this.add(list[i]));return removed},this.substractPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges.splice(i,1):void 0},this.merge=function(){var removed=[],list=this.ranges;list=list.sort(function(a,b){return comparePoints(a.start,b.start)});for(var range,next=list[0],i=1;list.length>i;i++){range=next,next=list[i];var cmp=comparePoints(range.end,next.start);0>cmp||(0!=cmp||range.isEmpty()||next.isEmpty())&&(0>comparePoints(range.end,next.end)&&(range.end.row=next.end.row,range.end.column=next.end.column),list.splice(i,1),removed.push(next),next=range,i--)}return this.ranges=list,removed},this.contains=function(row,column){return this.pointIndex({row:row,column:column})>=0},this.containsPoint=function(pos){return this.pointIndex(pos)>=0},this.rangeAtPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges[i]:void 0},this.clipRows=function(startRow,endRow){var list=this.ranges;if(list[0].start.row>endRow||startRow>list[list.length-1].start.row)return[];var startIndex=this.pointIndex({row:startRow,column:0});0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex({row:endRow,column:0},startIndex);0>endIndex&&(endIndex=-endIndex-1);for(var clipped=[],i=startIndex;endIndex>i;i++)clipped.push(list[i]);return clipped},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(session){this.session&&this.detach(),this.session=session,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener(\"change\",this.onChange),this.session=null)},this.$onChange=function(e){var changeRange=e.data.range;if(\"i\"==e.data.action[0])var start=changeRange.start,end=changeRange.end;else var end=changeRange.start,start=changeRange.end;for(var startRow=start.row,endRow=end.row,lineDif=endRow-startRow,colDiff=-start.column+end.column,ranges=this.ranges,i=0,n=ranges.length;n>i;i++){var r=ranges[i];if(!(startRow>r.end.row)){if(r.start.row>startRow)break;r.start.row==startRow&&r.start.column>=start.column&&(r.start.column+=colDiff,r.start.row+=lineDif),r.end.row==startRow&&r.end.column>=start.column&&(r.end.column==start.column&&colDiff>0&&n-1>i&&r.end.column>r.start.column&&r.end.column==ranges[i+1].start.column&&(r.end.column-=colDiff),r.end.column+=colDiff,r.end.row+=lineDif)}}if(0!=lineDif&&n>i)for(;n>i;i++){var r=ranges[i];r.start.row+=lineDif,r.end.row+=lineDif}}}).call(RangeList.prototype),exports.RangeList=RangeList}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var TokenIterator=function(session,initialRow,initialColumn){this.$session=session,this.$row=initialRow,this.$rowTokens=session.getTokens(initialRow);var token=session.getTokenAt(initialRow,initialColumn);this.$tokenIndex=token?token.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;0>this.$tokenIndex;){if(this.$row-=1,0>this.$row)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var rowCount;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,rowCount||(rowCount=this.$session.getLength()),this.$row>=rowCount)return this.$row=rowCount-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var rowTokens=this.$rowTokens,tokenIndex=this.$tokenIndex,column=rowTokens[tokenIndex].start;if(void 0!==column)return column;for(column=0;tokenIndex>0;)tokenIndex-=1,column+=rowTokens[tokenIndex].value.length;return column}}).call(TokenIterator.prototype),exports.TokenIterator=TokenIterator}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(acequire,exports){function BracketMatch(){this.findMatchingBracket=function(position,chr){if(0==position.column)return null;var charBeforeCursor=chr||this.getLine(position.row).charAt(position.column-1);if(\"\"==charBeforeCursor)return null;var match=charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return match?match[1]?this.$findClosingBracket(match[1],position):this.$findOpeningBracket(match[2],position):null},this.getBracketRange=function(pos){var range,line=this.getLine(pos.row),before=!0,chr=line.charAt(pos.column-1),match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);if(match||(chr=line.charAt(pos.column),pos={row:pos.row,column:pos.column+1},match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/),before=!1),!match)return null;if(match[1]){var bracketPos=this.$findClosingBracket(match[1],pos);if(!bracketPos)return null;range=Range.fromPoints(pos,bracketPos),before||(range.end.column++,range.start.column--),range.cursor=range.end}else{var bracketPos=this.$findOpeningBracket(match[2],pos);if(!bracketPos)return null;range=Range.fromPoints(bracketPos,pos),before||(range.start.column++,range.end.column--),range.cursor=range.start}return range},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(bracket,position,typeRe){var openBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn()-2,value=token.value;;){for(;valueIndex>=0;){var chr=value.charAt(valueIndex);if(chr==openBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex-=1}do token=iterator.stepBackward();while(token&&!typeRe.test(token.type));if(null==token)break;value=token.value,valueIndex=value.length-1}return null}},this.$findClosingBracket=function(bracket,position,typeRe){var closingBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn();;){for(var value=token.value,valueLength=value.length;valueLength>valueIndex;){var chr=value.charAt(valueIndex);if(chr==closingBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex+=1}do token=iterator.stepForward();while(token&&!typeRe.test(token.type));if(null==token)break;valueIndex=0}return null}}}var TokenIterator=acequire(\"../token_iterator\").TokenIterator,Range=acequire(\"../range\").Range;exports.BracketMatch=BracketMatch}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),Range=acequire(\"./range\").Range,Search=function(){this.$options={}};(function(){this.set=function(options){return oop.mixin(this.$options,options),this},this.getOptions=function(){return lang.copyObject(this.$options)},this.setOptions=function(options){this.$options=options},this.find=function(session){var iterator=this.$matchIterator(session,this.$options);if(!iterator)return!1;var firstRange=null;return iterator.forEach(function(range,row,offset){if(range.start)firstRange=range;else{var column=range.offset+(offset||0);firstRange=new Range(row,column,row,column+range.length)}return!0}),firstRange},this.findAll=function(session){var options=this.$options;if(!options.needle)return[];this.$assembleRegExp(options);var range=options.range,lines=range?session.getLines(range.start.row,range.end.row):session.doc.getAllLines(),ranges=[],re=options.re;if(options.$isMultiLine)for(var len=re.length,maxRow=lines.length-len,row=re.offset||0;maxRow>=row;row++){for(var j=0;len>j&&-1!=lines[row+j].search(re[j]);j++);var startLine=lines[row],line=lines[row+len-1],startIndex=startLine.match(re[0])[0].length,endIndex=line.match(re[len-1])[0].length;ranges.push(new Range(row,startLine.length-startIndex,row+len-1,endIndex))}else for(var i=0;lines.length>i;i++)for(var matches=lang.getMatchOffsets(lines[i],re),j=0;matches.length>j;j++){var match=matches[j];ranges.push(new Range(i,match.offset,i,match.offset+match.length))}if(range){for(var startColumn=range.start.column,endColumn=range.start.column,i=0,j=ranges.length-1;j>i&&startColumn>ranges[i].start.column&&ranges[i].start.row==range.start.row;)i++;for(;j>i&&ranges[j].end.column>endColumn&&ranges[j].end.row==range.end.row;)j--;return ranges.slice(i,j+1)}return ranges},this.replace=function(input,replacement){var options=this.$options,re=this.$assembleRegExp(options);if(options.$isMultiLine)return replacement;if(re){var match=re.exec(input);if(!match||match[0].length!=input.length)return null;if(replacement=input.replace(re,replacement),options.preserveCase){replacement=replacement.split(\"\");for(var i=Math.min(input.length,input.length);i--;){var ch=input[i];replacement[i]=ch&&ch.toLowerCase()!=ch?replacement[i].toUpperCase():replacement[i].toLowerCase()}replacement=replacement.join(\"\")}return replacement}},this.$matchIterator=function(session,options){var re=this.$assembleRegExp(options);if(!re)return!1;var callback,self=this,backwards=options.backwards;if(options.$isMultiLine)var len=re.length,matchIterator=function(line,row,offset){var startIndex=line.search(re[0]);if(-1!=startIndex){for(var i=1;len>i;i++)if(line=session.getLine(row+i),-1==line.search(re[i]))return;var endIndex=line.match(re[len-1])[0].length,range=new Range(row,startIndex,row+len-1,endIndex);return 1==re.offset?(range.start.row--,range.start.column=Number.MAX_VALUE):offset&&(range.start.column+=offset),callback(range)?!0:void 0}};else if(backwards)var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=matches.length-1;i>=0;i--)if(callback(matches[i],row,startIndex))return!0};else var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=0;matches.length>i;i++)if(callback(matches[i],row,startIndex))return!0};return{forEach:function(_callback){callback=_callback,self.$lineIterator(session,options).forEach(matchIterator)}}},this.$assembleRegExp=function(options){if(options.needle instanceof RegExp)return options.re=options.needle;var needle=options.needle;if(!options.needle)return options.re=!1;options.regExp||(needle=lang.escapeRegExp(needle)),options.wholeWord&&(needle=\"\\\\b\"+needle+\"\\\\b\");var modifier=options.caseSensitive?\"g\":\"gi\";if(options.$isMultiLine=/[\\n\\r]/.test(needle),options.$isMultiLine)return options.re=this.$assembleMultilineRegExp(needle,modifier);try{var re=RegExp(needle,modifier)}catch(e){re=!1}return options.re=re},this.$assembleMultilineRegExp=function(needle,modifier){for(var parts=needle.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),re=[],i=0;parts.length>i;i++)try{re.push(RegExp(parts[i],modifier))}catch(e){return!1}return\"\"==parts[0]?(re.shift(),re.offset=1):re.offset=0,re},this.$lineIterator=function(session,options){var backwards=1==options.backwards,skipCurrent=0!=options.skipCurrent,range=options.range,start=options.start;start||(start=range?range[backwards?\"end\":\"start\"]:session.selection.getRange()),start.start&&(start=start[skipCurrent!=backwards?\"end\":\"start\"]);var firstRow=range?range.start.row:0,lastRow=range?range.end.row:session.getLength()-1,forEach=backwards?function(callback){var row=start.row,line=session.getLine(row).substring(0,start.column);if(!callback(line,row)){for(row--;row>=firstRow;row--)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=lastRow,firstRow=start.row;row>=firstRow;row--)if(callback(session.getLine(row),row))return}}:function(callback){var row=start.row,line=session.getLine(row).substr(start.column);if(!callback(line,row,start.column)){for(row+=1;lastRow>=row;row++)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=firstRow,lastRow=start.row;lastRow>=row;row++)if(callback(session.getLine(row),row))return}};return{forEach:forEach}}}).call(Search.prototype),exports.Search=Search}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler,EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,CommandManager=function(platform,commands){this.platform=platform,this.commands=this.byName={},this.commmandKeyBinding={},this.addCommands(commands),this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};oop.inherits(CommandManager,HashHandler),function(){oop.implement(this,EventEmitter),this.exec=function(command,editor,args){if(\"string\"==typeof command&&(command=this.commands[command]),!command)return!1;if(editor&&editor.$readOnly&&!command.readOnly)return!1;var e={editor:editor,command:command,args:args},retvalue=this._emit(\"exec\",e);return this._signal(\"afterExec\",e),retvalue===!1?!1:!0},this.toggleRecording=function(editor){return this.$inReplay?void 0:(editor&&editor._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0))},this.replay=function(editor){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(editor);try{this.$inReplay=!0,this.macro.forEach(function(x){\"string\"==typeof x?this.exec(x,editor):this.exec(x[0],editor,x[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(m){return m.map(function(x){return\"string\"!=typeof x[0]&&(x[0]=x[0].name),x[1]||(x=x[0]),x})}}.call(CommandManager.prototype),exports.CommandManager=CommandManager}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(acequire,exports){function HashHandler(config,platform){this.platform=platform||(useragent.isMac?\"mac\":\"win\"),this.commands={},this.commmandKeyBinding={},this.addCommands(config)}var keyUtil=acequire(\"../lib/keys\"),useragent=acequire(\"../lib/useragent\");(function(){this.addCommand=function(command){this.commands[command.name]&&this.removeCommand(command),this.commands[command.name]=command,command.bindKey&&this._buildKeyHash(command)},this.removeCommand=function(command){var name=\"string\"==typeof command?command:command.name;command=this.commands[name],delete this.commands[name];var ckb=this.commmandKeyBinding;for(var hashId in ckb)for(var key in ckb[hashId])ckb[hashId][key]==command&&delete ckb[hashId][key]},this.bindKey=function(key,command){if(key){if(\"function\"==typeof command)return this.addCommand({exec:command,bindKey:key,name:command.name||key}),void 0;var ckb=this.commmandKeyBinding;key.split(\"|\").forEach(function(keyPart){var binding=this.parseKeys(keyPart,command),hashId=binding.hashId;(ckb[hashId]||(ckb[hashId]={}))[binding.key]=command},this)}},this.addCommands=function(commands){commands&&Object.keys(commands).forEach(function(name){var command=commands[name];return\"string\"==typeof command?this.bindKey(command,name):(\"function\"==typeof command&&(command={exec:command}),command.name||(command.name=name),this.addCommand(command),void 0)},this)},this.removeCommands=function(commands){Object.keys(commands).forEach(function(name){this.removeCommand(commands[name])},this)},this.bindKeys=function(keyList){Object.keys(keyList).forEach(function(key){this.bindKey(key,keyList[key])},this)},this._buildKeyHash=function(command){var binding=command.bindKey;if(binding){var key=\"string\"==typeof binding?binding:binding[this.platform];this.bindKey(key,command)}},this.parseKeys=function(keys){-1!=keys.indexOf(\" \")&&(keys=keys.split(/\\s+/).pop());var parts=keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x}),key=parts.pop(),keyCode=keyUtil[key];if(keyUtil.FUNCTION_KEYS[keyCode])key=keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();else{if(!parts.length)return{key:key,hashId:-1};if(1==parts.length&&\"shift\"==parts[0])return{key:key.toUpperCase(),hashId:-1}}for(var hashId=0,i=parts.length;i--;){var modifier=keyUtil.KEY_MODS[parts[i]];if(null==modifier)return\"undefined\"!=typeof console&&console.error(\"invalid modifier \"+parts[i]+\" in \"+keys),!1;hashId|=modifier}return{key:key,hashId:hashId}},this.findKeyCommand=function(hashId,keyString){var ckbr=this.commmandKeyBinding;return ckbr[hashId]&&ckbr[hashId][keyString]},this.handleKeyboard=function(data,hashId,keyString){return{command:this.findKeyCommand(hashId,keyString)}}}).call(HashHandler.prototype),exports.HashHandler=HashHandler}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\"],function(acequire,exports){function bindKey(win,mac){return{win:win,mac:mac}}var lang=acequire(\"../lib/lang\"),config=acequire(\"../config\");exports.commands=[{name:\"selectall\",bindKey:bindKey(\"Ctrl-A\",\"Command-A\"),exec:function(editor){editor.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:bindKey(null,\"Ctrl-L\"),exec:function(editor){editor.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:bindKey(\"Ctrl-L\",\"Command-L\"),exec:function(editor){var line=parseInt(prompt(\"Enter line number:\"),10);isNaN(line)||editor.gotoLine(line)},readOnly:!0},{name:\"fold\",bindKey:bindKey(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(editor){editor.session.toggleFold(!1)},readOnly:!0},{name:\"unfold\",bindKey:bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(editor){editor.session.toggleFold(!0)},readOnly:!0},{name:\"foldall\",bindKey:bindKey(\"Alt-0\",\"Command-Option-0\"),exec:function(editor){editor.session.foldAll()},readOnly:!0},{name:\"unfoldall\",bindKey:bindKey(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(editor){editor.session.unfold()},readOnly:!0},{name:\"findnext\",bindKey:bindKey(\"Ctrl-K\",\"Command-G\"),exec:function(editor){editor.findNext()},readOnly:!0},{name:\"findprevious\",bindKey:bindKey(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(editor){editor.findPrevious()},readOnly:!0},{name:\"find\",bindKey:bindKey(\"Ctrl-F\",\"Command-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(editor){editor.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:bindKey(\"Ctrl-Shift-Home\",\"Command-Shift-Up\"),exec:function(editor){editor.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotostart\",bindKey:bindKey(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(editor){editor.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectup\",bindKey:bindKey(\"Shift-Up\",\"Shift-Up\"),exec:function(editor){editor.getSelection().selectUp()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golineup\",bindKey:bindKey(\"Up\",\"Up|Ctrl-P\"),exec:function(editor,args){editor.navigateUp(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttoend\",bindKey:bindKey(\"Ctrl-Shift-End\",\"Command-Shift-Down\"),exec:function(editor){editor.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoend\",bindKey:bindKey(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(editor){editor.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectdown\",bindKey:bindKey(\"Shift-Down\",\"Shift-Down\"),exec:function(editor){editor.getSelection().selectDown()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golinedown\",bindKey:bindKey(\"Down\",\"Down|Ctrl-N\"),exec:function(editor,args){editor.navigateDown(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordleft\",bindKey:bindKey(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(editor){editor.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordleft\",bindKey:bindKey(\"Ctrl-Left\",\"Option-Left\"),exec:function(editor){editor.navigateWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolinestart\",bindKey:bindKey(\"Alt-Shift-Left\",\"Command-Shift-Left\"),exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolinestart\",bindKey:bindKey(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(editor){editor.navigateLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectleft\",bindKey:bindKey(\"Shift-Left\",\"Shift-Left\"),exec:function(editor){editor.getSelection().selectLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoleft\",bindKey:bindKey(\"Left\",\"Left|Ctrl-B\"),exec:function(editor,args){editor.navigateLeft(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordright\",bindKey:bindKey(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(editor){editor.getSelection().selectWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordright\",bindKey:bindKey(\"Ctrl-Right\",\"Option-Right\"),exec:function(editor){editor.navigateWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolineend\",bindKey:bindKey(\"Alt-Shift-Right\",\"Command-Shift-Right\"),exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolineend\",bindKey:bindKey(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(editor){editor.navigateLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectright\",bindKey:bindKey(\"Shift-Right\",\"Shift-Right\"),exec:function(editor){editor.getSelection().selectRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoright\",bindKey:bindKey(\"Right\",\"Right|Ctrl-F\"),exec:function(editor,args){editor.navigateRight(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(editor){editor.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:bindKey(null,\"Option-PageDown\"),exec:function(editor){editor.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:bindKey(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(editor){editor.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(editor){editor.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:bindKey(null,\"Option-PageUp\"),exec:function(editor){editor.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(editor){editor.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:bindKey(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:bindKey(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"togglerecording\",bindKey:bindKey(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(editor){editor.commands.toggleRecording(editor)},readOnly:!0},{name:\"replaymacro\",bindKey:bindKey(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(editor){editor.commands.replay(editor)},readOnly:!0},{name:\"jumptomatching\",bindKey:bindKey(\"Ctrl-P\",\"Ctrl-Shift-P\"),exec:function(editor){editor.jumpToMatching()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttomatching\",bindKey:bindKey(\"Ctrl-Shift-P\",null),exec:function(editor){editor.jumpToMatching(!0)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"cut\",exec:function(editor){var range=editor.getSelectionRange();editor._emit(\"cut\",range),editor.selection.isEmpty()||(editor.session.remove(range),editor.clearSelection())},multiSelectAction:\"forEach\"},{name:\"removeline\",bindKey:bindKey(\"Ctrl-D\",\"Command-D\"),exec:function(editor){editor.removeLines()},multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:bindKey(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(editor){editor.duplicateSelection()},multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:bindKey(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(editor){editor.sortLines()},multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:bindKey(\"Ctrl-/\",\"Command-/\"),exec:function(editor){editor.toggleCommentLines()},multiSelectAction:\"forEachLine\"},{name:\"modifyNumberUp\",bindKey:bindKey(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(editor){editor.modifyNumber(1)},multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:bindKey(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(editor){editor.modifyNumber(-1)},multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:bindKey(\"Ctrl-H\",\"Command-Option-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor,!0)})}},{name:\"undo\",bindKey:bindKey(\"Ctrl-Z\",\"Command-Z\"),exec:function(editor){editor.undo()}},{name:\"redo\",bindKey:bindKey(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(editor){editor.redo()}},{name:\"copylinesup\",bindKey:bindKey(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(editor){editor.copyLinesUp()}},{name:\"movelinesup\",bindKey:bindKey(\"Alt-Up\",\"Option-Up\"),exec:function(editor){editor.moveLinesUp()}},{name:\"copylinesdown\",bindKey:bindKey(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(editor){editor.copyLinesDown()}},{name:\"movelinesdown\",bindKey:bindKey(\"Alt-Down\",\"Option-Down\"),exec:function(editor){editor.moveLinesDown()}},{name:\"del\",bindKey:bindKey(\"Delete\",\"Delete|Ctrl-D\"),exec:function(editor){editor.remove(\"right\")},multiSelectAction:\"forEach\"},{name:\"backspace\",bindKey:bindKey(\"Command-Backspace|Option-Backspace|Shift-Backspace|Backspace\",\"Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(editor){editor.remove(\"left\")},multiSelectAction:\"forEach\"},{name:\"removetolinestart\",bindKey:bindKey(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(editor){editor.removeToLineStart()},multiSelectAction:\"forEach\"},{name:\"removetolineend\",bindKey:bindKey(\"Alt-Delete\",\"Ctrl-K\"),exec:function(editor){editor.removeToLineEnd()},multiSelectAction:\"forEach\"},{name:\"removewordleft\",bindKey:bindKey(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(editor){editor.removeWordLeft()},multiSelectAction:\"forEach\"},{name:\"removewordright\",bindKey:bindKey(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(editor){editor.removeWordRight()},multiSelectAction:\"forEach\"},{name:\"outdent\",bindKey:bindKey(\"Shift-Tab\",\"Shift-Tab\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEach\"},{name:\"indent\",bindKey:bindKey(\"Tab\",\"Tab\"),exec:function(editor){editor.indent()},multiSelectAction:\"forEach\"},{name:\"blockoutdent\",bindKey:bindKey(\"Ctrl-[\",\"Ctrl-[\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEachLine\"},{name:\"blockindent\",bindKey:bindKey(\"Ctrl-]\",\"Ctrl-]\"),exec:function(editor){editor.blockIndent()},multiSelectAction:\"forEachLine\"},{name:\"insertstring\",exec:function(editor,str){editor.insert(str)},multiSelectAction:\"forEach\"},{name:\"inserttext\",exec:function(editor,args){editor.insert(lang.stringRepeat(args.text||\"\",args.times||1))},multiSelectAction:\"forEach\"},{name:\"splitline\",bindKey:bindKey(null,\"Ctrl-O\"),exec:function(editor){editor.splitLine()},multiSelectAction:\"forEach\"},{name:\"transposeletters\",bindKey:bindKey(\"Ctrl-T\",\"Ctrl-T\"),exec:function(editor){editor.transposeLetters()},multiSelectAction:function(editor){editor.transposeSelections(1)}},{name:\"touppercase\",bindKey:bindKey(\"Ctrl-U\",\"Ctrl-U\"),exec:function(editor){editor.toUpperCase()},multiSelectAction:\"forEach\"},{name:\"tolowercase\",bindKey:bindKey(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(editor){editor.toLowerCase()},multiSelectAction:\"forEach\"}]}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var UndoManager=function(){this.reset()};(function(){this.execute=function(options){var deltas=options.args[0];this.$doc=options.args[1],this.$undoStack.push(deltas),this.$redoStack=[]},this.undo=function(dontSelect){var deltas=this.$undoStack.pop(),undoSelectionRange=null;return deltas&&(undoSelectionRange=this.$doc.undoChanges(deltas,dontSelect),this.$redoStack.push(deltas)),undoSelectionRange},this.redo=function(dontSelect){var deltas=this.$redoStack.pop(),redoSelectionRange=null;return deltas&&(redoSelectionRange=this.$doc.redoChanges(deltas,dontSelect),this.$undoStack.push(deltas)),redoSelectionRange},this.reset=function(){this.$undoStack=[],this.$redoStack=[]},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(UndoManager.prototype),exports.UndoManager=UndoManager}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),useragent=acequire(\"./lib/useragent\"),config=acequire(\"./config\"),GutterLayer=acequire(\"./layer/gutter\").Gutter,MarkerLayer=acequire(\"./layer/marker\").Marker,TextLayer=acequire(\"./layer/text\").Text,CursorLayer=acequire(\"./layer/cursor\").Cursor,ScrollBar=acequire(\"./scrollbar\").ScrollBar,RenderLoop=acequire(\"./renderloop\").RenderLoop,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,editorCss=\".ace_editor {position: relative;overflow: hidden;font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;font-size: 12px;line-height: normal;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\\\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\\\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\\\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\\\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\\\");}.ace_scrollbar {position: absolute;overflow-x: hidden;overflow-y: scroll;right: 0;top: 0;bottom: 0;}.ace_scrollbar-inner {position: absolute;width: 1px;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;}.ace_text-input.ace_composition {background: #f8f8f8;color: #111;z-index: 1000;opacity: 1;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: nowrap;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {color: black;font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_cursor[style*=\\\"opacity: 0\\\"]{-ms-filter: \\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\\\";}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_line {white-space: nowrap;}.ace_marker-layer .ace_step {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;}.ace_editor.ace_dragging .ace_content {cursor: move;}.ace_gutter-tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;display: inline-block;max-width: 500px;padding: 4px;position: fixed;z-index: 300;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre-line;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: inline-block;width: 11px;vertical-align: top;background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;}.ace_fold-widget.ace_end {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}\";\ndom.importCssString(editorCss,\"ace_editor\");var VirtualRenderer=function(container,theme){var _self=this;this.container=container||dom.createElement(\"div\"),this.$keepTextAreaAtCursor=!useragent.isIE,dom.addCssClass(this.container,\"ace_editor\"),this.setTheme(theme),this.$gutter=dom.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.scroller=dom.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=dom.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new GutterLayer(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new MarkerLayer(this.content);var textLayer=this.$textLayer=new TextLayer(this.content);this.canvas=textLayer.element,this.$markerFront=new MarkerLayer(this.content),this.$cursorLayer=new CursorLayer(this.content),this.$horizScroll=!1,this.scrollBar=new ScrollBar(this.container),this.scrollBar.addEventListener(\"scroll\",function(e){_self.$inScrollAnimation||_self.session.setScrollTop(e.data)}),this.scrollTop=0,this.scrollLeft=0,event.addListener(this.scroller,\"scroll\",function(){var scrollLeft=_self.scroller.scrollLeft;_self.scrollLeft=scrollLeft,_self.session.setScrollLeft(scrollLeft)}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener(\"changeCharacterSize\",function(){_self.updateCharacterSize(),_self.onResize(!0)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new RenderLoop(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),config.resetOptions(this),config._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,oop.implement(this,EventEmitter),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.characterWidth=this.$textLayer.getCharacterWidth(),this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(session){this.session=session,this.scroller.className=\"ace_scroller\",this.$cursorLayer.setSession(session),this.$markerBack.setSession(session),this.$markerFront.setSession(session),this.$gutterLayer.setSession(session),this.$textLayer.setSession(session),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(firstRow,lastRow){void 0===lastRow&&(lastRow=1/0),this.$changedLines?(this.$changedLines.firstRow>firstRow&&(this.$changedLines.firstRow=firstRow),lastRow>this.$changedLines.lastRow&&(this.$changedLines.lastRow=lastRow)):this.$changedLines={firstRow:firstRow,lastRow:lastRow},this.$changedLines.firstRow>this.layerConfig.lastRow||this.$changedLines.lastRow\u003Cthis.layerConfig.firstRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(force){force?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.onResize=function(force,gutterWidth,width,height){var changes=0,size=this.$size;if(!(this.resizing>2)){if(this.resizing>1?this.resizing++:this.resizing=force?1:0,height||(height=dom.getInnerHeight(this.container)),height&&(force||size.height!=height)&&(size.height=height,changes=this.CHANGE_SIZE,size.scrollerHeight=this.scroller.clientHeight,size.scrollerHeight||(size.scrollerHeight=size.height,this.$horizScroll&&(size.scrollerHeight-=this.scrollBar.getWidth())),this.scrollBar.setHeight(size.scrollerHeight),this.session&&(this.session.setScrollTop(this.getScrollTop()),changes|=this.CHANGE_FULL)),width||(width=dom.getInnerWidth(this.container)),width&&(force||this.resizing>1||size.width!=width)){changes=this.CHANGE_SIZE,size.width=width;var gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.scroller.style.right=this.scrollBar.getWidth()+\"px\",(this.session.getUseWrapMode()&&this.adjustWrapLimit()||force)&&(changes|=this.CHANGE_FULL)}this.$size.scrollerHeight&&(force?this.$renderChanges(changes,!0):this.$loop.schedule(changes),force&&(this.$gutterLayer.$padding=null),force&&delete this.resizing)}},this.onGutterResize=function(){var width=this.$size.width,gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",this.$size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.session.getUseWrapMode()&&this.adjustWrapLimit()&&this.$loop.schedule(this.CHANGE_FULL)},this.adjustWrapLimit=function(){var availableWidth=this.$size.scrollerWidth-2*this.$padding,limit=Math.floor(availableWidth/this.characterWidth);return this.session.adjustWrapLimit(limit,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(shouldAnimate){this.setOption(\"animatedScroll\",shouldAnimate)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(showInvisibles){this.setOption(\"showInvisibles\",showInvisibles)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(display){this.setOption(\"displayIndentGuides\",display)},this.setShowPrintMargin=function(showPrintMargin){this.setOption(\"showPrintMargin\",showPrintMargin)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(showPrintMargin){this.setOption(\"printMarginColumn\",showPrintMargin)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(show){return this.setOption(\"showGutter\",show)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(show){this.setOption(\"fadeFoldWidgets\",show)},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var pos=this.$cursorLayer.$pixelPos,height=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var cursor=this.session.selection.getCursor();cursor.column=0,pos=this.$cursorLayer.getPixelPosition(cursor,!0),height*=this.session.getRowLength(cursor.row)}this.$gutterLineHighlight.style.top=pos.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=height+\"px\"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var containerEl=dom.createElement(\"div\");containerEl.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=dom.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",containerEl.appendChild(this.$printMarginEl),this.content.insertBefore(containerEl,this.content.firstChild)}var style=this.$printMarginEl.style;style.left=this.characterWidth*this.$printMarginColumn+this.$padding+\"px\",style.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var config=this.layerConfig,posTop=this.$cursorLayer.$pixelPos.top,posLeft=this.$cursorLayer.$pixelPos.left;posTop-=config.offset;var h=this.lineHeight;if(!(0>posTop||posTop>config.height-h)){var w=this.characterWidth;if(this.$composition){var val=this.textarea.value.replace(/^\\x01+/,\"\");w*=this.session.$getStringScreenWidth(val)[0],h+=2,posTop-=1}posLeft-=this.scrollLeft,posLeft>this.$size.scrollerWidth-w&&(posLeft=this.$size.scrollerWidth-w),posLeft-=this.scrollBar.width,this.textarea.style.height=h+\"px\",this.textarea.style.width=w+\"px\",this.textarea.style.right=Math.max(0,this.$size.scrollerWidth-posLeft-w)+\"px\",this.textarea.style.bottom=Math.max(0,this.$size.height-posTop-h)+\"px\"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var flint=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+flint},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(padding){this.$padding=padding,this.$textLayer.setPadding(padding),this.$cursorLayer.setPadding(padding),this.$markerFront.setPadding(padding),this.$markerBack.setPadding(padding),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(alwaysVisible){this.setOption(\"hScrollBarAlwaysVisible\",alwaysVisible)},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(changes,force){if(force||changes&&this.session&&this.container.offsetWidth){if(this._signal(\"beforeRender\"),(changes&this.CHANGE_FULL||changes&this.CHANGE_SIZE||changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES||changes&this.CHANGE_SCROLL)&&this.$computeLayerConfig(),changes&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var scrollLeft=this.scroller.scrollLeft;this.scrollLeft=scrollLeft,this.session.setScrollLeft(scrollLeft),this.scroller.className=0==this.scrollLeft?\"ace_scroller\":\"ace_scroller ace_scroll-left\"}if(changes&this.CHANGE_FULL)return this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\"),void 0;if(changes&this.CHANGE_SCROLL)return changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this.$updateScrollBar(),this._signal(\"afterRender\"),void 0;changes&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig)):changes&this.CHANGE_LINES?(this.$updateLines()||changes&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(this.layerConfig):(changes&this.CHANGE_TEXT||changes&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(this.layerConfig),changes&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),changes&this.CHANGE_SIZE&&this.$updateScrollBar(),this._signal(\"afterRender\")}},this.$computeLayerConfig=function(){if(!this.$size.scrollerHeight)return this.onResize(!0);var session=this.session,offset=this.scrollTop%this.lineHeight,minHeight=this.$size.scrollerHeight+this.lineHeight,longestLine=this.$getLongestLine(),horizScroll=this.$hScrollBarAlwaysVisible||0>this.$size.scrollerWidth-longestLine,horizScrollChanged=this.$horizScroll!==horizScroll;this.$horizScroll=horizScroll,horizScrollChanged&&(this.scroller.style.overflowX=horizScroll?\"scroll\":\"hidden\",horizScroll||this.session.setScrollLeft(0));var maxHeight=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,maxHeight-this.$size.scrollerHeight)));var firstRowScreen,firstRowHeight,lineCount=Math.ceil(minHeight/this.lineHeight)-1,firstRow=Math.max(0,Math.round((this.scrollTop-offset)/this.lineHeight)),lastRow=firstRow+lineCount,lineHeight=this.lineHeight;firstRow=session.screenToDocumentRow(firstRow,0);var foldLine=session.getFoldLine(firstRow);foldLine&&(firstRow=foldLine.start.row),firstRowScreen=session.documentToScreenRow(firstRow,0),firstRowHeight=session.getRowLength(firstRow)*lineHeight,lastRow=Math.min(session.screenToDocumentRow(lastRow,0),session.getLength()-1),minHeight=this.$size.scrollerHeight+session.getRowLength(lastRow)*lineHeight+firstRowHeight,offset=this.scrollTop-firstRowScreen*lineHeight,this.layerConfig={width:longestLine,padding:this.$padding,firstRow:firstRow,firstRowScreen:firstRowScreen,lastRow:lastRow,lineHeight:lineHeight,characterWidth:this.characterWidth,minHeight:minHeight,maxHeight:maxHeight,offset:offset,height:this.$size.scrollerHeight},this.$gutterLayer.element.style.marginTop=-offset+\"px\",this.content.style.marginTop=-offset+\"px\",this.content.style.width=longestLine+2*this.$padding+\"px\",this.content.style.height=minHeight+\"px\",horizScrollChanged&&this.onResize(!0)},this.$updateLines=function(){var firstRow=this.$changedLines.firstRow,lastRow=this.$changedLines.lastRow;this.$changedLines=null;var layerConfig=this.layerConfig;return firstRow>layerConfig.lastRow+1||layerConfig.firstRow>lastRow?void 0:1/0===lastRow?(this.$showGutter&&this.$gutterLayer.update(layerConfig),this.$textLayer.update(layerConfig),void 0):(this.$textLayer.updateLines(layerConfig,firstRow,lastRow),!0)},this.$getLongestLine=function(){var charCount=this.session.getScreenWidth();return this.$textLayer.showInvisibles&&(charCount+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(charCount*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(row,className){this.$gutterLayer.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){this.$gutterLayer.removeGutterDecoration(row,className)},this.updateBreakpoints=function(){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(annotations){this.$gutterLayer.setAnnotations(annotations),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(anchor,lead,offset){this.scrollCursorIntoView(anchor,offset),this.scrollCursorIntoView(lead,offset)},this.scrollCursorIntoView=function(cursor,offset){if(0!==this.$size.scrollerHeight){var pos=this.$cursorLayer.getPixelPosition(cursor),left=pos.left,top=pos.top;this.scrollTop>top?(offset&&(top-=offset*this.$size.scrollerHeight),this.session.setScrollTop(top)):this.scrollTop+this.$size.scrollerHeight\u003Ctop+this.lineHeight&&(offset&&(top+=offset*this.$size.scrollerHeight),this.session.setScrollTop(top+this.lineHeight-this.$size.scrollerHeight));var scrollLeft=this.scrollLeft;scrollLeft>left?(this.$padding+2*this.layerConfig.characterWidth>left&&(left=0),this.session.setScrollLeft(left)):scrollLeft+this.$size.scrollerWidth\u003Cleft+this.characterWidth&&this.session.setScrollLeft(Math.round(left+this.characterWidth-this.$size.scrollerWidth))}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(row){this.session.setScrollTop(row*this.lineHeight)},this.alignCursor=function(cursor,alignment){\"number\"==typeof cursor&&(cursor={row:cursor,column:0});var pos=this.$cursorLayer.getPixelPosition(cursor),h=this.$size.scrollerHeight-this.lineHeight,offset=pos.top-h*(alignment||0);return this.session.setScrollTop(offset),offset},this.STEPS=8,this.$calcSteps=function(fromValue,toValue){var i=0,l=this.STEPS,steps=[],func=function(t,x_min,dx){return dx*(Math.pow(t-1,3)+1)+x_min};for(i=0;l>i;++i)steps.push(func(i/this.STEPS,fromValue,toValue-fromValue));return steps},this.scrollToLine=function(line,center,animate,callback){var pos=this.$cursorLayer.getPixelPosition({row:line,column:0}),offset=pos.top;center&&(offset-=this.$size.scrollerHeight/2);var initialScroll=this.scrollTop;this.session.setScrollTop(offset),animate!==!1&&this.animateScrolling(initialScroll,callback)},this.animateScrolling=function(fromValue,callback){var toValue=this.scrollTop;if(this.$animatedScroll&&1e5>Math.abs(fromValue-toValue)){var _self=this,steps=_self.$calcSteps(fromValue,toValue);this.$inScrollAnimation=!0,clearInterval(this.$timer),_self.session.setScrollTop(steps.shift()),this.$timer=setInterval(function(){steps.length?(_self.session.setScrollTop(steps.shift()),_self.session.$scrollTop=toValue):null!=toValue?(_self.session.$scrollTop=-1,_self.session.setScrollTop(toValue),toValue=null):(_self.$timer=clearInterval(_self.$timer),_self.$inScrollAnimation=!1,callback&&callback())},10)}},this.scrollToY=function(scrollTop){this.scrollTop!==scrollTop&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=scrollTop)},this.scrollToX=function(scrollLeft){0>scrollLeft&&(scrollLeft=0),this.scrollLeft!==scrollLeft&&(this.scrollLeft=scrollLeft),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollBy=function(deltaX,deltaY){deltaY&&this.session.setScrollTop(this.session.getScrollTop()+deltaY),deltaX&&this.session.setScrollLeft(this.session.getScrollLeft()+deltaX)},this.isScrollableBy=function(deltaX,deltaY){return 0>deltaY&&this.session.getScrollTop()>=1?!0:deltaY>0&&-1>this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight?!0:void 0},this.pixelToScreenCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),offset=(x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth,row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight),col=Math.round(offset);return{row:row,column:col,side:offset-col>0?1:-1}},this.screenToTextCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),col=Math.round((x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth),row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight);return this.session.screenToDocumentPosition(row,Math.max(col,0))},this.textToScreenCoordinates=function(row,column){var canvasPos=this.scroller.getBoundingClientRect(),pos=this.session.documentToScreenPosition(row,column),x=this.$padding+Math.round(pos.column*this.characterWidth),y=pos.row*this.lineHeight;return{pageX:canvasPos.left+x-this.scrollLeft,pageY:canvasPos.top+y-this.scrollTop}},this.visualizeFocus=function(){dom.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){dom.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,dom.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(dom.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(theme){function afterLoad(theme){if(theme.cssClass){dom.importCssString(theme.cssText,theme.cssClass,_self.container.ownerDocument),_self.theme&&dom.removeCssClass(_self.container,_self.theme.cssClass),_self.$theme=theme.cssClass,_self.theme=theme,dom.addCssClass(_self.container,theme.cssClass),dom.setCssClass(_self.container,\"ace_dark\",theme.isDark);var padding=theme.padding||4;_self.$padding&&padding!=_self.$padding&&_self.setPadding(padding),_self.$size&&(_self.$size.width=0,_self.onResize()),_self._dispatchEvent(\"themeLoaded\",{theme:theme})}}var _self=this;if(this.$themeValue=theme,_self._dispatchEvent(\"themeChange\",{theme:theme}),theme&&\"string\"!=typeof theme)afterLoad(theme);else{var moduleName=theme||\"ace/theme/textmate\";config.loadModule([\"theme\",moduleName],afterLoad)}},this.getTheme=function(){return this.$themeValue},this.setStyle=function(style,include){dom.setCssClass(this.container,style,0!=include)},this.unsetStyle=function(style){dom.removeCssClass(this.container,style)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(VirtualRenderer.prototype),config.defineOptions(VirtualRenderer.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(value){this.$textLayer.setShowInvisibles(value)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(val){\"number\"==typeof val&&(this.$printMarginColumn=val),this.$showPrintMargin=!!val,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(show){this.$gutter.style.display=show?\"block\":\"none\",this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(show){dom.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",show)},initialValue:!1},showFoldWidgets:{set:function(show){this.$gutterLayer.setShowFoldWidgets(show)},initialValue:!0},displayIndentGuides:{set:function(show){this.$textLayer.setDisplayIndentGuides(show)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(shouldHighlight){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=shouldHighlight?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight(),void 0):(this.$gutterLineHighlight=dom.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight),void 0)},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(alwaysVisible){this.$hScrollBarAlwaysVisible=alwaysVisible,this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(size){\"number\"==typeof size&&(size+=\"px\"),this.container.style.fontSize=size,this.updateFontSize()},initialValue:12},fontFamily:{set:function(name){this.container.style.fontFamily=name,this.updateFontSize()}}}),exports.VirtualRenderer=VirtualRenderer}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),oop=acequire(\"../lib/oop\"),lang=acequire(\"../lib/lang\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Gutter=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",parentEl.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this)};(function(){oop.implement(this,EventEmitter),this.setSession=function(session){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=session,session.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(row,className)},this.setAnnotations=function(annotations){this.$annotations=[];for(var rowInfo,row,i=0;annotations.length>i;i++){var annotation=annotations[i],row=annotation.row,rowInfo=this.$annotations[row];rowInfo||(rowInfo=this.$annotations[row]={text:[]});var annoText=annotation.text;annoText=annoText?lang.escapeHTML(annoText):annotation.html||\"\",-1===rowInfo.text.indexOf(annoText)&&rowInfo.text.push(annoText);var type=annotation.type;\"error\"==type?rowInfo.className=\" ace_error\":\"warning\"==type&&\" ace_error\"!=rowInfo.className?rowInfo.className=\" ace_warning\":\"info\"!=type||rowInfo.className||(rowInfo.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(this.$annotations.length){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len);else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.$annotations.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.$annotations.splice.apply(this.$annotations,args)}}},this.update=function(config){for(var emptyAnno={className:\"\"},html=[],i=config.firstRow,lastRow=config.lastRow,fold=this.session.getNextFoldLine(i),foldStart=fold?fold.start.row:1/0,foldWidgets=this.$showFoldWidgets&&this.session.foldWidgets,breakpoints=this.session.$breakpoints,decorations=this.session.$decorations,firstLineNumber=this.session.$firstLineNumber,lastLineNumber=0;;){if(i>foldStart&&(i=fold.end.row+1,fold=this.session.getNextFoldLine(i,fold),foldStart=fold?fold.start.row:1/0),i>lastRow)break;var annotation=this.$annotations[i]||emptyAnno;if(html.push(\"\u003Cdiv class='ace_gutter-cell \",breakpoints[i]||\"\",decorations[i]||\"\",annotation.className,\"' style='height:\",this.session.getRowLength(i)*config.lineHeight,\"px;'>\",lastLineNumber=i+firstLineNumber),foldWidgets){var c=foldWidgets[i];null==c&&(c=foldWidgets[i]=this.session.getFoldWidget(i)),c&&html.push(\"\u003Cspan class='ace_fold-widget ace_\",c,\"start\"==c&&i==foldStart&&fold.end.row>i?\" ace_closed\":\" ace_open\",\"' style='height:\",config.lineHeight,\"px\",\"'>\u003C/span>\")}html.push(\"\u003C/div>\"),i++}this.element=dom.setInnerHtml(this.element,html.join(\"\")),this.element.style.height=config.minHeight+\"px\",this.session.$useWrapMode&&(lastLineNumber=this.session.getLength());var gutterWidth=(\"\"+lastLineNumber).length*config.characterWidth,padding=this.$padding||this.$computePadding();gutterWidth+=padding.left+padding.right,gutterWidth!==this.gutterWidth&&(this.gutterWidth=gutterWidth,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",gutterWidth))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(show){show?dom.addCssClass(this.element,\"ace_folding-enabled\"):dom.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=show,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var style=dom.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(style.paddingLeft)+1,this.$padding.right=parseInt(style.paddingRight),this.$padding},this.getRegion=function(point){var padding=this.$padding||this.$computePadding(),rect=this.element.getBoundingClientRect();return point.x\u003Cpadding.left+rect.left?\"markers\":this.$showFoldWidgets&&point.x>rect.right-padding.right?\"foldWidgets\":void 0}}).call(Gutter.prototype),exports.Gutter=Gutter}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(acequire,exports){var Range=acequire(\"../range\").Range,dom=acequire(\"../lib/dom\"),Marker=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",parentEl.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setMarkers=function(markers){this.markers=markers},this.update=function(config){var config=config||this.config;if(config){this.config=config;var html=[];for(var key in this.markers){var marker=this.markers[key];if(marker.range){var range=marker.range.clipRows(config.firstRow,config.lastRow);if(!range.isEmpty())if(range=range.toScreenRange(this.session),marker.renderer){var top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;marker.renderer(html,range,left,top,config)}else\"fullLine\"==marker.type?this.drawFullLineMarker(html,range,marker.clazz,config):\"screenLine\"==marker.type?this.drawScreenLineMarker(html,range,marker.clazz,config):range.isMultiLine()?\"text\"==marker.type?this.drawTextMarker(html,range,marker.clazz,config):this.drawMultiLineMarker(html,range,marker.clazz,config):this.drawSingleLineMarker(html,range,marker.clazz+\" ace_start\",config)}else marker.update(html,this,this.session,config)}this.element=dom.setInnerHtml(this.element,html.join(\"\"))}},this.$getTop=function(row,layerConfig){return(row-layerConfig.firstRowScreen)*layerConfig.lineHeight},this.drawTextMarker=function(stringBuilder,range,clazz,layerConfig){var row=range.start.row,lineRange=new Range(row,range.start.column,row,this.session.getScreenLastRowColumn(row));for(this.drawSingleLineMarker(stringBuilder,lineRange,clazz+\" ace_start\",layerConfig,1,\"text\"),row=range.end.row,lineRange=new Range(row,0,row,range.end.column),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,0,\"text\"),row=range.start.row+1;range.end.row>row;row++)lineRange.start.row=row,lineRange.end.row=row,lineRange.end.column=this.session.getScreenLastRowColumn(row),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,1,\"text\")},this.drawMultiLineMarker=function(stringBuilder,range,clazz,config){var padding=this.$padding,height=config.lineHeight,top=this.$getTop(range.start.row,config),left=padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\" ace_start' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\"),top=this.$getTop(range.end.row,config);var width=range.end.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"),height=(range.end.row-range.start.row-1)*config.lineHeight,0>height||(top=this.$getTop(range.start.row+1,config),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"))},this.drawSingleLineMarker=function(stringBuilder,range,clazz,config,extraLength){var height=config.lineHeight,width=(range.end.column+(extraLength||0)-range.start.column)*config.characterWidth,top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\")\n},this.drawFullLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;range.start.row!=range.end.row&&(height+=this.$getTop(range.end.row,config)-top),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")},this.drawScreenLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")}}).call(Marker.prototype),exports.Marker=Marker}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),useragent=acequire(\"../lib/useragent\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Text=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",parentEl.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){oop.implement(this,EventEmitter),this.EOF_CHAR=\"¶\",this.EOL_CHAR=\"¬\",this.TAB_CHAR=\"→\",this.SPACE_CHAR=\"·\",this.$padding=0,this.setPadding=function(padding){this.$padding=padding,this.element.style.padding=\"0 \"+padding+\"px\"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var size=this.$measureSizes();if(size&&(this.$characterSize.width!==size.width||this.$characterSize.height!==size.height)){this.$measureNode.style.fontWeight=\"bold\";var boldSize=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=size,this.allowBoldFonts=boldSize&&boldSize.width===size.width&&boldSize.height===size.height,this._emit(\"changeCharacterSize\",{data:size})}},this.$pollSizeChanges=function(){var self=this;this.$pollSizeChangesTimer=setInterval(function(){self.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=useragent.isIE||useragent.isOldGecko?function(){var n=1e3;if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;if(style.width=style.height=\"auto\",style.left=style.top=40*-n+\"px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=lang.stringRepeat(\"Xy\",n),this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(measureNode);else{for(var container=this.element.parentNode;!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;container.appendChild(measureNode)}}if(!this.element.offsetWidth)return null;var style=this.$measureNode.style,computedStyle=dom.computedStyle(this.element);for(var prop in this.$fontStyles)style[prop]=computedStyle[prop];var size={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(2*n)};return 0==size.width||0==size.height?null:size}:function(){if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;style.width=style.height=\"auto\",style.left=style.top=\"-100px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=\"X\";for(var container=this.element.parentNode;container&&!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;if(!container)return this.$measureNode=null;container.appendChild(measureNode)}var rect=this.$measureNode.getBoundingClientRect(),size={height:rect.height,width:rect.width};return 0==size.width||0==size.height?null:size},this.setSession=function(session){this.session=session,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(showInvisibles){return this.showInvisibles==showInvisibles?!1:(this.showInvisibles=showInvisibles,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(display){return this.displayIndentGuides==display?!1:(this.displayIndentGuides=display,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var tabSize=this.session.getTabSize();this.tabSize=tabSize;for(var tabStr=this.$tabStrings=[0],i=1;tabSize+1>i;i++)this.showInvisibles?tabStr.push(\"\u003Cspan class='ace_invisible'>\"+this.TAB_CHAR+lang.stringRepeat(\" \",i-1)+\"\u003C/span>\"):tabStr.push(lang.stringRepeat(\" \",i));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var className=\"ace_indent-guide\";if(this.showInvisibles){className+=\" ace_invisible\";var spaceContent=lang.stringRepeat(this.SPACE_CHAR,this.tabSize),tabContent=this.TAB_CHAR+lang.stringRepeat(\" \",this.tabSize-1)}else var spaceContent=lang.stringRepeat(\" \",this.tabSize),tabContent=spaceContent;this.$tabStrings[\" \"]=\"\u003Cspan class='\"+className+\"'>\"+spaceContent+\"\u003C/span>\",this.$tabStrings[\"\t\"]=\"\u003Cspan class='\"+className+\"'>\"+tabContent+\"\u003C/span>\"}},this.updateLines=function(config,firstRow,lastRow){(this.config.lastRow!=config.lastRow||this.config.firstRow!=config.firstRow)&&this.scrollLines(config),this.config=config;for(var first=Math.max(firstRow,config.firstRow),last=Math.min(lastRow,config.lastRow),lineElements=this.element.childNodes,lineElementsIdx=0,row=config.firstRow;first>row;row++){var foldLine=this.session.getFoldLine(row);if(foldLine){if(foldLine.containsRow(first)){first=foldLine.start.row;break}row=foldLine.end.row}lineElementsIdx++}for(var row=first,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>last)break;var lineElement=lineElements[lineElementsIdx++];if(lineElement){var html=[];this.$renderLine(html,row,!this.$useLineGroups(),row==foldStart?foldLine:!1),dom.setInnerHtml(lineElement,html.join(\"\"))}row++}},this.scrollLines=function(config){var oldConfig=this.config;if(this.config=config,!oldConfig||oldConfig.lastRow\u003Cconfig.firstRow)return this.update(config);if(config.lastRow\u003ColdConfig.firstRow)return this.update(config);var el=this.element;if(oldConfig.firstRow\u003Cconfig.firstRow)for(var row=this.session.getFoldedRowCount(oldConfig.firstRow,config.firstRow-1);row>0;row--)el.removeChild(el.firstChild);if(oldConfig.lastRow>config.lastRow)for(var row=this.session.getFoldedRowCount(config.lastRow+1,oldConfig.lastRow);row>0;row--)el.removeChild(el.lastChild);if(config.firstRow\u003ColdConfig.firstRow){var fragment=this.$renderLinesFragment(config,config.firstRow,oldConfig.firstRow-1);el.firstChild?el.insertBefore(fragment,el.firstChild):el.appendChild(fragment)}if(config.lastRow>oldConfig.lastRow){var fragment=this.$renderLinesFragment(config,oldConfig.lastRow+1,config.lastRow);el.appendChild(fragment)}},this.$renderLinesFragment=function(config,firstRow,lastRow){for(var fragment=this.element.ownerDocument.createDocumentFragment(),row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;var container=dom.createElement(\"div\"),html=[];if(this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),container.innerHTML=html.join(\"\"),this.$useLineGroups())container.className=\"ace_line_group\",fragment.appendChild(container);else for(var lines=container.childNodes;lines.length;)fragment.appendChild(lines[0]);row++}return fragment},this.update=function(config){this.config=config;for(var html=[],firstRow=config.firstRow,lastRow=config.lastRow,row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;this.$useLineGroups()&&html.push(\"\u003Cdiv class='ace_line_group'>\"),this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),this.$useLineGroups()&&html.push(\"\u003C/div>\"),row++}this.element=dom.setInnerHtml(this.element,html.join(\"\"))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(stringBuilder,screenColumn,token,value){var self=this,replaceReg=/\\t|&|\u003C|( +)|([\\x00-\\x1f\\x80-\\xa0\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g,replaceFunc=function(c,a,b,tabIdx){if(a)return self.showInvisibles?\"\u003Cspan class='ace_invisible'>\"+lang.stringRepeat(self.SPACE_CHAR,c.length)+\"\u003C/span>\":lang.stringRepeat(\" \",c.length);if(\"&\"==c)return\"&\";if(\"\u003C\"==c)return\"<\";if(\"\t\"==c){var tabSize=self.session.getScreenTabSize(screenColumn+tabIdx);return screenColumn+=tabSize-1,self.$tabStrings[tabSize]}if(\" \"==c){var classToUse=self.showInvisibles?\"ace_cjk ace_invisible\":\"ace_cjk\",space=self.showInvisibles?self.SPACE_CHAR:\"\";return screenColumn+=1,\"\u003Cspan class='\"+classToUse+\"' style='width:\"+2*self.config.characterWidth+\"px'>\"+space+\"\u003C/span>\"}return b?\"\u003Cspan class='ace_invisible ace_invalid'>\"+self.SPACE_CHAR+\"\u003C/span>\":(screenColumn+=1,\"\u003Cspan class='ace_cjk' style='width:\"+2*self.config.characterWidth+\"px'>\"+c+\"\u003C/span>\")},output=value.replace(replaceReg,replaceFunc);if(this.$textToken[token.type])stringBuilder.push(output);else{var classes=\"ace_\"+token.type.replace(/\\./g,\" ace_\"),style=\"\";\"fold\"==token.type&&(style=\" style='width:\"+token.value.length*this.config.characterWidth+\"px;' \"),stringBuilder.push(\"\u003Cspan class='\",classes,\"'\",style,\">\",output,\"\u003C/span>\")}return screenColumn+value.length},this.renderIndentGuide=function(stringBuilder,value){var cols=value.search(this.$indentGuideRe);return 0>=cols?value:\" \"==value[0]?(cols-=cols%this.tabSize,stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"],cols/this.tabSize)),value.substr(cols)):\"\t\"==value[0]?(stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\t\"],cols)),value.substr(cols)):value},this.$renderWrappedLine=function(stringBuilder,tokens,splits,onlyContents){for(var chars=0,split=0,splitChars=splits[0],screenColumn=0,i=0;tokens.length>i;i++){var token=tokens[i],value=token.value;if(0==i&&this.displayIndentGuides){if(chars=value.length,value=this.renderIndentGuide(stringBuilder,value),!value)continue;chars-=value.length}if(splitChars>chars+value.length)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value),chars+=value.length;else{for(;chars+value.length>=splitChars;)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value.substring(0,splitChars-chars)),value=value.substring(splitChars-chars),chars=splitChars,onlyContents||stringBuilder.push(\"\u003C/div>\",\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),split++,screenColumn=0,splitChars=splits[split]||Number.MAX_VALUE;0!=value.length&&(chars+=value.length,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value))}}},this.$renderSimpleLine=function(stringBuilder,tokens){var screenColumn=0,token=tokens[0],value=token.value;this.displayIndentGuides&&(value=this.renderIndentGuide(stringBuilder,value)),value&&(screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value));for(var i=1;tokens.length>i;i++)token=tokens[i],value=token.value,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value)},this.$renderLine=function(stringBuilder,row,onlyContents,foldLine){if(foldLine||0==foldLine||(foldLine=this.session.getFoldLine(row)),foldLine)var tokens=this.$getFoldLineTokens(row,foldLine);else var tokens=this.session.getTokens(row);if(onlyContents||stringBuilder.push(\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),tokens.length){var splits=this.session.getRowSplitData(row);splits&&splits.length?this.$renderWrappedLine(stringBuilder,tokens,splits,onlyContents):this.$renderSimpleLine(stringBuilder,tokens)}this.showInvisibles&&(foldLine&&(row=foldLine.end.row),stringBuilder.push(\"\u003Cspan class='ace_invisible'>\",row==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"\u003C/span>\")),onlyContents||stringBuilder.push(\"\u003C/div>\")},this.$getFoldLineTokens=function(row,foldLine){function addTokens(tokens,from,to){for(var idx=0,col=0;from>col+tokens[idx].value.length;)if(col+=tokens[idx].value.length,idx++,idx==tokens.length)return;if(col!=from){var value=tokens[idx].value.substring(from-col);value.length>to-from&&(value=value.substring(0,to-from)),renderTokens.push({type:tokens[idx].type,value:value}),col=from+value.length,idx+=1}for(;to>col&&tokens.length>idx;){var value=tokens[idx].value;value.length+col>to?renderTokens.push({type:tokens[idx].type,value:value.substring(0,to-col)}):renderTokens.push(tokens[idx]),col+=value.length,idx+=1}}var session=this.session,renderTokens=[],tokens=session.getTokens(row);return foldLine.walk(function(placeholder,row,column,lastColumn,isNewRow){null!=placeholder?renderTokens.push({type:\"fold\",value:placeholder}):(isNewRow&&(tokens=session.getTokens(row)),tokens.length&&addTokens(tokens,lastColumn,column))},foldLine.end.row,this.session.getLine(foldLine.end.row).length),renderTokens},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(Text.prototype),exports.Text=Text}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),Cursor=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",parentEl.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),dom.addCssClass(this.element,\"ace_hidden-cursors\")};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setBlinking=function(blinking){blinking!=this.isBlinking&&(this.isBlinking=blinking,this.restartTimer())},this.setBlinkInterval=function(blinkInterval){blinkInterval!=this.blinkInterval&&(this.blinkInterval=blinkInterval,this.restartTimer())},this.setSmoothBlinking=function(smoothBlinking){smoothBlinking!=this.smoothBlinking&&(this.smoothBlinking=smoothBlinking,smoothBlinking?dom.addCssClass(this.element,\"ace_smooth-blinking\"):dom.removeCssClass(this.element,\"ace_smooth-blinking\"),this.restartTimer())},this.addCursor=function(){var el=dom.createElement(\"div\");return el.className=\"ace_cursor\",this.element.appendChild(el),this.cursors.push(el),el},this.removeCursor=function(){if(this.cursors.length>1){var el=this.cursors.pop();return el.parentNode.removeChild(el),el}},this.hideCursor=function(){this.isVisible=!1,dom.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,dom.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&dom.removeCssClass(this.element,\"ace_smooth-blinking\");for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";if(this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){dom.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));var blink=function(){this.timeoutId=setTimeout(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";blink()}.bind(this),this.blinkInterval),blink()}},this.getPixelPosition=function(position,onScreen){if(!this.config||!this.session)return{left:0,top:0};position||(position=this.session.selection.getCursor());var pos=this.session.documentToScreenPosition(position),cursorLeft=this.$padding+pos.column*this.config.characterWidth,cursorTop=(pos.row-(onScreen?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:cursorLeft,top:cursorTop}},this.update=function(config){this.config=config;var selections=this.session.$selectionMarkers,i=0,cursorIndex=0;(void 0===selections||0===selections.length)&&(selections=[{cursor:null}]);for(var i=0,n=selections.length;n>i;i++){var pixelPos=this.getPixelPosition(selections[i].cursor,!0);if(!((pixelPos.top>config.height+config.offset||pixelPos.top\u003C-config.offset)&&i>1)){var style=(this.cursors[cursorIndex++]||this.addCursor()).style;style.left=pixelPos.left+\"px\",style.top=pixelPos.top+\"px\",style.width=config.characterWidth+\"px\",style.height=config.lineHeight+\"px\"}}for(;this.cursors.length>cursorIndex;)this.removeCursor();var overwrite=this.session.getOverwrite();this.$setOverwrite(overwrite),this.$pixelPos=pixelPos,this.restartTimer()},this.$setOverwrite=function(overwrite){overwrite!=this.overwrite&&(this.overwrite=overwrite,overwrite?dom.addCssClass(this.element,\"ace_overwrite-cursors\"):dom.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(Cursor.prototype),exports.Cursor=Cursor}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,ScrollBar=function(parent){this.element=dom.createElement(\"div\"),this.element.className=\"ace_scrollbar\",this.inner=dom.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),parent.appendChild(this.element),this.width=dom.scrollbarWidth(parent.ownerDocument),this.element.style.width=(this.width||15)+5+\"px\",event.addListener(this.element,\"scroll\",this.onScroll.bind(this))};(function(){oop.implement(this,EventEmitter),this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit(\"scroll\",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.width},this.setHeight=function(height){this.element.style.height=height+\"px\"},this.setInnerHeight=function(height){this.inner.style.height=height+\"px\"},this.setScrollTop=function(scrollTop){this.scrollTop!=scrollTop&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=scrollTop)}}).call(ScrollBar.prototype),exports.ScrollBar=ScrollBar}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"./lib/event\"),RenderLoop=function(onRender,win){this.onRender=onRender,this.pending=!1,this.changes=0,this.window=win||window};(function(){this.schedule=function(change){if(this.changes=this.changes|change,!this.pending){this.pending=!0;var _self=this;event.nextFrame(function(){_self.pending=!1;for(var changes;changes=_self.changes;)_self.changes=0,_self.onRender(changes)},this.window)}}}).call(RenderLoop.prototype),exports.RenderLoop=RenderLoop}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\"],function(acequire,exports){function find(session,needle,dir){return search.$options.wrap=!0,search.$options.needle=needle,search.$options.backwards=-1==dir,search.find(session)}function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function MultiSelect(editor){editor.$onAddRange=editor.$onAddRange.bind(editor),editor.$onRemoveRange=editor.$onRemoveRange.bind(editor),editor.$onMultiSelect=editor.$onMultiSelect.bind(editor),editor.$onSingleSelect=editor.$onSingleSelect.bind(editor),exports.onSessionChange.call(editor,editor),editor.on(\"changeSession\",exports.onSessionChange.bind(editor)),editor.on(\"mousedown\",onMouseDown),editor.commands.addCommands(commands.defaultCommands),addAltCursorListeners(editor)}function addAltCursorListeners(editor){function reset(){altCursor&&(contentEl.style.cursor=\"\",altCursor=!1)}var el=editor.textInput.getElement(),altCursor=!1,contentEl=editor.renderer.content;event.addListener(el,\"keydown\",function(e){18!=e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?altCursor&&(contentEl.style.cursor=\"\"):altCursor||(contentEl.style.cursor=\"crosshair\",altCursor=!0)}),event.addListener(el,\"keyup\",reset),event.addListener(el,\"blur\",reset)}var RangeList=acequire(\"./range_list\").RangeList,Range=acequire(\"./range\").Range,Selection=acequire(\"./selection\").Selection,onMouseDown=acequire(\"./mouse/multi_select_handler\").onMouseDown,event=acequire(\"./lib/event\"),lang=acequire(\"./lib/lang\"),commands=acequire(\"./commands/multi_select_commands\");exports.commands=commands.defaultCommands.concat(commands.multiSelectCommands);var Search=acequire(\"./search\").Search,search=new Search,EditSession=acequire(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(EditSession.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(range,$blockChangeEvents){if(range){if(!this.inMultiSelectMode&&0==this.rangeCount){var oldRange=this.toOrientedRange();if(this.rangeList.add(oldRange),this.rangeList.add(range),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),$blockChangeEvents||this.fromOrientedRange(range);this.rangeList.removeAll(),this.rangeList.add(oldRange),this.$onAddRange(oldRange)}range.cursor||(range.cursor=range.end);var removed=this.rangeList.add(range);return this.$onAddRange(range),removed.length&&this.$onRemoveRange(removed),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),$blockChangeEvents||this.fromOrientedRange(range)}},this.toSingleRange=function(range){range=range||this.ranges[0];var removed=this.rangeList.removeAll();removed.length&&this.$onRemoveRange(removed),range&&this.fromOrientedRange(range)},this.substractPoint=function(pos){var removed=this.rangeList.substractPoint(pos);return removed?(this.$onRemoveRange(removed),removed[0]):void 0},this.mergeOverlappingRanges=function(){var removed=this.rangeList.merge();removed.length?this.$onRemoveRange(removed):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(range){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(range),this._emit(\"addRange\",{range:range})},this.$onRemoveRange=function(removed){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var lastRange=this.rangeList.ranges.pop();removed.push(lastRange),this.rangeCount=0}for(var i=removed.length;i--;){var index=this.ranges.indexOf(removed[i]);this.ranges.splice(index,1)}this._emit(\"removeRange\",{ranges:removed}),0==this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),lastRange=lastRange||this.ranges[0],lastRange&&!lastRange.isEqual(this.getRange())&&this.fromOrientedRange(lastRange)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new RangeList,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var range=this.getRange(),isBackwards=this.isBackwards(),startRow=range.start.row,endRow=range.end.row;if(startRow==endRow){if(isBackwards)var start=range.end,end=range.start;else var start=range.start,end=range.end;return this.addRange(Range.fromPoints(end,end)),this.addRange(Range.fromPoints(start,start)),void 0}var rectSel=[],r=this.getLineRange(startRow,!0);r.start.column=range.start.column,rectSel.push(r);for(var i=startRow+1;endRow>i;i++)rectSel.push(this.getLineRange(i,!0));r=this.getLineRange(endRow,!0),r.end.column=range.end.column,rectSel.push(r),rectSel.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var cursor=this.session.documentToScreenPosition(this.selectionLead),anchor=this.session.documentToScreenPosition(this.selectionAnchor),rectSel=this.rectangularRangeBlock(cursor,anchor);rectSel.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(screenCursor,screenAnchor,includeEmptyLines){var rectSel=[],xBackwards=screenCursor.column\u003CscreenAnchor.column;if(xBackwards)var startColumn=screenCursor.column,endColumn=screenAnchor.column;else var startColumn=screenAnchor.column,endColumn=screenCursor.column;var yBackwards=screenCursor.row\u003CscreenAnchor.row;if(yBackwards)var startRow=screenCursor.row,endRow=screenAnchor.row;else var startRow=screenAnchor.row,endRow=screenCursor.row;0>startColumn&&(startColumn=0),0>startRow&&(startRow=0),startRow==endRow&&(includeEmptyLines=!0);for(var row=startRow;endRow>=row;row++){var range=Range.fromPoints(this.session.screenToDocumentPosition(row,startColumn),this.session.screenToDocumentPosition(row,endColumn));if(range.isEmpty()){if(docEnd&&isSamePoint(range.end,docEnd))break;var docEnd=range.end}range.cursor=xBackwards?range.start:range.end,rectSel.push(range)}if(yBackwards&&rectSel.reverse(),!includeEmptyLines){for(var end=rectSel.length-1;rectSel[end].isEmpty()&&end>0;)end--;if(end>0)for(var start=0;rectSel[start].isEmpty();)start++;for(var i=end;i>=start;i--)rectSel[i].isEmpty()&&rectSel.splice(i,1)}return rectSel}}.call(Selection.prototype);var Editor=acequire(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(orientedRange){orientedRange.cursor||(orientedRange.cursor=orientedRange.end);var style=this.getSelectionStyle();return orientedRange.marker=this.session.addMarker(orientedRange,\"ace_selection\",style),this.session.$selectionMarkers.push(orientedRange),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,orientedRange},this.removeSelectionMarker=function(range){if(range.marker){this.session.removeMarker(range.marker);var index=this.session.$selectionMarkers.indexOf(range);-1!=index&&this.session.$selectionMarkers.splice(index,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(ranges){for(var markerList=this.session.$selectionMarkers,i=ranges.length;i--;){var range=ranges[i];if(range.marker){this.session.removeMarker(range.marker);var index=markerList.indexOf(range);-1!=index&&markerList.splice(index,1)}}this.session.selectionMarkerCount=markerList.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(commands.keyboardHandler),this.commands.on(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(commands.keyboardHandler),this.commands.removeEventListener(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onMultiSelectExec=function(e){var command=e.command,editor=e.editor;editor.multiSelect&&(command.multiSelectAction?\"forEach\"==command.multiSelectAction?editor.forEachSelection(command,e.args):\"forEachLine\"==command.multiSelectAction?editor.forEachSelection(command,e.args,!0):\"single\"==command.multiSelectAction?(editor.exitMultiSelectMode(),command.exec(editor,e.args||{})):command.multiSelectAction(editor,e.args||{}):(command.exec(editor,e.args||{}),editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()),editor.multiSelect.mergeOverlappingRanges()),e.preventDefault())},this.forEachSelection=function(cmd,args,$byLines){if(!this.inVirtualSelectionMode){var session=this.session,selection=this.selection,rangeList=selection.rangeList,reg=selection._eventRegistry;selection._eventRegistry={};var tmpSel=new Selection(session);this.inVirtualSelectionMode=!0;for(var i=rangeList.ranges.length;i--;){if($byLines)for(;i>0&&rangeList.ranges[i].start.row==rangeList.ranges[i-1].end.row;)i--;tmpSel.fromOrientedRange(rangeList.ranges[i]),this.selection=session.selection=tmpSel,cmd.exec(this,args||{}),tmpSel.toOrientedRange(rangeList.ranges[i])}tmpSel.detach(),this.selection=session.selection=selection,this.inVirtualSelectionMode=!1,selection._eventRegistry=reg,selection.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()}},this.exitMultiSelectMode=function(){this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getCopyText=function(){var text=\"\";if(this.inMultiSelectMode){var ranges=this.multiSelect.rangeList.ranges;text=[];for(var i=0;ranges.length>i;i++)text.push(this.session.getTextRange(ranges[i]));text=text.join(this.session.getDocument().getNewLineCharacter())}else this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange()));return text},this.onPaste=function(text){if(!this.$readOnly){if(this._signal(\"paste\",text),!this.inMultiSelectMode||this.inVirtualSelectionMode)return this.insert(text);var lines=text.split(/\\r\\n|\\r|\\n/),ranges=this.selection.rangeList.ranges;if(lines.length>ranges.length||2>=lines.length||!lines[1])return this.commands.exec(\"insertstring\",this,text);for(var i=ranges.length;i--;){var range=ranges[i];range.isEmpty()||this.session.remove(range),this.session.insert(range.start,lines[i])}}},this.findAll=function(needle,options,additive){options=options||{},options.needle=needle||options.needle,this.$search.set(options);var ranges=this.$search.findAll(this.session);if(!ranges.length)return 0;this.$blockScrolling+=1;var selection=this.multiSelect;additive||selection.toSingleRange(ranges[0]);for(var i=ranges.length;i--;)selection.addRange(ranges[i],!0);return this.$blockScrolling-=1,ranges.length},this.selectMoreLines=function(dir,skip){var range=this.selection.toOrientedRange(),isBackwards=range.cursor==range.end,screenLead=this.session.documentToScreenPosition(range.cursor);this.selection.$desiredColumn&&(screenLead.column=this.selection.$desiredColumn);var lead=this.session.screenToDocumentPosition(screenLead.row+dir,screenLead.column);if(range.isEmpty())var anchor=lead;else var screenAnchor=this.session.documentToScreenPosition(isBackwards?range.end:range.start),anchor=this.session.screenToDocumentPosition(screenAnchor.row+dir,screenAnchor.column);if(isBackwards){var newRange=Range.fromPoints(lead,anchor);newRange.cursor=newRange.start}else{var newRange=Range.fromPoints(anchor,lead);newRange.cursor=newRange.end\n}if(newRange.desiredColumn=screenLead.column,this.selection.inMultiSelectMode){if(skip)var toRemove=range.cursor}else this.selection.addRange(range);this.selection.addRange(newRange),toRemove&&this.selection.substractPoint(toRemove)},this.transposeSelections=function(dir){for(var session=this.session,sel=session.multiSelect,all=sel.ranges,i=all.length;i--;){var range=all[i];if(range.isEmpty()){var tmp=session.getWordRange(range.start.row,range.start.column);range.start.row=tmp.start.row,range.start.column=tmp.start.column,range.end.row=tmp.end.row,range.end.column=tmp.end.column}}sel.mergeOverlappingRanges();for(var words=[],i=all.length;i--;){var range=all[i];words.unshift(session.getTextRange(range))}0>dir?words.unshift(words.pop()):words.push(words.shift());for(var i=all.length;i--;){var range=all[i],tmp=range.clone();session.replace(range,words[i]),range.start.row=tmp.start.row,range.start.column=tmp.start.column}},this.selectMore=function(dir,skip){var session=this.session,sel=session.multiSelect,range=sel.toOrientedRange();if(range.isEmpty()){var range=session.getWordRange(range.start.row,range.start.column);range.cursor=range.end,this.multiSelect.addRange(range)}var needle=session.getTextRange(range),newRange=find(session,needle,dir);newRange&&(newRange.cursor=-1==dir?newRange.start:newRange.end,this.multiSelect.addRange(newRange)),skip&&this.multiSelect.substractPoint(range.cursor)},this.alignCursors=function(){var session=this.session,sel=session.multiSelect,ranges=sel.ranges;if(ranges.length){var row=-1,sameRowRanges=ranges.filter(function(r){return r.cursor.row==row?!0:(row=r.cursor.row,void 0)});sel.$onRemoveRange(sameRowRanges);var maxCol=0,minSpace=1/0,spaceOffsets=ranges.map(function(r){var p=r.cursor,line=session.getLine(p.row),spaceOffset=line.substr(p.column).search(/\\S/g);return-1==spaceOffset&&(spaceOffset=0),p.column>maxCol&&(maxCol=p.column),minSpace>spaceOffset&&(minSpace=spaceOffset),spaceOffset});ranges.forEach(function(r,i){var p=r.cursor,l=maxCol-p.column,d=spaceOffsets[i]-minSpace;l>d?session.insert(p,lang.stringRepeat(\" \",l-d)):session.remove(new Range(p.row,p.column,p.row,p.column-l+d)),r.start.column=r.end.column=maxCol,r.start.row=r.end.row=p.row,r.cursor=r.end}),sel.fromOrientedRange(ranges[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var range=this.selection.getRange(),fr=range.start.row,lr=range.end.row,lines=this.session.doc.removeLines(fr,lr);lines=this.$reAlignText(lines),this.session.doc.insertLines(fr,lines),range.start.column=0,range.end.column=lines[lines.length-1].length,this.selection.setRange(range)}},this.$reAlignText=function(lines){function spaces(n){return lang.stringRepeat(\" \",n)}function alignLeft(m){return m[2]?spaces(startW)+m[2]+spaces(textW-m[2].length+endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function alignRight(m){return m[2]?spaces(startW+textW-m[2].length)+m[2]+spaces(endW,\" \")+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function unAlign(m){return m[2]?spaces(startW)+m[2]+spaces(endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}var startW,textW,endW,isLeftAligned=!0,isRightAligned=!0;return lines.map(function(line){var m=line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return m?null==startW?(startW=m[1].length,textW=m[2].length,endW=m[3].length,m):(startW+textW+endW!=m[1].length+m[2].length+m[3].length&&(isRightAligned=!1),startW!=m[1].length&&(isLeftAligned=!1),startW>m[1].length&&(startW=m[1].length),m[2].length>textW&&(textW=m[2].length),endW>m[3].length&&(endW=m[3].length),m):[line]}).map(isLeftAligned?isRightAligned?alignRight:alignLeft:unAlign)}}).call(Editor.prototype),exports.onSessionChange=function(e){var session=e.session;session.multiSelect||(session.$selectionMarkers=[],session.selection.$initRangeList(),session.multiSelect=session.selection),this.multiSelect=session.multiSelect;var oldSession=e.oldSession;oldSession&&(oldSession.multiSelect.removeEventListener(\"addRange\",this.$onAddRange),oldSession.multiSelect.removeEventListener(\"removeRange\",this.$onRemoveRange),oldSession.multiSelect.removeEventListener(\"multiSelect\",this.$onMultiSelect),oldSession.multiSelect.removeEventListener(\"singleSelect\",this.$onSingleSelect)),session.multiSelect.on(\"addRange\",this.$onAddRange),session.multiSelect.on(\"removeRange\",this.$onRemoveRange),session.multiSelect.on(\"multiSelect\",this.$onMultiSelect),session.multiSelect.on(\"singleSelect\",this.$onSingleSelect),this.inMultiSelectMode!=session.selection.inMultiSelectMode&&(session.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},exports.MultiSelect=MultiSelect}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function onMouseDown(e){var ev=e.domEvent,alt=ev.altKey,shift=ev.shiftKey,ctrl=e.getAccelKey(),button=e.getButton();if(e.editor.inMultiSelectMode&&2==button)return e.editor.textInput.onContextMenu(e.domEvent),void 0;if(!ctrl&&!alt)return 0==button&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode(),void 0;var editor=e.editor,selection=editor.selection,isMultiSelect=editor.inMultiSelectMode,pos=e.getDocumentPosition(),cursor=selection.getCursor(),inSelection=e.inSelection()||selection.isEmpty()&&isSamePoint(pos,cursor),mouseX=e.x,mouseY=e.y,onMouseSelection=function(e){mouseX=e.clientX,mouseY=e.clientY},blockSelect=function(){var newCursor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),cursor=session.screenToDocumentPosition(newCursor.row,newCursor.column);isSamePoint(screenCursor,newCursor)&&isSamePoint(cursor,selection.selectionLead)||(screenCursor=newCursor,editor.selection.moveCursorToPosition(cursor),editor.selection.clearSelection(),editor.renderer.scrollCursorIntoView(),editor.removeSelectionMarkers(rectSel),rectSel=selection.rectangularRangeBlock(screenCursor,screenAnchor),rectSel.forEach(editor.addSelectionMarker,editor),editor.updateSelectionMarkers())},session=editor.session,screenAnchor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),screenCursor=screenAnchor;if(!ctrl||shift||alt||0!=button){if(alt&&0==button){e.stop(),isMultiSelect&&!ctrl?selection.toSingleRange():!isMultiSelect&&ctrl&&selection.addRange();var rectSel=[];shift?(screenAnchor=session.documentToScreenPosition(selection.lead),blockSelect()):(selection.moveCursorToPosition(pos),selection.clearSelection());var onMouseSelectionEnd=function(){clearInterval(timerId),editor.removeSelectionMarkers(rectSel);for(var i=0;rectSel.length>i;i++)selection.addRange(rectSel[i])},onSelectionInterval=blockSelect;event.capture(editor.container,onMouseSelection,onMouseSelectionEnd);var timerId=setInterval(function(){onSelectionInterval()},20);return e.preventDefault()}}else{if(!isMultiSelect&&inSelection)return;if(!isMultiSelect){var range=selection.toOrientedRange();editor.addSelectionMarker(range)}var oldRange=selection.rangeList.rangeAtPoint(pos);editor.once(\"mouseup\",function(){var tmpSel=selection.toOrientedRange();oldRange&&tmpSel.isEmpty()&&isSamePoint(oldRange.cursor,tmpSel.cursor)?selection.substractPoint(tmpSel.cursor):(range&&(editor.removeSelectionMarker(range),selection.addRange(range)),selection.addRange(tmpSel))})}}var event=acequire(\"../lib/event\");exports.onMouseDown=onMouseDown}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(acequire,exports){exports.defaultCommands=[{name:\"addCursorAbove\",exec:function(editor){editor.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},readonly:!0},{name:\"addCursorBelow\",exec:function(editor){editor.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},readonly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(editor){editor.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},readonly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(editor){editor.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},readonly:!0},{name:\"selectMoreBefore\",exec:function(editor){editor.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},readonly:!0},{name:\"selectMoreAfter\",exec:function(editor){editor.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},readonly:!0},{name:\"selectNextBefore\",exec:function(editor){editor.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},readonly:!0},{name:\"selectNextAfter\",exec:function(editor){editor.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},readonly:!0},{name:\"splitIntoLines\",exec:function(editor){editor.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readonly:!0},{name:\"alignCursors\",exec:function(editor){editor.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"}}],exports.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(editor){editor.exitMultiSelectMode()},readonly:!0,isAvailable:function(editor){return editor&&editor.inMultiSelectMode}}];var HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler;exports.keyboardHandler=new HashHandler(exports.multiSelectCommands)}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/config\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,config=acequire(\"../config\"),WorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.onError=this.onError.bind(this);var workerUrl;if(config.get(\"packaged\"))workerUrl=config.moduleUrl(mod.id,\"worker\");else{var normalizePath=this.$normalizePath;acequire.nameToUrl&&!acequire.toUrl&&(acequire.toUrl=acequire.nameToUrl),workerUrl=normalizePath(acequire.toUrl(\"ace/worker/worker.js\",null,\"_\"));var tlns={};topLevelNamespaces.forEach(function(ns){tlns[ns]=normalizePath(acequire.toUrl(ns,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}var workerSrc=mod.src,Blob=require(\"w3c-blob\"),blob=new Blob([workerSrc],{type:\"application/javascript\"}),blobUrl=(window.URL||window.webkitURL).createObjectURL(blob);this.$worker=new Worker(blobUrl),this.$worker.postMessage({init:!0,tlns:tlns,module:mod.id,classname:classname}),this.callbackId=1,this.callbacks={},this.$worker.onerror=this.onError,this.$worker.onmessage=this.onMessage};(function(){oop.implement(this,EventEmitter),this.onError=function(e){throw window.console&&console.log&&console.log(e),e},this.onMessage=function(e){var msg=e.data;switch(msg.type){case\"log\":window.console&&console.log&&console.log.apply(console,msg.data);break;case\"event\":this._emit(msg.name,{data:msg.data});break;case\"call\":var callback=this.callbacks[msg.id];callback&&(callback(msg.data),delete this.callbacks[msg.id])}},this.$normalizePath=function(path){return location.host?(path=path.replace(/^[a-z]+:\\/\\/[^\\/]+/,\"\"),path=location.protocol+\"//\"+location.host+(\"/\"==path.charAt(0)?\"\":location.pathname.replace(/\\/[^\\/]*$/,\"\"))+\"/\"+path.replace(/^[\\/]+/,\"\")):path},this.terminate=function(){this._emit(\"terminate\",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener(\"change\",this.changeListener),this.$doc=null},this.send=function(cmd,args){this.$worker.postMessage({command:cmd,args:args})},this.call=function(cmd,args,callback){if(callback){var id=this.callbackId++;this.callbacks[id]=callback,args.push(id)}this.send(cmd,args)},this.emit=function(event,data){try{this.$worker.postMessage({event:event,data:{data:data.data}})}catch(ex){}},this.attachToDocument=function(doc){this.$doc&&this.terminate(),this.$doc=doc,this.call(\"setValue\",[doc.getValue()]),doc.on(\"change\",this.changeListener)},this.changeListener=function(e){e.range={start:e.data.range.start,end:e.data.range.end},this.emit(\"change\",e)}}).call(WorkerClient.prototype);var UIWorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var main=null,sender=Object.create(EventEmitter),_self=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){_self.messageBuffer.push(e),main&&setTimeout(processNext)};var processNext=function(){var msg=_self.messageBuffer.shift();msg.command?main[msg.command].apply(main,msg.args):msg.event&&sender._emit(msg.event,msg.data)};sender.postMessage=function(msg){_self.onMessage({data:msg})},sender.callback=function(data,callbackId){this.postMessage({type:\"call\",id:callbackId,data:data})},sender.emit=function(name,data){this.postMessage({type:\"event\",name:name,data:data})},config.loadModule([\"worker\",mod],function(Main){for(main=new Main[classname](sender);_self.messageBuffer.length;)processNext()})};UIWorkerClient.prototype=WorkerClient.prototype,exports.UIWorkerClient=UIWorkerClient,exports.WorkerClient=WorkerClient}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(acequire,exports){var Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,oop=acequire(\"./lib/oop\"),PlaceHolder=function(session,length,pos,others,mainClass,othersClass){var _self=this;this.length=length,this.session=session,this.doc=session.getDocument(),this.mainClass=mainClass,this.othersClass=othersClass,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=others,this.$onCursorChange=function(){setTimeout(function(){_self.onCursorChange()})},this.$pos=pos;var undoStack=session.getUndoManager().$undoStack||session.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=undoStack.length,this.setup(),session.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){oop.implement(this,EventEmitter),this.setup=function(){var _self=this,doc=this.doc,session=this.session,pos=this.$pos;this.pos=doc.createAnchor(pos.row,pos.column),this.markerId=session.addMarker(new Range(pos.row,pos.column,pos.row,pos.column+this.length),this.mainClass,null,!1),this.pos.on(\"change\",function(event){session.removeMarker(_self.markerId),_self.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(other){var anchor=doc.createAnchor(other.row,other.column);_self.others.push(anchor)}),session.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var session=this.session,_self=this;this.othersActive=!0,this.others.forEach(function(anchor){anchor.markerId=session.addMarker(new Range(anchor.row,anchor.column,anchor.row,anchor.column+_self.length),_self.othersClass,null,!1),anchor.on(\"change\",function(event){session.removeMarker(anchor.markerId),anchor.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.othersClass,null,!1)})})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var i=0;this.others.length>i;i++)this.session.removeMarker(this.others[i].markerId)}},this.onUpdate=function(event){var delta=event.data,range=delta.range;if(range.start.row===range.end.row&&range.start.row===this.pos.row&&!this.$updating){this.$updating=!0;var lengthDiff=\"insertText\"===delta.action?range.end.column-range.start.column:range.start.column-range.end.column;if(range.start.column>=this.pos.column&&range.start.column\u003C=this.pos.column+this.length+1){var distanceFromStart=range.start.column-this.pos.column;if(this.length+=lengthDiff,!this.session.$fromUndo){if(\"insertText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.insert(newPos,delta.text)}else if(\"removeText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.remove(new Range(newPos.row,newPos.column,newPos.row,newPos.column-lengthDiff))}range.start.column===this.pos.column&&\"insertText\"===delta.action?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-lengthDiff);for(var i=0;this.others.length>i;i++){var other=this.others[i],newPos={row:other.row,column:other.column-lengthDiff};other.row===range.start.row&&range.start.column\u003Cother.column&&(newPos.column+=lengthDiff),other.setPosition(newPos.row,newPos.column)}}.bind(this),0):range.start.column===this.pos.column&&\"removeText\"===delta.action&&setTimeout(function(){for(var i=0;this.others.length>i;i++){var other=this.others[i];other.row===range.start.row&&range.start.column\u003Cother.column&&other.setPosition(other.row,other.column-lengthDiff)}}.bind(this),0)}this.pos._emit(\"change\",{value:this.pos});for(var i=0;this.others.length>i;i++)this.others[i]._emit(\"change\",{value:this.others[i]})}this.$updating=!1}},this.onCursorChange=function(event){if(!this.$updating){var pos=this.session.selection.getCursor();pos.row===this.pos.row&&pos.column>=this.pos.column&&pos.column\u003C=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",event)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",event))}},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.pos.detach();for(var i=0;this.others.length>i;i++)this.others[i].detach();this.session.setUndoSelect(!0)},this.cancel=function(){if(-1===this.$undoStackDepth)throw Error(\"Canceling placeholders only supported with undo manager attached to session.\");for(var undoManager=this.session.getUndoManager(),undosRequired=(undoManager.$undoStack||undoManager.$undostack).length-this.$undoStackDepth,i=0;undosRequired>i;i++)undoManager.undo(!0)}}).call(PlaceHolder.prototype),exports.PlaceHolder=PlaceHolder}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../../range\").Range,FoldMode=exports.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(session,foldStyle,row){var line=session.getLine(row);return this.foldingStartMarker.test(line)?\"start\":\"markbeginend\"==foldStyle&&this.foldingStopMarker&&this.foldingStopMarker.test(line)?\"end\":\"\"},this.getFoldWidgetRange=function(){return null},this.indentationBlock=function(session,row,column){var re=/\\S/,line=session.getLine(row),startLevel=line.search(re);if(-1!=startLevel){for(var startColumn=column||line.length,maxRow=session.getLength(),startRow=row,endRow=row;maxRow>++row;){var level=session.getLine(row).search(re);if(-1!=level){if(startLevel>=level)break;endRow=row}}if(endRow>startRow){var endColumn=session.getLine(endRow).length;return new Range(startRow,startColumn,endRow,endColumn)}}},this.openingBracketBlock=function(session,bracket,row,column,typeRe){var start={row:row,column:column+1},end=session.$findClosingBracket(bracket,start,typeRe);if(end){var fw=session.foldWidgets[end.row];return null==fw&&(fw=this.getFoldWidget(session,end.row)),\"start\"==fw&&end.row>start.row&&(end.row--,end.column=session.getLine(end.row).length),Range.fromPoints(start,end)}},this.closingBracketBlock=function(session,bracket,row,column){var end={row:row,column:column},start=session.$findOpeningBracket(bracket,end);return start?(start.column++,end.column--,Range.fromPoints(start,end)):void 0}}).call(FoldMode.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!1,exports.cssClass=\"ace-tm\",exports.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm .ace_scroller {background-color: #FFFFFF;}.ace-tm .ace_cursor {border-left: 2px solid black;}.ace-tm .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_markup.ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_markup.ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)}),function(){ace.acequire([\"ace/ace\"],function(a){a&&a.config.init(),window.ace||(window.ace={});for(var key in a)a.hasOwnProperty(key)&&(ace[key]=a[key])})}(),module.exports=window.ace.acequire(\"ace/ace\")})()},{\"w3c-blob\":30}],31:[function(require,module,exports){var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);var res=[];for(var key in obj)res.push(key);return res},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)},Script=exports.Script=function NodeScript(code){return this instanceof Script?(this.code=code,void 0):new Script(code)};Script.prototype.runInNewContext=function(context){context||(context={});var iframe=document.createElement(\"iframe\");iframe.style||(iframe.style={}),iframe.style.display=\"none\",document.body.appendChild(iframe);var win=iframe.contentWindow;forEach(Object_keys(context),function(key){win[key]=context[key]}),!win.eval&&win.execScript&&win.execScript(\"null\");var res=win.eval(this.code);return forEach(Object_keys(win),function(key){context[key]=win[key]}),document.body.removeChild(iframe),res},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInContext=function(context){return this.runInNewContext(context)},forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}}),exports.createScript=function(code){return exports.Script(code)},exports.createContext=Script.createContext=function(context){var copy={};return\"object\"==typeof context&&forEach(Object_keys(context),function(key){copy[key]=context[key]}),copy}},{}],24:[function(require,module){\"use strict\";function Terminal(opts){if(opts=opts||{},!(this instanceof Terminal))return new Terminal(opts);this.cols=opts.cols||500,this.rows=opts.rows||500,this.ybase=0,this.ydisp=0,this.x=0,this.y=0,this.cursorState=0,this.cursorHidden=!1,this.convertEol=!1,this.state=states.normal,this.queue=\"\",this.scrollTop=0,this.scrollBottom=this.rows-1,this.applicationKeypad=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!1,this.normal=null,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.element,this.children,this.refreshStart,this.refreshEnd,this.savedX,this.savedY,this.savedCols,this.readable=!0,this.writable=!0,this.defAttr=131840,this.curAttr=this.defAttr,this.params=[],this.currentParam=0,this.prefix=\"\",this.postfix=\"\",this.lines=[];for(var i=this.rows;i--;)this.lines.push(this.blankLine());this.tabs,this.setupStops()}var states=require(\"./lib/states\");module.exports=Terminal,require(\"./lib/colors\")(Terminal),require(\"./lib/options\")(Terminal),require(\"./lib/open\")(Terminal),require(\"./lib/destroy\")(Terminal),require(\"./lib/refresh\")(Terminal),require(\"./lib/write\")(Terminal),require(\"./lib/setgLevel\"),require(\"./lib/setgCharset\"),require(\"./lib/debug\")(Terminal),require(\"./lib/stops\")(Terminal),require(\"./lib/erase\")(Terminal),require(\"./lib/blankLine\")(Terminal),require(\"./lib/range\")(Terminal),require(\"./lib/util\")(Terminal),require(\"./lib/esc/index.js\")(Terminal),require(\"./lib/esc/reset.js\")(Terminal),require(\"./lib/esc/tabSet.js\")(Terminal),require(\"./lib/csi/charAttributes\")(Terminal),require(\"./lib/csi/insert-delete\")(Terminal),require(\"./lib/csi/position\")(Terminal),require(\"./lib/csi/cursor\")(Terminal),require(\"./lib/csi/repeatPrecedingCharacter\")(Terminal),require(\"./lib/csi/tabClear\")(Terminal),require(\"./lib/csi/softReset\")(Terminal),require(\"./lib/charsets.js\")(Terminal)},{\"./lib/esc/index.js\":32,\"./lib/esc/reset.js\":33,\"./lib/esc/tabSet.js\":34,\"./lib/charsets.js\":35,\"./lib/states\":36,\"./lib/colors\":37,\"./lib/options\":38,\"./lib/open\":39,\"./lib/destroy\":40,\"./lib/refresh\":41,\"./lib/write\":42,\"./lib/setgLevel\":43,\"./lib/setgCharset\":44,\"./lib/debug\":45,\"./lib/stops\":46,\"./lib/erase\":47,\"./lib/blankLine\":48,\"./lib/range\":49,\"./lib/util\":50,\"./lib/csi/charAttributes\":51,\"./lib/csi/insert-delete\":52,\"./lib/csi/position\":53,\"./lib/csi/cursor\":54,\"./lib/csi/repeatPrecedingCharacter\":55,\"./lib/csi/tabClear\":56,\"./lib/csi/softReset\":57}],25:[function(require,module,exports){(function(process){function through(write,end){function drain(){for(;buffer.length&&!stream.paused;){var data=buffer.shift();if(null===data)return stream.emit(\"end\");stream.emit(\"data\",data)}}function _end(){stream.writable=!1,end.call(stream),stream.readable||stream.destroy()}write=write||function(data){this.queue(data)},end=end||function(){this.queue(null)};var ended=!1,destroyed=!1,buffer=[],stream=new Stream;return stream.readable=stream.writable=!0,stream.paused=!1,stream.write=function(data){return write.call(this,data),!stream.paused},stream.queue=stream.push=function(data){return buffer.push(data),drain(),stream},stream.on(\"end\",function(){stream.readable=!1,stream.writable||process.nextTick(function(){stream.destroy()})}),stream.end=function(data){return ended?void 0:(ended=!0,arguments.length&&stream.write(data),_end(),stream)},stream.destroy=function(){return destroyed?void 0:(destroyed=!0,ended=!0,buffer.length=0,stream.writable=stream.readable=!1,stream.emit(\"close\"),stream)},stream.pause=function(){return stream.paused?void 0:(stream.paused=!0,stream.emit(\"pause\"),stream)},stream.resume=function(){return stream.paused&&(stream.paused=!1),drain(),stream.paused||stream.emit(\"drain\"),stream},stream}var Stream=require(\"stream\");exports=module.exports=through,through.through=through})(require(\"__browserify_process\"))},{stream:58,__browserify_process:16}],30:[function(require,module){(function(global){function get_blob(){if(global.Blob)try{return new Blob([\"asdf\"],{type:\"text/plain\"}),Blob}catch(err){}var Builder=global.BlobBuilder;return\"function\"!=typeof Builder&&(Builder=global.WebKitBlobBuilder||global.MozBlobBuilder||global.MSBlobBuilder),function(parts,bag){var builder=new Builder,endings=bag.endings,type=bag.type;if(endings)for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i],endings);else for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i]);return type?builder.getBlob(type):builder.getBlob()}}module.exports=get_blob()})(window)},{}],33:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.reset=function(){Terminal.call(this,this.cols,this.rows),this.refresh(0,this.rows-1)}}},{}],35:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.charsets={},Terminal.charsets.SCLD={\"`\":\"◆\",a:\"▒\",b:\"\t\",c:\"\\f\",d:\"\\r\",e:\"\\n\",f:\"°\",g:\"±\",h:\"\",i:\"\u000b\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},Terminal.charsets.UK=null,Terminal.charsets.US=null,Terminal.charsets.Dutch=null,Terminal.charsets.Finnish=null,Terminal.charsets.French=null,Terminal.charsets.FrenchCanadian=null,Terminal.charsets.German=null,Terminal.charsets.Italian=null,Terminal.charsets.NorwegianDanish=null,Terminal.charsets.Spanish=null,Terminal.charsets.Swedish=null,Terminal.charsets.Swiss=null,Terminal.charsets.ISOLatin=null}},{}],36:[function(require,module){\"use strict\";module.exports={normal:0,escaped:1,csi:2,osc:3,charset:4,dcs:5,ignore:6}},{}],37:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.colors=[\"#2e3436\",\"#cc0000\",\"#4e9a06\",\"#c4a000\",\"#3465a4\",\"#75507b\",\"#06989a\",\"#d3d7cf\",\"#555753\",\"#ef2929\",\"#8ae234\",\"#fce94f\",\"#729fcf\",\"#ad7fa8\",\"#34e2e2\",\"#eeeeec\"],Terminal.colors=function(){function out(r,g,b){colors.push(\"#\"+hex(r)+hex(g)+hex(b))}function hex(c){return c=c.toString(16),2>c.length?\"0\"+c:c}var i,colors=Terminal.colors,r=[0,95,135,175,215,255];for(i=0;216>i;i++)out(r[0|i/36%6],r[0|i/6%6],r[i%6]);for(i=0;24>i;i++)r=8+10*i,out(r,r,r);return colors}(),Terminal.defaultColors={bg:\"#000000\",fg:\"#f0f0f0\"},Terminal.colors[256]=Terminal.defaultColors.bg,Terminal.colors[257]=Terminal.defaultColors.fg}},{}],38:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.termName=\"xterm\",Terminal.geometry=[80,24],Terminal.cursorBlink=!0,Terminal.visualBell=!1,Terminal.popOnBell=!1,Terminal.scrollback=1e3,Terminal.screenKeys=!1,Terminal.programFeatures=!1,Terminal.debug=!1}},{}],39:[function(require,module){\"use strict\";function isBoldBroken(){var el=document.createElement(\"span\");el.innerHTML=\"hello world\",document.body.appendChild(el);var w1=el.scrollWidth;el.style.fontWeight=\"bold\";var w2=el.scrollWidth;return document.body.removeChild(el),w1!==w2}module.exports=function(Terminal){Terminal.prototype.open=function(){var div,i=0;for(this.element=document.createElement(\"div\"),this.element.className=\"terminal\",this.children=[];this.rows>i;i++)div=document.createElement(\"div\"),this.element.appendChild(div),this.children.push(div);this.refresh(0,this.rows-1),null===Terminal.brokenBold&&(Terminal.brokenBold=isBoldBroken()),this.element.style.backgroundColor=Terminal.defaultColors.bg,this.element.style.color=Terminal.defaultColors.fg}}},{}],40:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.destroy=function(){this.readable=!1,this.writable=!1,this._events={},this.handler=function(){},this.write=function(){}}}},{}],41:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.refresh=function(start,end){var x,y,i,line,out,ch,width,data,attr,fgColor,bgColor,flags,row,parent;\nfor(width=this.cols,y=start;end>=y;y++){if(row=y+this.ydisp,line=this.lines[row],!line)return this.reset();for(out=\"\",x=y===this.y&&this.cursorState&&this.ydisp===this.ybase&&!this.cursorHidden?this.x:-1,attr=this.defAttr,i=0;width>i;i++){switch(data=line[i][0],ch=line[i][1],i===x&&(data=-1),data!==attr&&(attr!==this.defAttr&&(out+=\"\u003C/span>\"),data!==this.defAttr&&(-1===data?out+='\u003Cspan class=\"reverse-video\">':(out+='\u003Cspan style=\"',bgColor=511&data,fgColor=511&data>>9,flags=data>>18,1&flags&&(Terminal.brokenBold||(out+=\"font-weight:bold;\"),8>fgColor&&(fgColor+=8)),2&flags&&(out+=\"text-decoration:underline;\"),256!==bgColor&&(out+=\"background-color:\"+Terminal.colors[bgColor]+\";\"),257!==fgColor&&(out+=\"color:\"+Terminal.colors[fgColor]+\";\"),out+='\">'))),ch){case\"&\":out+=\"&\";break;case\"\u003C\":out+=\"\u003C\";break;case\">\":out+=\">\";break;default:out+=\" \">=ch?\" \":ch}attr=data}attr!==this.defAttr&&(out+=\"\u003C/span>\"),this.children[y].innerHTML=out}parent&&parent.appendChild(this.element)}}},{}],43:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgLevel=function(g){this.glevel=g,this.charset=this.charsets[g]}}},{}],44:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgCharset=function(g,charset){this.charsets[g]=charset,this.glevel===g&&(this.charset=charset)}}},{}],45:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.log=function(){if(Terminal.debug&&window.console&&window.console.log){var args=Array.prototype.slice.call(arguments);window.console.log.apply(window.console,args)}},Terminal.prototype.error=function(){if(Terminal.debug&&window.console&&window.console.error){var args=Array.prototype.slice.call(arguments);window.console.error.apply(window.console,args)}}}},{}],47:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.eraseRight=function(x,y){for(var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];this.cols>x;x++)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLeft=function(x,y){var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];for(x++;x--;)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLine=function(y){this.eraseRight(0,y)},Terminal.prototype.eraseInDisplay=function(params){var j;switch(params[0]){case 0:for(this.eraseRight(this.x,this.y),j=this.y+1;this.rows>j;j++)this.eraseLine(j);break;case 1:for(this.eraseLeft(this.x,this.y),j=this.y;j--;)this.eraseLine(j);break;case 2:for(j=this.rows;j--;)this.eraseLine(j);break;case 3:}},Terminal.prototype.eraseInLine=function(params){switch(params[0]){case 0:this.eraseRight(this.x,this.y);break;case 1:this.eraseLeft(this.x,this.y);break;case 2:this.eraseLine(this.y)}}}},{}],46:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setupStops=function(i){for(null!=i?this.tabs[i]||(i=this.prevStop(i)):(this.tabs={},i=0);this.cols>i;i+=8)this.tabs[i]=!0},Terminal.prototype.prevStop=function(x){for(null==x&&(x=this.x);!this.tabs[--x]&&x>0;);return x>=this.cols?this.cols-1:0>x?0:x},Terminal.prototype.nextStop=function(x){for(null==x&&(x=this.x);!this.tabs[++x]&&this.cols>x;);return x>=this.cols?this.cols-1:0>x?0:x}}},{}],48:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.blankLine=function(cur){for(var attr=cur?this.curAttr:this.defAttr,ch=[attr,\" \"],line=[],i=0;this.cols>i;i++)line[i]=ch;return line}}},{}],49:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.updateRange=function(y){this.refreshStart>y&&(this.refreshStart=y),y>this.refreshEnd&&(this.refreshEnd=y)},Terminal.prototype.maxRange=function(){this.refreshStart=0,this.refreshEnd=this.rows-1}}},{}],50:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.ch=function(cur){return cur?[this.curAttr,\" \"]:[this.defAttr,\" \"]},Terminal.prototype.is=function(term){var name=this.termName||Terminal.termName;return 0===(name+\"\").indexOf(term)}}},{}],51:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charAttributes=function(params){for(var bg,fg,p,l=params.length,i=0;l>i;i++)if(p=params[i],p>=30&&37>=p)this.curAttr=-261633&this.curAttr|p-30\u003C\u003C9;else if(p>=40&&47>=p)this.curAttr=-512&this.curAttr|p-40;else if(p>=90&&97>=p)p+=8,this.curAttr=-261633&this.curAttr|p-90\u003C\u003C9;else if(p>=100&&107>=p)p+=8,this.curAttr=-512&this.curAttr|p-100;else if(0===p)this.curAttr=this.defAttr;else if(1===p)this.curAttr=this.curAttr|1\u003C\u003C18;else if(4===p)this.curAttr=this.curAttr|2\u003C\u003C18;else if(7===p||27===p){if(7===p){if(4&this.curAttr>>18)continue;this.curAttr=this.curAttr|4\u003C\u003C18}else if(27===p){if(4&~(this.curAttr>>18))continue;this.curAttr=-1048577&this.curAttr}bg=511&this.curAttr,fg=511&this.curAttr>>9,this.curAttr=-262144&this.curAttr|(bg\u003C\u003C9|fg)}else if(22===p)this.curAttr=-262145&this.curAttr;else if(24===p)this.curAttr=-524289&this.curAttr;else if(39===p)this.curAttr=-261633&this.curAttr,this.curAttr=this.curAttr|(511&this.defAttr>>9)\u003C\u003C9;else if(49===p)this.curAttr=-512&this.curAttr,this.curAttr=this.curAttr|511&this.defAttr;else if(38===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-261633&this.curAttr|p\u003C\u003C9}else if(48===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-512&this.curAttr|p}}}},{}],52:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.insertChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row].splice(j++,0,ch),this.lines[row].pop()},Terminal.prototype.insertLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j+1;param--;)this.lines.splice(row,0,this.blankLine(!0)),this.lines.splice(j,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j;param--;)this.lines.splice(j+1,0,this.blankLine(!0)),this.lines.splice(row,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteChars=function(params){var param,row,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,ch=[this.curAttr,\" \"];param--;)this.lines[row].splice(this.x,1),this.lines[row].push(ch)},Terminal.prototype.eraseChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row][j++]=ch}}},{}],53:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charPosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.HPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.linePosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.y=param-1,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.VPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.HVPosition=function(params){1>params[0]&&(params[0]=1),1>params[1]&&(params[1]=1),this.y=params[0]-1,this.y>=this.rows&&(this.y=this.rows-1),this.x=params[1]-1,this.x>=this.cols&&(this.x=this.cols-1)}}},{}],54:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.saveCursor=function(){this.savedX=this.x,this.savedY=this.y},Terminal.prototype.restoreCursor=function(){this.x=this.savedX||0,this.y=this.savedY||0},Terminal.prototype.cursorUp=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0)},Terminal.prototype.cursorDown=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.cursorForward=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.cursorBackward=function(params){var param=params[0];1>param&&(param=1),this.x-=param,0>this.x&&(this.x=0)},Terminal.prototype.cursorPos=function(params){var row,col;row=params[0]-1,col=params.length>=2?params[1]-1:0,0>row?row=0:row>=this.rows&&(row=this.rows-1),0>col?col=0:col>=this.cols&&(col=this.cols-1),this.x=col,this.y=row},Terminal.prototype.cursorNextLine=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1),this.x=0},Terminal.prototype.cursorPrecedingLine=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0),this.x=0},Terminal.prototype.cursorCharAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1},Terminal.prototype.cursorForwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.nextStop()},Terminal.prototype.cursorBackwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.prevStop()}}},{}],55:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.repeatPrecedingCharacter=function(params){for(var param=params[0]||1,line=this.lines[this.ybase+this.y],ch=line[this.x-1]||[this.defAttr,\" \"];param--;)line[this.x++]=ch}}},{}],56:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.tabClear=function(params){var param=params[0];0>=param?delete this.tabs[this.x]:3===param&&(this.tabs={})}}},{}],57:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.softReset=function(){this.cursorHidden=!1,this.insertMode=!1,this.originMode=!1,this.wraparoundMode=!1,this.applicationKeypad=!1,this.scrollTop=0,this.scrollBottom=this.rows-1,this.curAttr=this.defAttr,this.x=this.y=0,this.charset=null,this.glevel=0,this.charsets=[null]}}},{}],58:[function(require,module){function Stream(){events.EventEmitter.call(this)}var events=require(\"events\"),util=require(\"util\");util.inherits(Stream,events.EventEmitter),module.exports=Stream,Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.destroy())}function onerror(er){if(cleanup(),0===this.listeners(\"error\").length)throw er}function cleanup(){source.removeListener(\"data\",ondata),dest.removeListener(\"drain\",ondrain),source.removeListener(\"end\",onend),source.removeListener(\"close\",onclose),source.removeListener(\"error\",onerror),dest.removeListener(\"error\",onerror),source.removeListener(\"end\",cleanup),source.removeListener(\"close\",cleanup),dest.removeListener(\"end\",cleanup),dest.removeListener(\"close\",cleanup)}var source=this;source.on(\"data\",ondata),dest.on(\"drain\",ondrain),dest._isStdio||options&&options.end===!1||(dest._pipeCount=dest._pipeCount||0,dest._pipeCount++,source.on(\"end\",onend),source.on(\"close\",onclose));var didOnEnd=!1;return source.on(\"error\",onerror),dest.on(\"error\",onerror),source.on(\"end\",cleanup),source.on(\"close\",cleanup),dest.on(\"end\",cleanup),dest.on(\"close\",cleanup),dest.emit(\"pipe\",source),dest}},{events:15,util:6}],59:[function(require,module,exports){\"use strict\";var vm=require(\"vm\");exports.createCtx=function(sandbox){return vm.createContext(sandbox)},exports.runInCtx=function(code,ctx){return vm.runInContext(code,ctx)}},{vm:31}],60:[function(require,module){\"use strict\";module.exports=function(arr){return arr.filter(function(k){return!filterOut.hasOwnProperty(k)})};var filterOuts=[\"ArrayBuffer\",\"Attr\",\"BeforeLoadEvent\",\"Blob\",\"CDATASection\",\"CSSCharsetRule\",\"CSSImportRule\",\"CSSMediaRule\",\"CSSPageRule\",\"CSSPrimitiveValue\",\"CSSRuleList\",\"CSSStyleDeclaration\",\"CSSStyleSheet\",\"CSSValue\",\"CanvasGradient\",\"ClientRectList\",\"Clipboard\",\"CompositionEvent\",\"Counter\",\"DOMException\",\"DOMParser\",\"DOMStringMap\",\"DOMTokenList\",\"Document\",\"DocumentFragment\",\"DocumentType\",\"Element\",\"ErrorEvent\",\"Event\",\"EventSource\",\"File\",\"FileError\",\"FileList\",\"Float32Array\",\"HTMLAllCollection\",\"HTMLAreaElement\",\"HTMLBRElement\",\"HTMLButtonElement\",\"HTMLCanvasElement\",\"HTMLCollection\",\"HTMLDListElement\",\"HTMLDirectoryElement\",\"HTMLDivElement\",\"HTMLFormElement\",\"HTMLFrameElement\",\"HTMLHRElement\",\"HTMLIFrameElement\",\"HTMLImageElement\",\"HTMLInputElement\",\"HTMLLinkElement\",\"HTMLMapElement\",\"HTMLMediaElement\",\"HTMLMenuElement\",\"HTMLMeterElement\",\"HTMLOptGroupElement\",\"HTMLParamElement\",\"HTMLProgressElement\",\"HTMLQuoteElement\",\"HTMLSelectElement\",\"HTMLTableCaptionElement\",\"HTMLTableColElement\",\"HTMLTableSectionElement\",\"HTMLUListElement\",\"HTMLUnknownElement\",\"HashChangeEvent\",\"ImageData\",\"Int16Array\",\"Int8Array\",\"MediaController\",\"MediaError\",\"MediaList\",\"MessageChannel\",\"MimeType\",\"MutationEvent\",\"NamedNodeMap\",\"NodeFilter\",\"Notation\",\"OverflowEvent\",\"Plugin\",\"PluginArray\",\"PopStateEvent\",\"RGBColor\",\"Range\",\"Rect\",\"SQLException\",\"SVGAltGlyphItemElement\",\"SVGAnimateColorElement\",\"SVGAnimatedAngle\",\"SVGAnimatedEnumeration\",\"SVGAnimatedLength\",\"SVGAnimatedLengthList\",\"SVGAnimatedNumberList\",\"SVGAnimatedRect\",\"SVGAnimatedString\",\"SVGAnimatedTransformList\",\"SVGClipPathElement\",\"SVGDefsElement\",\"SVGElementInstanceList\",\"SVGEllipseElement\",\"SVGException\",\"SVGFEComponentTransferElement\",\"SVGFEConvolveMatrixElement\",\"SVGFEDiffuseLightingElement\",\"SVGFEDistantLightElement\",\"SVGFEFloodElement\",\"SVGFEFuncBElement\",\"SVGFEFuncGElement\",\"SVGFEFuncRElement\",\"SVGFEGaussianBlurElement\",\"SVGFEImageElement\",\"SVGFEMergeNodeElement\",\"SVGFEOffsetElement\",\"SVGFESpecularLightingElement\",\"SVGFilterElement\",\"SVGFontElement\",\"SVGFontFaceNameElement\",\"SVGFontFaceUriElement\",\"SVGGlyphElement\",\"SVGGlyphRefElement\",\"SVGGradientElement\",\"SVGHKernElement\",\"SVGLengthList\",\"SVGLinearGradientElement\",\"SVGMarkerElement\",\"SVGMatrix\",\"SVGNumber\",\"SVGPaint\",\"SVGPathSegArcAbs\",\"SVGPathSegArcRel\",\"SVGPathSegCurvetoCubicAbs\",\"SVGPathSegCurvetoCubicSmoothAbs\",\"SVGPathSegCurvetoCubicSmoothRel\",\"SVGPathSegCurvetoQuadraticRel\",\"SVGPathSegCurvetoQuadraticSmoothAbs\",\"SVGPathSegCurvetoQuadraticSmoothRel\",\"SVGPathSegLinetoHorizontalRel\",\"SVGPathSegLinetoVerticalRel\",\"SVGPathSegList\",\"SVGPathSegMovetoAbs\",\"SVGPatternElement\",\"SVGPointList\",\"SVGPolylineElement\",\"SVGPreserveAspectRatio\",\"SVGRectElement\",\"SVGSetElement\",\"SVGStopElement\",\"SVGStringList\",\"SVGSymbolElement\",\"SVGTSpanElement\",\"SVGTextPathElement\",\"SVGTransformList\",\"SVGZoomEvent\",\"Selection\",\"Storage\",\"StorageEvent\",\"TextEvent\",\"TextMetrics\",\"TextTrackCueList\",\"UIEvent\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"WebGLActiveInfo\",\"WebGLProgram\",\"WebGLRenderbuffer\",\"WebGLRenderingContext\",\"WebGLShader\",\"WebKitAnimationEvent\",\"WebKitCSSFilterValue\",\"WebKitCSSKeyframeRule\",\"WebKitCSSTransformValue\",\"WebKitPoint\",\"WebKitTransitionEvent\",\"Window\",\"Worker\",\"XMLDocument\",\"XMLHttpRequest\",\"XMLHttpRequestException\",\"XPathEvaluator\",\"XPathResult\",\"clientInformation\",\"console\",\"exports\",\"frameElement\",\"frames\",\"history\",\"localStorage\",\"location\",\"locationbar\",\"menubar\",\"navigator\",\"onbeforeunload\",\"onblur\",\"oncanplaythrough\",\"onclick\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onerror\",\"onkeydown\",\"onkeypress\",\"onloadeddata\",\"onloadstart\",\"onmessage\",\"onmouseout\",\"onmouseover\",\"onoffline\",\"ononline\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onscroll\",\"onsearch\",\"onselect\",\"onsuspend\",\"ontimeupdate\",\"onwebkittransitionend\",\"opener\",\"scrollbars\",\"styleMedia\",\"toolbar\",\"webkitAudioContext\",\"webkitAudioPannerNode\",\"webkitURL\",\"Audio\",\"AudioProcessingEvent\",\"CSSFontFaceRule\",\"CSSRule\",\"CSSStyleRule\",\"CSSValueList\",\"CanvasPattern\",\"CanvasRenderingContext2D\",\"CharacterData\",\"ClientRect\",\"CloseEvent\",\"Comment\",\"CustomEvent\",\"DOMImplementation\",\"DOMSettableTokenList\",\"DOMStringList\",\"DataView\",\"Entity\",\"EntityReference\",\"EventException\",\"FileReader\",\"Float64Array\",\"FormData\",\"HTMLAnchorElement\",\"HTMLAppletElement\",\"HTMLAudioElement\",\"HTMLBaseElement\",\"HTMLBaseFontElement\",\"HTMLBodyElement\",\"HTMLDocument\",\"HTMLElement\",\"HTMLEmbedElement\",\"HTMLFieldSetElement\",\"HTMLFontElement\",\"HTMLFrameSetElement\",\"HTMLHeadElement\",\"HTMLHeadingElement\",\"HTMLHtmlElement\",\"HTMLKeygenElement\",\"HTMLLIElement\",\"HTMLLabelElement\",\"HTMLLegendElement\",\"HTMLMarqueeElement\",\"HTMLMetaElement\",\"HTMLModElement\",\"HTMLOListElement\",\"HTMLObjectElement\",\"HTMLOptionElement\",\"HTMLOutputElement\",\"HTMLParagraphElement\",\"HTMLPreElement\",\"HTMLScriptElement\",\"HTMLSourceElement\",\"HTMLSpanElement\",\"HTMLStyleElement\",\"HTMLTableCellElement\",\"HTMLTableElement\",\"HTMLTableRowElement\",\"HTMLTextAreaElement\",\"HTMLTitleElement\",\"HTMLTrackElement\",\"HTMLVideoElement\",\"Image\",\"Int32Array\",\"KeyboardEvent\",\"MessageEvent\",\"MessagePort\",\"MimeTypeArray\",\"MouseEvent\",\"Node\",\"NodeList\",\"OfflineAudioCompletionEvent\",\"Option\",\"PageTransitionEvent\",\"ProcessingInstruction\",\"ProgressEvent\",\"RangeException\",\"SVGAElement\",\"SVGAltGlyphDefElement\",\"SVGAltGlyphElement\",\"SVGAngle\",\"SVGAnimateElement\",\"SVGAnimateMotionElement\",\"SVGAnimateTransformElement\",\"SVGAnimatedBoolean\",\"SVGAnimatedInteger\",\"SVGAnimatedNumber\",\"SVGAnimatedPreserveAspectRatio\",\"SVGCircleElement\",\"SVGColor\",\"SVGComponentTransferFunctionElement\",\"SVGCursorElement\",\"SVGDescElement\",\"SVGDocument\",\"SVGElement\",\"SVGElementInstance\",\"SVGFEBlendElement\",\"SVGFEColorMatrixElement\",\"SVGFECompositeElement\",\"SVGFEDisplacementMapElement\",\"SVGFEDropShadowElement\",\"SVGFEFuncAElement\",\"SVGFEMergeElement\",\"SVGFEMorphologyElement\",\"SVGFEPointLightElement\",\"SVGFESpotLightElement\",\"SVGFETileElement\",\"SVGFETurbulenceElement\",\"SVGFontFaceElement\",\"SVGFontFaceFormatElement\",\"SVGFontFaceSrcElement\",\"SVGForeignObjectElement\",\"SVGGElement\",\"SVGImageElement\",\"SVGLength\",\"SVGLineElement\",\"SVGMPathElement\",\"SVGMaskElement\",\"SVGMetadataElement\",\"SVGMissingGlyphElement\",\"SVGNumberList\",\"SVGPathElement\",\"SVGPathSeg\",\"SVGPathSegClosePath\",\"SVGPathSegCurvetoCubicRel\",\"SVGPathSegCurvetoQuadraticAbs\",\"SVGPathSegLinetoAbs\",\"SVGPathSegLinetoHorizontalAbs\",\"SVGPathSegLinetoRel\",\"SVGPathSegLinetoVerticalAbs\",\"SVGPathSegMovetoRel\",\"SVGPoint\",\"SVGPolygonElement\",\"SVGRadialGradientElement\",\"SVGRect\",\"SVGRenderingIntent\",\"SVGSVGElement\",\"SVGScriptElement\",\"SVGStyleElement\",\"SVGSwitchElement\",\"SVGTRefElement\",\"SVGTextContentElement\",\"SVGTextElement\",\"SVGTextPositioningElement\",\"SVGTitleElement\",\"SVGTransform\",\"SVGUnitTypes\",\"SVGUseElement\",\"SVGVKernElement\",\"SVGViewElement\",\"SharedWorker\",\"StyleSheet\",\"StyleSheetList\",\"Text\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"TimeRanges\",\"TrackEvent\",\"Uint16Array\",\"WebGLBuffer\",\"WebGLContextEvent\",\"WebGLFramebuffer\",\"WebGLShaderPrecisionFormat\",\"WebGLTexture\",\"WebGLUniformLocation\",\"WebKitCSSKeyframesRule\",\"WebKitCSSMatrix\",\"WebKitMutationObserver\",\"WebSocket\",\"WheelEvent\",\"XMLHttpRequestProgressEvent\",\"XMLHttpRequestUpload\",\"XMLSerializer\",\"XPathException\",\"XSLTProcessor\",\"applicationCache\",\"closed\",\"crypto\",\"defaultStatus\",\"defaultstatus\",\"devicePixelRatio\",\"event\",\"innerHeight\",\"innerWidth\",\"length\",\"module\",\"name\",\"offscreenBuffering\",\"onabort\",\"oncanplay\",\"onchange\",\"oncontextmenu\",\"ondblclick\",\"ondrag\",\"ondragend\",\"onended\",\"onfocus\",\"onhashchange\",\"oninput\",\"oninvalid\",\"onkeyup\",\"onload\",\"onloadedmetadata\",\"onmousedown\",\"onmousemove\",\"onmouseup\",\"onmousewheel\",\"onpagehide\",\"onpageshow\",\"onpause\",\"onpopstate\",\"onreset\",\"onresize\",\"onseeked\",\"onseeking\",\"onstalled\",\"onstorage\",\"onsubmit\",\"onunload\",\"onvolumechange\",\"onwaiting\",\"onwebkitanimationend\",\"onwebkitanimationiteration\",\"onwebkitanimationstart\",\"outerHeight\",\"outerWidth\",\"pageXOffset\",\"pageYOffset\",\"parent\",\"personalbar\",\"screen\",\"screenLeft\",\"screenTop\",\"screenX\",\"screenY\",\"scrollX\",\"scrollY\",\"self\",\"sessionStorage\",\"status\",\"statusbar\",\"Touch\",\"TouchList\",\"TouchEvent\",\"DeviceMotionEvent\",\"DeviceOrientationEvent\",\"orientation\",\"onorientationchange\",\"ontouched\",\"ondeviceorientation\",\"ontouchmove\",\"ondevicemotion\",\"ontouchcancel\",\"ontouchstart\",\"ongestureend\",\"ontouchend\",\"ongesturestart\",\"ongesturechange\",\"getSearchEngine\",\"setSearchEngine\",\"canSetSearchEngine\",\"InstallTrigger\",\"getInterface\",\"sidebar\"],filterOut={};filterOuts.forEach(function(k){filterOut[k]=!0})},{}],61:[function(require,module){\"use strict\";var exclude={};module.exports=function(thing,exclude_){var t={},ex=exclude_||exclude;return thing?(Object.keys(thing).filter(function(k){return!ex[k]}).forEach(function(k){thing.hasOwnProperty(k)&&(t[k]=thing[k])}),t):t},[\"top\",\"Intl\",\"chrome\",\"document\",\"external\",\"v8Intl\",\"window\",\"frameElement\",\"parent\"].forEach(function(k){exclude[k]=!0})},{}],28:[function(require,module){module.exports={highlight:require(\"./lib/highlight\"),highlightFile:require(\"./lib/highlightFile\"),highlightFileSync:require(\"./lib/highlightFileSync\")}},{\"./lib/highlight\":62,\"./lib/highlightFile\":63,\"./lib/highlightFileSync\":64}],65:[function(require,module,exports){(function(process){function filter(xs,fn){for(var res=[],i=0;xs.length>i;i++)fn(xs[i],i,xs)&&res.push(xs[i]);return res}function normalizeArray(parts,allowAboveRoot){for(var up=0,i=parts.length;i>=0;i--){var last=parts[i];\".\"==last?parts.splice(i,1):\"..\"===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up--;up)parts.unshift(\"..\");return parts}var splitPathRe=/^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;exports.resolve=function(){for(var resolvedPath=\"\",resolvedAbsolute=!1,i=arguments.length;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();\"string\"==typeof path&&path&&(resolvedPath=path+\"/\"+resolvedPath,resolvedAbsolute=\"/\"===path.charAt(0))}return resolvedPath=normalizeArray(filter(resolvedPath.split(\"/\"),function(p){return!!p}),!resolvedAbsolute).join(\"/\"),(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},exports.normalize=function(path){var isAbsolute=\"/\"===path.charAt(0),trailingSlash=\"/\"===path.slice(-1);return path=normalizeArray(filter(path.split(\"/\"),function(p){return!!p}),!isAbsolute).join(\"/\"),path||isAbsolute||(path=\".\"),path&&trailingSlash&&(path+=\"/\"),(isAbsolute?\"/\":\"\")+path},exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p){return p&&\"string\"==typeof p}).join(\"/\"))},exports.dirname=function(path){var dir=splitPathRe.exec(path)[1]||\"\",isWindows=!1;return dir?1===dir.length||isWindows&&3>=dir.length&&\":\"===dir.charAt(1)?dir:dir.substring(0,dir.length-1):\".\"},exports.basename=function(path,ext){var f=splitPathRe.exec(path)[2]||\"\";return ext&&f.substr(-1*ext.length)===ext&&(f=f.substr(0,f.length-ext.length)),f},exports.extname=function(path){return splitPathRe.exec(path)[3]||\"\"},exports.relative=function(from,to){function trim(arr){for(var start=0;arr.length>start&&\"\"===arr[start];start++);for(var end=arr.length-1;end>=0&&\"\"===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=exports.resolve(from).substr(1),to=exports.resolve(to).substr(1);for(var fromParts=trim(from.split(\"/\")),toParts=trim(to.split(\"/\")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;length>i;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}for(var outputParts=[],i=samePartsLength;fromParts.length>i;i++)outputParts.push(\"..\");return outputParts=outputParts.concat(toParts.slice(samePartsLength)),outputParts.join(\"/\")}})(require(\"__browserify_process\"))},{__browserify_process:16}],42:[function(require,module){\"use strict\";function fixLinefeed(data){return data.replace(/([^\\r])\\n/g,\"$1\\r\\n\")}function fixIndent(data){return/(^|\\n) /.test(data)?data.split(\"\\n\").map(function(line){for(var count=0;\" \"===line.charAt(0);)line=line.slice(1),count++;for(;count--;)line=\" \"+line;return line}).join(\"\\r\\n\"):data}var states=require(\"./states\");module.exports=function(Terminal){Terminal.prototype.write=function(data){data=fixLinefeed(data),data=fixIndent(data);var cs,ch,l=data.length,i=0;for(this.refreshStart=this.y,this.refreshEnd=this.y,this.ybase!==this.ydisp&&(this.ydisp=this.ybase,this.maxRange());l>i;i++)switch(ch=data[i],this.state){case states.normal:switch(ch){case\"\u0007\":this.bell();break;case\"\\n\":case\"\u000b\":case\"\\f\":this.convertEol&&(this.x=0),this.y++;break;case\"\\r\":this.x=0;break;case\"\\b\":this.x>0&&this.x--;break;case\"\t\":this.x=this.nextStop();break;case\"\u000e\":this.setgLevel(1);break;case\"\u000f\":this.setgLevel(0);break;case\"\u001b\":this.state=states.escaped;break;default:ch>=\" \"&&(this.charset&&this.charset[ch]&&(ch=this.charset[ch]),this.x>=this.cols&&(this.x=0,this.y++),this.lines[this.y+this.ybase][this.x]=[this.curAttr,ch],this.x++,this.updateRange(this.y))}break;case states.escaped:switch(ch){case\"[\":this.params=[],this.currentParam=0,this.state=states.csi;break;case\"]\":this.params=[],this.currentParam=0,this.state=states.osc;break;case\"P\":this.params=[],this.currentParam=0,this.state=states.dcs;break;case\"_\":this.stateType=\"apc\",this.state=states.ignore;break;case\"^\":this.stateType=\"pm\",this.state=states.ignore;break;case\"c\":this.reset();break;case\"E\":this.x=0;break;case\"D\":this.index();break;case\"M\":this.reverseIndex();break;case\"%\":this.setgLevel(0),this.setgCharset(0,Terminal.charsets.US),this.state=states.normal,i++;break;case\"(\":case\")\":case\"*\":case\"+\":case\"-\":case\".\":switch(ch){case\"(\":this.gcharset=0;break;case\")\":this.gcharset=1;break;case\"*\":this.gcharset=2;break;case\"+\":this.gcharset=3;break;case\"-\":this.gcharset=1;break;case\".\":this.gcharset=2}this.state=states.charset;break;case\"/\":this.gcharset=3,this.state=states.charset,i--;break;case\"N\":break;case\"O\":break;case\"n\":this.setgLevel(2);break;case\"o\":this.setgLevel(3);break;case\"|\":this.setgLevel(3);break;case\"}\":this.setgLevel(2);break;case\"~\":this.setgLevel(1);break;case\"7\":this.saveCursor(),this.state=states.normal;break;case\"8\":this.restoreCursor(),this.state=states.normal;break;case\"#\":this.state=states.normal,i++;break;case\"H\":this.tabSet();break;case\"=\":this.log(\"Serial port requested application keypad.\"),this.applicationKeypad=!0,this.state=states.normal;break;case\">\":this.log(\"Switching back to normal keypad.\"),this.applicationKeypad=!1,this.state=states.normal;break;default:this.state=states.normal,this.error(\"Unknown ESC control: %s.\",ch)}break;case states.charset:switch(ch){case\"0\":cs=Terminal.charsets.SCLD;break;case\"A\":cs=Terminal.charsets.UK;break;case\"B\":cs=Terminal.charsets.US;break;case\"4\":cs=Terminal.charsets.Dutch;break;case\"C\":case\"5\":cs=Terminal.charsets.Finnish;break;case\"R\":cs=Terminal.charsets.French;break;case\"Q\":cs=Terminal.charsets.FrenchCanadian;break;case\"K\":cs=Terminal.charsets.German;break;case\"Y\":cs=Terminal.charsets.Italian;break;case\"E\":case\"6\":cs=Terminal.charsets.NorwegianDanish;break;case\"Z\":cs=Terminal.charsets.Spanish;break;case\"H\":case\"7\":cs=Terminal.charsets.Swedish;break;case\"=\":cs=Terminal.charsets.Swiss;break;case\"/\":cs=Terminal.charsets.ISOLatin,i++;break;default:cs=Terminal.charsets.US}this.setgCharset(this.gcharset,cs),this.gcharset=null,this.state=states.normal;break;case states.osc:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.params.push(this.currentParam),this.params[0]){case 0:case 1:case 2:this.params[1]&&(this.title=this.params[1],this.handleTitle(this.title));break;case 3:break;case 4:case 5:break;case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:break;case 46:break;case 50:break;case 51:break;case 52:break;case 104:case 105:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:}this.params=[],this.currentParam=0,this.state=states.normal}else this.params.length?this.currentParam+=ch:ch>=\"0\"&&\"9\">=ch?this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48:\";\"===ch&&(this.params.push(this.currentParam),this.currentParam=\"\");break;case states.csi:if(\"?\"===ch||\">\"===ch||\"!\"===ch){this.prefix=ch;break}if(ch>=\"0\"&&\"9\">=ch){this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48;break}if(\"$\"===ch||'\"'===ch||\" \"===ch||\"'\"===ch){this.postfix=ch;break}if(this.params.push(this.currentParam),this.currentParam=0,\";\"===ch)break;switch(this.state=states.normal,ch){case\"A\":this.cursorUp(this.params);break;case\"B\":this.cursorDown(this.params);break;case\"C\":this.cursorForward(this.params);break;case\"D\":this.cursorBackward(this.params);break;case\"H\":this.cursorPos(this.params);break;case\"J\":this.eraseInDisplay(this.params);break;case\"K\":this.eraseInLine(this.params);break;case\"m\":this.charAttributes(this.params);break;case\"n\":this.deviceStatus(this.params);break;case\"@\":this.insertChars(this.params);break;case\"E\":this.cursorNextLine(this.params);break;case\"F\":this.cursorPrecedingLine(this.params);break;case\"G\":this.cursorCharAbsolute(this.params);break;case\"L\":this.insertLines(this.params);break;case\"M\":this.deleteLines(this.params);break;case\"P\":this.deleteChars(this.params);break;case\"X\":this.eraseChars(this.params);break;case\"`\":this.charPosAbsolute(this.params);break;case\"a\":this.HPositionRelative(this.params);break;case\"c\":break;case\"d\":this.linePosAbsolute(this.params);break;case\"e\":this.VPositionRelative(this.params);break;case\"f\":this.HVPosition(this.params);break;case\"h\":break;case\"l\":break;case\"r\":break;case\"s\":this.saveCursor(this.params);break;case\"u\":this.restoreCursor(this.params);break;case\"I\":this.cursorForwardTab(this.params);break;case\"S\":break;case\"T\":2>this.params.length&&!this.prefix;break;case\"Z\":this.cursorBackwardTab(this.params);break;case\"b\":this.repeatPrecedingCharacter(this.params);break;case\"g\":this.tabClear(this.params);break;case\"p\":switch(this.prefix){case\"!\":this.softReset(this.params)}break;default:this.error(\"Unknown CSI code: %s.\",ch)}this.prefix=\"\",this.postfix=\"\";break;case states.dcs:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.prefix){case\"\":break;case\"$q\":var pt=this.currentParam;switch(pt){case'\"q':pt='0\"q';break;case'\"p':pt='61\"p';break;case\"r\":pt=\"\"+(this.scrollTop+1)+\";\"+(this.scrollBottom+1)+\"r\";break;case\"m\":pt=\"0m\";break;default:this.error(\"Unknown DCS Pt: %s.\",pt),pt=\"\"}break;case\"+p\":break;default:this.error(\"Unknown DCS prefix: %s.\",this.prefix)}this.currentParam=0,this.prefix=\"\",this.state=states.normal}else this.currentParam?this.currentParam+=ch:this.prefix||\"$\"===ch||\"+\"===ch?2===this.prefix.length?this.currentParam=ch:this.prefix+=ch:this.currentParam=ch;break;case states.ignore:\"\u001b\"===ch||\"\u0007\"===ch?(\"\u001b\"===ch&&i++,this.stateData=\"\",this.state=states.normal):(this.stateData||(this.stateData=\"\"),this.stateData+=ch)}this.updateRange(this.y),this.refresh(this.refreshStart,this.refreshEnd)},Terminal.prototype.writeln=function(data){data=data.replace(/ /g,\" \"),this.write(data+\" \\r\\n\")}}},{\"./states\":36}],32:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.index=function(){this.y++,this.y>this.scrollBottom&&(this.y--,this.scroll()),this.state=states.normal},Terminal.prototype.reverseIndex=function(){var j;this.y--,this.y\u003Cthis.scrollTop&&(this.y++,this.lines.splice(this.y+this.ybase,0,this.blankLine(!0)),j=this.rows-1-this.scrollBottom,this.lines.splice(this.rows-1+this.ybase-j+1,1),this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)),this.state=states.normal}}},{\"../states\":36}],34:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.tabSet=function(){this.tabs[this.x]=!0,this.state=states.normal}}},{\"../states\":36}],26:[function(require,module){(function(process){\"use strict\";function isFunctionDeclaration(snippet){var firstStatement=snippet.ast.body&&snippet.ast.body[0]&&snippet.ast.body[0];return firstStatement&&\"FunctionDeclaration\"===firstStatement.type}function added(origKeys,keys){return keys.filter(function(k){return!~origKeys.indexOf(k)\n})}function changed(ctx,prevCtx,prevKeys){return prevKeys.filter(function(k){return!deepIs(prevCtx[k],ctx[k])})}function keyValues(keys,ctx,prevCtx){return keys.map(function(k){return{key:k,value:ctx[k],prevValue:prevCtx?prevCtx[k]:void 0}})}function cleaned(ctx,add){var cleanedCtx=removeProblematic(ctx);return Object.keys(add).forEach(function(k){cleanedCtx[k]=add[k]}),cleanedCtx}function evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues){browser&&(ctx=cleaned(ctx,allTrackedKeyValues));var result,prevCtx=clone(ctx),prevKeys=Object.keys(prevCtx),code=snippet.code;try{isStrict&&!useStrictRx.test(code)&&parse('\"use strict\";'+snippet.code),result=runner.runInCtx(code,ctx)}catch(e){ctx[ErrorIndicator]=\"\"+e}browser&&(ctx=cleaned(ctx,{}));var crntCtx=clone(ctx),keys=Object.keys(crntCtx),addedValues=added(prevKeys,keys);browser&&(addedValues=removeIFrameGenerated(addedValues));var addedKeyValues=keyValues(addedValues,crntCtx),changedValues=changed(crntCtx,prevCtx,prevKeys),changedKeyValues=keyValues(changedValues,crntCtx,prevCtx);snippet.evaluated={result:result,ctx:prevCtx,added:clone(addedKeyValues),changed:clone(changedKeyValues)},browser&&(addedKeyValues.concat(changedKeyValues).forEach(function(x){allTrackedKeyValues[x.key]=x.value}),delete allTrackedKeyValues[ErrorIndicator]),delete ctx[ErrorIndicator]}var browser=process.browser,clone=(require(\"vm\"),require(\"clone\")),deepIs=require(\"deep-is\"),runner=require(\"./runner-vm\"),colors=require(\"ansicolors\"),parse=require(\"esprima\").parse,removeIFrameGenerated=require(\"./remove-iframe-generated\"),removeProblematic=require(\"./remove-problematic\"),createSandbox=require(\"./create-sandbox\"),ErrorIndicator=colors.red(\"!\"),useStrictRx=/^ *['\"]use strict['\"]/;module.exports=function(snippets,fullSrcPath){var fndecs,sandbox=createSandbox(fullSrcPath),ctx=runner.createCtx(sandbox),allTrackedKeyValues={},nonEmptySnippets=snippets.filter(function(snippet){return snippet.code.length}),isStrict=nonEmptySnippets.some(function(snippet){return useStrictRx.test(snippet.raw)});return browser||(fndecs=nonEmptySnippets.filter(function(snippet,idx){return isFunctionDeclaration(snippet)?(nonEmptySnippets.splice(idx,1),!0):!1}),fndecs.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)})),nonEmptySnippets.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)}),ctx}})(require(\"__browserify_process\"))},{vm:31,\"./runner-vm\":59,\"./remove-iframe-generated\":60,\"./remove-problematic\":61,\"./create-sandbox\":66,clone:67,ansicolors:68,\"deep-is\":69,esprima:70,__browserify_process:16}],66:[function(require,module){(function(process,global){\"use strict\";function cleanProcess(process){var exclude={stdout:!0,stderr:!0,stdin:!0,mainModule:!0};return removeProblematic(process,exclude)}var browser=process.browser,requireLikeName=\"require-like\",requireLike=browser?function(){}:require(requireLikeName),path=require(\"path\"),removeProblematic=require(\"./remove-problematic\");module.exports=function(fullSrcPath){var exports={},sandbox={console:global.console,module:{exports:exports,parent:null},exports:exports,process:cleanProcess(process)},serverside={require:requireLike(fullSrcPath),__filename:fullSrcPath,__dirname:path.dirname(fullSrcPath),Buffer:require(\"buffer\").Buffer,ArrayBuffer:global.ArrayBuffer,Int8Array:global.Int8Array,Uint8Array:global.Uint8Array,Uint8ClampedArray:global.Uint8ClampedArray,Int16Array:global.Int16Array,Uint16Array:global.Uint16Array,Int32Array:global.Int32Array,Uint32Array:global.Uint32Array,Float32Array:global.Float32Array,Float64Array:global.Float64Array,DataView:global.DataView};return browser||Object.keys(serverside).forEach(function(k){sandbox[k]=serverside[k]}),sandbox}})(require(\"__browserify_process\"),window)},{path:65,buffer:71,\"./remove-problematic\":61,__browserify_process:16}],27:[function(require,module){\"use strict\";function formatAdd(key,value,diffopts){return format(\"%s %s: %s\",colors.brightGreen(\"+\"),key,diffValues({},value,diffopts))}function formatChange(key,prevValue,value,diffopts){return format(\"%s %s: %s\",colors.brightBlue(\"~\"),key,diffValues(prevValue,value,diffopts))}function formatResult(result,diffopts){return format(\"%s %s\",colors.cyan(\"=>\"),diffValues({},result,diffopts))}function formatSectionEnd(multiLine,lastOne){return!multiLine||lastOne?\"\\n\":colors.brightBlack(\"\\n--------\\n\")}function resolveTale(evaluated,opts){if(!evaluated)return\"\";var tales=[];return evaluated.added.length&&evaluated.added.forEach(function(x){tales.push(opts.formatAdd(x.key,x.value,opts.diff))}),evaluated.changed.length&&evaluated.changed.forEach(function(x){tales.push(opts.formatChange(x.key,x.prevValue,x.value,opts.diff))}),evaluated.result!==void 0&&tales.push(opts.formatResult(evaluated.result,opts.diff)),tales.reduce(function(s,tale,idx,all){var lastOne=idx===all.length-1,multiLine=~tale.indexOf(\"\\n\");return s+tale+opts.formatSectionEnd(multiLine,lastOne)},\"\")}var diffValues=require(\"./diff-values\"),format=require(\"util\").format,colors=require(\"ansicolors\");module.exports=function(snippets,opts){return opts=opts||{},opts.formatAdd=opts.formatAdd||formatAdd,opts.formatChange=opts.formatChange||formatChange,opts.formatResult=opts.formatResult||formatResult,opts.formatSectionEnd=opts.formatSectionEnd||formatSectionEnd,snippets.map(function(snippet){var tale=resolveTale(snippet.evaluated,opts);return{tale:tale,insertAfter:snippet.end}})}},{util:6,\"./diff-values\":72,ansicolors:68}],73:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:6,buffer:71}],74:[function(){},{}],69:[function(require,module){function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function isNumberNaN(value){return\"number\"==typeof value&&value!==value}function areZerosEqual(zeroA,zeroB){return 1/zeroA===1/zeroB}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),deepEqual(a,b)):!1;try{var key,i,ka=Object_keys(a),kb=Object_keys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!deepEqual(a[key],b[key]))return!1;return!0}var pSlice=Array.prototype.slice,Object_keys=\"function\"==typeof Object.keys?Object.keys:function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},deepEqual=module.exports=function(actual,expected){return 0===actual&&0===expected?areZerosEqual(actual,expected):actual===expected?!0:actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():isNumberNaN(actual)?isNumberNaN(expected):\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}},{}],68:[function(require,module){\"use strict\";var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},backgroundColorNums={bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+colorNums[k]+\"m\"+s+\"\u001b[39m\"}}),Object.keys(backgroundColorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+backgroundColorNums[k]+\"m\"+s+\"\u001b[49m\"}}),module.exports=colors},{}],70:[function(require,module,exports){(function(){(function(root,factory){\"use strict\";\"function\"==typeof define&&define.amd?define([\"exports\"],factory):exports!==void 0?factory(exports):factory(root.esprima={})})(this,function(exports){\"use strict\";function assert(condition,message){if(!condition)throw Error(\"ASSERT: \"+message)}function sliceSource(from,to){return source.slice(from,to)}function isDecimalDigit(ch){return\"0123456789\".indexOf(ch)>=0}function isHexDigit(ch){return\"0123456789abcdefABCDEF\".indexOf(ch)>=0}function isOctalDigit(ch){return\"01234567\".indexOf(ch)>=0}function isWhiteSpace(ch){return\" \"===ch||\"\t\"===ch||\"\u000b\"===ch||\"\\f\"===ch||\" \"===ch||ch.charCodeAt(0)>=5760&&\" \".indexOf(ch)>=0}function isLineTerminator(ch){return\"\\n\"===ch||\"\\r\"===ch||\"\\u2028\"===ch||\"\\u2029\"===ch}function isIdentifierStart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierStart.test(ch)}function isIdentifierPart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch>=\"0\"&&\"9\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierPart.test(ch)}function isFutureReservedWord(id){switch(id){case\"class\":case\"enum\":case\"export\":case\"extends\":case\"import\":case\"super\":return!0}return!1}function isStrictModeReservedWord(id){switch(id){case\"implements\":case\"interface\":case\"package\":case\"private\":case\"protected\":case\"public\":case\"static\":case\"yield\":case\"let\":return!0}return!1}function isRestrictedWord(id){return\"eval\"===id||\"arguments\"===id}function isKeyword(id){var keyword=!1;switch(id.length){case 2:keyword=\"if\"===id||\"in\"===id||\"do\"===id;break;case 3:keyword=\"var\"===id||\"for\"===id||\"new\"===id||\"try\"===id;break;case 4:keyword=\"this\"===id||\"else\"===id||\"case\"===id||\"void\"===id||\"with\"===id;break;case 5:keyword=\"while\"===id||\"break\"===id||\"catch\"===id||\"throw\"===id;break;case 6:keyword=\"return\"===id||\"typeof\"===id||\"delete\"===id||\"switch\"===id;break;case 7:keyword=\"default\"===id||\"finally\"===id;break;case 8:keyword=\"function\"===id||\"continue\"===id||\"debugger\"===id;break;case 10:keyword=\"instanceof\"===id}if(keyword)return!0;switch(id){case\"const\":return!0;case\"yield\":case\"let\":return!0}return strict&&isStrictModeReservedWord(id)?!0:isFutureReservedWord(id)}function skipComment(){var ch,blockComment,lineComment;for(blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)&&(lineComment=!1,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index);else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]&&++index,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),\"*\"===ch&&(ch=source[index],\"/\"===ch&&(++index,blockComment=!1)));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)index+=2,lineComment=!0;else{if(\"*\"!==ch)break;index+=2,blockComment=!0,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function scanHexEscape(prefix){var i,len,ch,code=0;for(len=\"u\"===prefix?4:2,i=0;len>i;++i){if(!(length>index&&isHexDigit(source[index])))return\"\";ch=source[index++],code=16*code+\"0123456789abcdef\".indexOf(ch.toLowerCase())}return String.fromCharCode(code)}function scanIdentifier(){var ch,start,id,restore;if(ch=source[index],isIdentifierStart(ch)){if(start=index,\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierStart(ch))return;id=ch}else index=restore,id=\"u\"}else id=source[index++];for(;length>index&&(ch=source[index],isIdentifierPart(ch));)if(\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierPart(ch))return;id+=ch}else index=restore,id+=\"u\"}else id+=source[index++];return 1===id.length?{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:isKeyword(id)?{type:Token.Keyword,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"null\"===id?{type:Token.NullLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"true\"===id||\"false\"===id?{type:Token.BooleanLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}}function scanPunctuator(){var ch2,ch3,ch4,start=index,ch1=source[index];return\";\"===ch1||\"{\"===ch1||\"}\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\",\"===ch1||\"(\"===ch1||\")\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):(ch2=source[index+1],\".\"!==ch1||isDecimalDigit(ch2)?(ch3=source[index+2],ch4=source[index+3],\">\"===ch1&&\">\"===ch2&&\">\"===ch3&&\"=\"===ch4?(index+=4,{type:Token.Punctuator,value:\">>>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"===\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"!\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"!==\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\">\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>>\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"\u003C\"===ch1&&\"\u003C\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"\u003C\u003C=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch2&&\"\u003C>=!+-*%&|^/\".indexOf(ch1)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):ch1===ch2&&\"+-\u003C>&|\".indexOf(ch1)>=0&&\"+-\u003C>&|\".indexOf(ch2)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"[]\u003C>+-*%&|^!~?:=/\".indexOf(ch1)>=0?{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:void 0):{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]})}function scanNumericLiteral(){var number,start,ch;if(ch=source[index],assert(isDecimalDigit(ch)||\".\"===ch,\"Numeric literal must start with a decimal digit or a decimal point\"),start=index,number=\"\",\".\"!==ch){if(number=source[index++],ch=source[index],\"0\"===number){if(\"x\"===ch||\"X\"===ch){for(number+=source[index++];length>index&&(ch=source[index],isHexDigit(ch));)number+=source[index++];return 2>=number.length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,16),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}if(isOctalDigit(ch)){for(number+=source[index++];length>index&&(ch=source[index],isOctalDigit(ch));)number+=source[index++];return length>index&&(ch=source[index],(isIdentifierStart(ch)||isDecimalDigit(ch))&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,8),octal:!0,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}isDecimalDigit(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}for(;length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++]}if(\".\"===ch)for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];if(\"e\"===ch||\"E\"===ch)if(number+=source[index++],ch=source[index],(\"+\"===ch||\"-\"===ch)&&(number+=source[index++]),ch=source[index],isDecimalDigit(ch))for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];else ch=\"character \"+ch,index>=length&&(ch=\"\u003Cend>\"),throwError({},Messages.UnexpectedToken,\"ILLEGAL\");return length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseFloat(number),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanStringLiteral(){var quote,start,ch,code,unescaped,restore,str=\"\",octal=!1;for(quote=source[index],assert(\"'\"===quote||'\"'===quote,\"String literal must starts with a quote\"),start=index,++index;length>index;){if(ch=source[index++],ch===quote){quote=\"\";break}if(\"\\\\\"===ch)if(ch=source[index++],isLineTerminator(ch))++lineNumber,\"\\r\"===ch&&\"\\n\"===source[index]&&++index;else switch(ch){case\"n\":str+=\"\\n\";break;case\"r\":str+=\"\\r\";break;case\"t\":str+=\"\t\";break;case\"u\":case\"x\":restore=index,unescaped=scanHexEscape(ch),unescaped?str+=unescaped:(index=restore,str+=ch);break;case\"b\":str+=\"\\b\";break;case\"f\":str+=\"\\f\";break;case\"v\":str+=\"\u000b\";break;default:isOctalDigit(ch)?(code=\"01234567\".indexOf(ch),0!==code&&(octal=!0),length>index&&isOctalDigit(source[index])&&(octal=!0,code=8*code+\"01234567\".indexOf(source[index++]),\"0123\".indexOf(ch)>=0&&length>index&&isOctalDigit(source[index])&&(code=8*code+\"01234567\".indexOf(source[index++]))),str+=String.fromCharCode(code)):str+=ch}else{if(isLineTerminator(ch))break;str+=ch}}return\"\"!==quote&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),{type:Token.StringLiteral,value:str,octal:octal,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanRegExp(){var str,ch,start,pattern,flags,value,restore,classMarker=!1,terminated=!1;for(buffer=null,skipComment(),start=index,ch=source[index],assert(\"/\"===ch,\"Regular expression literal must start with a slash\"),str=source[index++];length>index;)if(ch=source[index++],str+=ch,classMarker)\"]\"===ch&&(classMarker=!1);else if(\"\\\\\"===ch)ch=source[index++],isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp),str+=ch;else{if(\"/\"===ch){terminated=!0;break}\"[\"===ch?classMarker=!0:isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp)}for(terminated||throwError({},Messages.UnterminatedRegExp),pattern=str.substr(1,str.length-2),flags=\"\";length>index&&(ch=source[index],isIdentifierPart(ch));)if(++index,\"\\\\\"===ch&&length>index)if(ch=source[index],\"u\"===ch)if(++index,restore=index,ch=scanHexEscape(\"u\"))for(flags+=ch,str+=\"\\\\u\";index>restore;++restore)str+=source[restore];else index=restore,flags+=\"u\",str+=\"\\\\u\";else str+=\"\\\\\";else flags+=ch,str+=ch;try{value=RegExp(pattern,flags)}catch(e){throwError({},Messages.InvalidRegExp)}return{literal:str,value:value,range:[start,index]}}function isIdentifierName(token){return token.type===Token.Identifier||token.type===Token.Keyword||token.type===Token.BooleanLiteral||token.type===Token.NullLiteral}function advance(){var ch,token;return skipComment(),index>=length?{type:Token.EOF,lineNumber:lineNumber,lineStart:lineStart,range:[index,index]}:(token=scanPunctuator(),token!==void 0?token:(ch=source[index],\"'\"===ch||'\"'===ch?scanStringLiteral():\".\"===ch||isDecimalDigit(ch)?scanNumericLiteral():(token=scanIdentifier(),token!==void 0?token:(throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),void 0))))}function lex(){var token;return buffer?(index=buffer.range[1],lineNumber=buffer.lineNumber,lineStart=buffer.lineStart,token=buffer,buffer=null,token):(buffer=null,advance())}function lookahead(){var pos,line,start;return null!==buffer?buffer:(pos=index,line=lineNumber,start=lineStart,buffer=advance(),index=pos,lineNumber=line,lineStart=start,buffer)}function peekLineTerminator(){var pos,line,start,found;return pos=index,line=lineNumber,start=lineStart,skipComment(),found=lineNumber!==line,index=pos,lineNumber=line,lineStart=start,found}function throwError(token,messageFormat){var error,args=Array.prototype.slice.call(arguments,2),msg=messageFormat.replace(/%(\\d)/g,function(whole,index){return args[index]||\"\"});throw\"number\"==typeof token.lineNumber?(error=Error(\"Line \"+token.lineNumber+\": \"+msg),error.index=token.range[0],error.lineNumber=token.lineNumber,error.column=token.range[0]-lineStart+1):(error=Error(\"Line \"+lineNumber+\": \"+msg),error.index=index,error.lineNumber=lineNumber,error.column=index-lineStart+1),error}function throwErrorTolerant(){try{throwError.apply(null,arguments)}catch(e){if(!extra.errors)throw e;extra.errors.push(e)}}function throwUnexpected(token){if(token.type===Token.EOF&&throwError(token,Messages.UnexpectedEOS),token.type===Token.NumericLiteral&&throwError(token,Messages.UnexpectedNumber),token.type===Token.StringLiteral&&throwError(token,Messages.UnexpectedString),token.type===Token.Identifier&&throwError(token,Messages.UnexpectedIdentifier),token.type===Token.Keyword){if(isFutureReservedWord(token.value))throwError(token,Messages.UnexpectedReserved);else if(strict&&isStrictModeReservedWord(token.value))return throwErrorTolerant(token,Messages.StrictReservedWord),void 0;throwError(token,Messages.UnexpectedToken,token.value)}throwError(token,Messages.UnexpectedToken,token.value)}function expect(value){var token=lex();(token.type!==Token.Punctuator||token.value!==value)&&throwUnexpected(token)}function expectKeyword(keyword){var token=lex();(token.type!==Token.Keyword||token.value!==keyword)&&throwUnexpected(token)}function match(value){var token=lookahead();return token.type===Token.Punctuator&&token.value===value}function matchKeyword(keyword){var token=lookahead();return token.type===Token.Keyword&&token.value===keyword}function matchAssign(){var token=lookahead(),op=token.value;return token.type!==Token.Punctuator?!1:\"=\"===op||\"*=\"===op||\"/=\"===op||\"%=\"===op||\"+=\"===op||\"-=\"===op||\"\u003C\u003C=\"===op||\">>=\"===op||\">>>=\"===op||\"&=\"===op||\"^=\"===op||\"|=\"===op}function consumeSemicolon(){var token,line;if(\";\"===source[index])return lex(),void 0;if(line=lineNumber,skipComment(),lineNumber===line){if(match(\";\"))return lex(),void 0;token=lookahead(),token.type===Token.EOF||match(\"}\")||throwUnexpected(token)}}function isLeftHandSide(expr){return expr.type===Syntax.Identifier||expr.type===Syntax.MemberExpression}function parseArrayInitialiser(){var elements=[];for(expect(\"[\");!match(\"]\");)match(\",\")?(lex(),elements.push(null)):(elements.push(parseAssignmentExpression()),match(\"]\")||expect(\",\"));return expect(\"]\"),{type:Syntax.ArrayExpression,elements:elements}}function parsePropertyFunction(param,first){var previousStrict,body;return previousStrict=strict,body=parseFunctionSourceElements(),first&&strict&&isRestrictedWord(param[0].name)&&throwErrorTolerant(first,Messages.StrictParamName),strict=previousStrict,{type:Syntax.FunctionExpression,id:null,params:param,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseObjectPropertyKey(){var token=lex();return token.type===Token.StringLiteral||token.type===Token.NumericLiteral?(strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(token)):{type:Syntax.Identifier,name:token.value}}function parseObjectProperty(){var token,key,id,param;return token=lookahead(),token.type===Token.Identifier?(id=parseObjectPropertyKey(),\"get\"!==token.value||match(\":\")?\"set\"!==token.value||match(\":\")?(expect(\":\"),{type:Syntax.Property,key:id,value:parseAssignmentExpression(),kind:\"init\"}):(key=parseObjectPropertyKey(),expect(\"(\"),token=lookahead(),token.type!==Token.Identifier&&throwUnexpected(lex()),param=[parseVariableIdentifier()],expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction(param,token),kind:\"set\"}):(key=parseObjectPropertyKey(),expect(\"(\"),expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction([]),kind:\"get\"})):token.type!==Token.EOF&&token.type!==Token.Punctuator?(key=parseObjectPropertyKey(),expect(\":\"),{type:Syntax.Property,key:key,value:parseAssignmentExpression(),kind:\"init\"}):(throwUnexpected(token),void 0)}function parseObjectInitialiser(){var property,name,kind,properties=[],map={},toString=String;for(expect(\"{\");!match(\"}\");)property=parseObjectProperty(),name=property.key.type===Syntax.Identifier?property.key.name:toString(property.key.value),kind=\"init\"===property.kind?PropertyKind.Data:\"get\"===property.kind?PropertyKind.Get:PropertyKind.Set,Object.prototype.hasOwnProperty.call(map,name)?(map[name]===PropertyKind.Data?strict&&kind===PropertyKind.Data?throwErrorTolerant({},Messages.StrictDuplicateProperty):kind!==PropertyKind.Data&&throwErrorTolerant({},Messages.AccessorDataProperty):kind===PropertyKind.Data?throwErrorTolerant({},Messages.AccessorDataProperty):map[name]&kind&&throwErrorTolerant({},Messages.AccessorGetSet),map[name]|=kind):map[name]=kind,properties.push(property),match(\"}\")||expect(\",\");return expect(\"}\"),{type:Syntax.ObjectExpression,properties:properties}}function parseGroupExpression(){var expr;return expect(\"(\"),expr=parseExpression(),expect(\")\"),expr}function parsePrimaryExpression(){var token=lookahead(),type=token.type;if(type===Token.Identifier)return{type:Syntax.Identifier,name:lex().value};if(type===Token.StringLiteral||type===Token.NumericLiteral)return strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(lex());if(type===Token.Keyword){if(matchKeyword(\"this\"))return lex(),{type:Syntax.ThisExpression};if(matchKeyword(\"function\"))return parseFunctionExpression()}return type===Token.BooleanLiteral?(lex(),token.value=\"true\"===token.value,createLiteral(token)):type===Token.NullLiteral?(lex(),token.value=null,createLiteral(token)):match(\"[\")?parseArrayInitialiser():match(\"{\")?parseObjectInitialiser():match(\"(\")?parseGroupExpression():match(\"/\")||match(\"/=\")?createLiteral(scanRegExp()):throwUnexpected(lex())}function parseArguments(){var args=[];if(expect(\"(\"),!match(\")\"))for(;length>index&&(args.push(parseAssignmentExpression()),!match(\")\"));)expect(\",\");return expect(\")\"),args}function parseNonComputedProperty(){var token=lex();return isIdentifierName(token)||throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseNonComputedMember(){return expect(\".\"),parseNonComputedProperty()}function parseComputedMember(){var expr;return expect(\"[\"),expr=parseExpression(),expect(\"]\"),expr}function parseNewExpression(){var expr;return expectKeyword(\"new\"),expr={type:Syntax.NewExpression,callee:parseLeftHandSideExpression(),arguments:[]},match(\"(\")&&(expr.arguments=parseArguments()),expr}function parseLeftHandSideExpressionAllowCall(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)expr=match(\"(\")?{type:Syntax.CallExpression,callee:expr,arguments:parseArguments()}:match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parseLeftHandSideExpression(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)expr=match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parsePostfixExpression(){var token,expr=parseLeftHandSideExpressionAllowCall();return token=lookahead(),token.type!==Token.Punctuator?expr:(!match(\"++\")&&!match(\"--\")||peekLineTerminator()||(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPostfix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:lex().value,argument:expr,prefix:!1}),expr)}function parseUnaryExpression(){var token,expr;return token=lookahead(),token.type!==Token.Punctuator&&token.type!==Token.Keyword?parsePostfixExpression():match(\"++\")||match(\"--\")?(token=lex(),expr=parseUnaryExpression(),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPrefix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:token.value,argument:expr,prefix:!0}):match(\"+\")||match(\"-\")||match(\"~\")||match(\"!\")?expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()}:matchKeyword(\"delete\")||matchKeyword(\"void\")||matchKeyword(\"typeof\")?(expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()},strict&&\"delete\"===expr.operator&&expr.argument.type===Syntax.Identifier&&throwErrorTolerant({},Messages.StrictDelete),expr):parsePostfixExpression()\n}function parseMultiplicativeExpression(){for(var expr=parseUnaryExpression();match(\"*\")||match(\"/\")||match(\"%\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseUnaryExpression()};return expr}function parseAdditiveExpression(){for(var expr=parseMultiplicativeExpression();match(\"+\")||match(\"-\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseMultiplicativeExpression()};return expr}function parseShiftExpression(){for(var expr=parseAdditiveExpression();match(\"\u003C\u003C\")||match(\">>\")||match(\">>>\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseAdditiveExpression()};return expr}function parseRelationalExpression(){var expr,previousAllowIn;for(previousAllowIn=state.allowIn,state.allowIn=!0,expr=parseShiftExpression();match(\"\u003C\")||match(\">\")||match(\"\u003C=\")||match(\">=\")||previousAllowIn&&matchKeyword(\"in\")||matchKeyword(\"instanceof\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseShiftExpression()};return state.allowIn=previousAllowIn,expr}function parseEqualityExpression(){for(var expr=parseRelationalExpression();match(\"==\")||match(\"!=\")||match(\"===\")||match(\"!==\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseRelationalExpression()};return expr}function parseBitwiseANDExpression(){for(var expr=parseEqualityExpression();match(\"&\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"&\",left:expr,right:parseEqualityExpression()};return expr}function parseBitwiseXORExpression(){for(var expr=parseBitwiseANDExpression();match(\"^\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"^\",left:expr,right:parseBitwiseANDExpression()};return expr}function parseBitwiseORExpression(){for(var expr=parseBitwiseXORExpression();match(\"|\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"|\",left:expr,right:parseBitwiseXORExpression()};return expr}function parseLogicalANDExpression(){for(var expr=parseBitwiseORExpression();match(\"&&\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"&&\",left:expr,right:parseBitwiseORExpression()};return expr}function parseLogicalORExpression(){for(var expr=parseLogicalANDExpression();match(\"||\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"||\",left:expr,right:parseLogicalANDExpression()};return expr}function parseConditionalExpression(){var expr,previousAllowIn,consequent;return expr=parseLogicalORExpression(),match(\"?\")&&(lex(),previousAllowIn=state.allowIn,state.allowIn=!0,consequent=parseAssignmentExpression(),state.allowIn=previousAllowIn,expect(\":\"),expr={type:Syntax.ConditionalExpression,test:expr,consequent:consequent,alternate:parseAssignmentExpression()}),expr}function parseAssignmentExpression(){var token,expr;return token=lookahead(),expr=parseConditionalExpression(),matchAssign()&&(isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant(token,Messages.StrictLHSAssignment),expr={type:Syntax.AssignmentExpression,operator:lex().value,left:expr,right:parseAssignmentExpression()}),expr}function parseExpression(){var expr=parseAssignmentExpression();if(match(\",\"))for(expr={type:Syntax.SequenceExpression,expressions:[expr]};length>index&&match(\",\");)lex(),expr.expressions.push(parseAssignmentExpression());return expr}function parseStatementList(){for(var statement,list=[];length>index&&!match(\"}\")&&(statement=parseSourceElement(),void 0!==statement);)list.push(statement);return list}function parseBlock(){var block;return expect(\"{\"),block=parseStatementList(),expect(\"}\"),{type:Syntax.BlockStatement,body:block}}function parseVariableIdentifier(){var token=lex();return token.type!==Token.Identifier&&throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseVariableDeclaration(kind){var id=parseVariableIdentifier(),init=null;return strict&&isRestrictedWord(id.name)&&throwErrorTolerant({},Messages.StrictVarName),\"const\"===kind?(expect(\"=\"),init=parseAssignmentExpression()):match(\"=\")&&(lex(),init=parseAssignmentExpression()),{type:Syntax.VariableDeclarator,id:id,init:init}}function parseVariableDeclarationList(kind){for(var list=[];length>index&&(list.push(parseVariableDeclaration(kind)),match(\",\"));)lex();return list}function parseVariableStatement(){var declarations;return expectKeyword(\"var\"),declarations=parseVariableDeclarationList(),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:\"var\"}}function parseConstLetDeclaration(kind){var declarations;return expectKeyword(kind),declarations=parseVariableDeclarationList(kind),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:kind}}function parseEmptyStatement(){return expect(\";\"),{type:Syntax.EmptyStatement}}function parseExpressionStatement(){var expr=parseExpression();return consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr}}function parseIfStatement(){var test,consequent,alternate;return expectKeyword(\"if\"),expect(\"(\"),test=parseExpression(),expect(\")\"),consequent=parseStatement(),matchKeyword(\"else\")?(lex(),alternate=parseStatement()):alternate=null,{type:Syntax.IfStatement,test:test,consequent:consequent,alternate:alternate}}function parseDoWhileStatement(){var body,test,oldInIteration;return expectKeyword(\"do\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),match(\";\")&&lex(),{type:Syntax.DoWhileStatement,body:body,test:test}}function parseWhileStatement(){var test,body,oldInIteration;return expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,{type:Syntax.WhileStatement,test:test,body:body}}function parseForVariableDeclaration(){var token=lex();return{type:Syntax.VariableDeclaration,declarations:parseVariableDeclarationList(),kind:token.value}}function parseForStatement(){var init,test,update,left,right,body,oldInIteration;return init=test=update=null,expectKeyword(\"for\"),expect(\"(\"),match(\";\")?lex():(matchKeyword(\"var\")||matchKeyword(\"let\")?(state.allowIn=!1,init=parseForVariableDeclaration(),state.allowIn=!0,1===init.declarations.length&&matchKeyword(\"in\")&&(lex(),left=init,right=parseExpression(),init=null)):(state.allowIn=!1,init=parseExpression(),state.allowIn=!0,matchKeyword(\"in\")&&(isLeftHandSide(init)||throwError({},Messages.InvalidLHSInForIn),lex(),left=init,right=parseExpression(),init=null)),left===void 0&&expect(\";\")),left===void 0&&(match(\";\")||(test=parseExpression()),expect(\";\"),match(\")\")||(update=parseExpression())),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,left===void 0?{type:Syntax.ForStatement,init:init,test:test,update:update,body:body}:{type:Syntax.ForInStatement,left:left,right:right,body:body,each:!1}}function parseContinueStatement(){var token,label=null;return expectKeyword(\"continue\"),\";\"===source[index]?(lex(),state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):peekLineTerminator()?(state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:label})}function parseBreakStatement(){var token,label=null;return expectKeyword(\"break\"),\";\"===source[index]?(lex(),state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):peekLineTerminator()?(state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:label})}function parseReturnStatement(){var token,argument=null;return expectKeyword(\"return\"),state.inFunctionBody||throwErrorTolerant({},Messages.IllegalReturn),\" \"===source[index]&&isIdentifierStart(source[index+1])?(argument=parseExpression(),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument}):peekLineTerminator()?{type:Syntax.ReturnStatement,argument:null}:(match(\";\")||(token=lookahead(),match(\"}\")||token.type===Token.EOF||(argument=parseExpression())),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument})}function parseWithStatement(){var object,body;return strict&&throwErrorTolerant({},Messages.StrictModeWith),expectKeyword(\"with\"),expect(\"(\"),object=parseExpression(),expect(\")\"),body=parseStatement(),{type:Syntax.WithStatement,object:object,body:body}}function parseSwitchCase(){var test,statement,consequent=[];for(matchKeyword(\"default\")?(lex(),test=null):(expectKeyword(\"case\"),test=parseExpression()),expect(\":\");length>index&&!(match(\"}\")||matchKeyword(\"default\")||matchKeyword(\"case\"))&&(statement=parseStatement(),void 0!==statement);)consequent.push(statement);return{type:Syntax.SwitchCase,test:test,consequent:consequent}}function parseSwitchStatement(){var discriminant,cases,clause,oldInSwitch,defaultFound;if(expectKeyword(\"switch\"),expect(\"(\"),discriminant=parseExpression(),expect(\")\"),expect(\"{\"),match(\"}\"))return lex(),{type:Syntax.SwitchStatement,discriminant:discriminant};for(cases=[],oldInSwitch=state.inSwitch,state.inSwitch=!0,defaultFound=!1;length>index&&!match(\"}\");)clause=parseSwitchCase(),null===clause.test&&(defaultFound&&throwError({},Messages.MultipleDefaultsInSwitch),defaultFound=!0),cases.push(clause);return state.inSwitch=oldInSwitch,expect(\"}\"),{type:Syntax.SwitchStatement,discriminant:discriminant,cases:cases}}function parseThrowStatement(){var argument;return expectKeyword(\"throw\"),peekLineTerminator()&&throwError({},Messages.NewlineAfterThrow),argument=parseExpression(),consumeSemicolon(),{type:Syntax.ThrowStatement,argument:argument}}function parseCatchClause(){var param;return expectKeyword(\"catch\"),expect(\"(\"),match(\")\")||(param=parseExpression(),strict&¶m.type===Syntax.Identifier&&isRestrictedWord(param.name)&&throwErrorTolerant({},Messages.StrictCatchVariable)),expect(\")\"),{type:Syntax.CatchClause,param:param,body:parseBlock()}}function parseTryStatement(){var block,handlers=[],finalizer=null;return expectKeyword(\"try\"),block=parseBlock(),matchKeyword(\"catch\")&&handlers.push(parseCatchClause()),matchKeyword(\"finally\")&&(lex(),finalizer=parseBlock()),0!==handlers.length||finalizer||throwError({},Messages.NoCatchOrFinally),{type:Syntax.TryStatement,block:block,guardedHandlers:[],handlers:handlers,finalizer:finalizer}}function parseDebuggerStatement(){return expectKeyword(\"debugger\"),consumeSemicolon(),{type:Syntax.DebuggerStatement}}function parseStatement(){var expr,labeledBody,token=lookahead();if(token.type===Token.EOF&&throwUnexpected(token),token.type===Token.Punctuator)switch(token.value){case\";\":return parseEmptyStatement();case\"{\":return parseBlock();case\"(\":return parseExpressionStatement();default:}if(token.type===Token.Keyword)switch(token.value){case\"break\":return parseBreakStatement();case\"continue\":return parseContinueStatement();case\"debugger\":return parseDebuggerStatement();case\"do\":return parseDoWhileStatement();case\"for\":return parseForStatement();case\"function\":return parseFunctionDeclaration();case\"if\":return parseIfStatement();case\"return\":return parseReturnStatement();case\"switch\":return parseSwitchStatement();case\"throw\":return parseThrowStatement();case\"try\":return parseTryStatement();case\"var\":return parseVariableStatement();case\"while\":return parseWhileStatement();case\"with\":return parseWithStatement();default:}return expr=parseExpression(),expr.type===Syntax.Identifier&&match(\":\")?(lex(),Object.prototype.hasOwnProperty.call(state.labelSet,expr.name)&&throwError({},Messages.Redeclaration,\"Label\",expr.name),state.labelSet[expr.name]=!0,labeledBody=parseStatement(),delete state.labelSet[expr.name],{type:Syntax.LabeledStatement,label:expr,body:labeledBody}):(consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr})}function parseFunctionSourceElements(){var sourceElement,token,directive,firstRestricted,oldLabelSet,oldInIteration,oldInSwitch,oldInFunctionBody,sourceElements=[];for(expect(\"{\");length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(oldLabelSet=state.labelSet,oldInIteration=state.inIteration,oldInSwitch=state.inSwitch,oldInFunctionBody=state.inFunctionBody,state.labelSet={},state.inIteration=!1,state.inSwitch=!1,state.inFunctionBody=!0;length>index&&!match(\"}\")&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return expect(\"}\"),state.labelSet=oldLabelSet,state.inIteration=oldInIteration,state.inSwitch=oldInSwitch,state.inFunctionBody=oldInFunctionBody,{type:Syntax.BlockStatement,body:sourceElements}}function parseFunctionDeclaration(){var id,param,body,token,stricted,firstRestricted,message,previousStrict,paramSet,params=[];if(expectKeyword(\"function\"),token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionDeclaration,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseFunctionExpression(){var token,stricted,firstRestricted,message,param,body,previousStrict,paramSet,id=null,params=[];if(expectKeyword(\"function\"),match(\"(\")||(token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord)),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionExpression,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseSourceElement(){var token=lookahead();if(token.type===Token.Keyword)switch(token.value){case\"const\":case\"let\":return parseConstLetDeclaration(token.value);case\"function\":return parseFunctionDeclaration();default:return parseStatement()}return token.type!==Token.EOF?parseStatement():void 0}function parseSourceElements(){for(var sourceElement,token,directive,firstRestricted,sourceElements=[];length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(;length>index&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return sourceElements}function parseProgram(){var program;return strict=!1,program={type:Syntax.Program,body:parseSourceElements()}}function addComment(type,value,start,end,loc){assert(\"number\"==typeof start,\"Comment must have valid position\"),extra.comments.length>0&&extra.comments[extra.comments.length-1].range[1]>start||extra.comments.push({type:type,value:value,range:[start,end],loc:loc})}function scanComment(){var comment,ch,loc,start,blockComment,lineComment;for(comment=\"\",blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)?(loc.end={line:lineNumber,column:index-lineStart-1},lineComment=!1,addComment(\"Line\",comment,start,index-1,loc),\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index,comment=\"\"):index>=length?(lineComment=!1,comment+=ch,loc.end={line:lineNumber,column:length-lineStart},addComment(\"Line\",comment,start,length,loc)):comment+=ch;else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]?(++index,comment+=\"\\r\\n\"):comment+=ch,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),comment+=ch,\"*\"===ch&&(ch=source[index],\"/\"===ch&&(comment=comment.substr(0,comment.length-1),blockComment=!1,++index,loc.end={line:lineNumber,column:index-lineStart},addComment(\"Block\",comment,start,index,loc),comment=\"\")));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)loc={start:{line:lineNumber,column:index-lineStart}},start=index,index+=2,lineComment=!0,index>=length&&(loc.end={line:lineNumber,column:index-lineStart},lineComment=!1,addComment(\"Line\",comment,start,index,loc));else{if(\"*\"!==ch)break;start=index,index+=2,blockComment=!0,loc={start:{line:lineNumber,column:index-lineStart-2}},index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function filterCommentLocation(){var i,entry,comment,comments=[];for(i=0;extra.comments.length>i;++i)entry=extra.comments[i],comment={type:entry.type,value:entry.value},extra.range&&(comment.range=entry.range),extra.loc&&(comment.loc=entry.loc),comments.push(comment);extra.comments=comments}function collectToken(){var start,loc,token,range,value;return skipComment(),start=index,loc={start:{line:lineNumber,column:index-lineStart}},token=extra.advance(),loc.end={line:lineNumber,column:index-lineStart},token.type!==Token.EOF&&(range=[token.range[0],token.range[1]],value=sliceSource(token.range[0],token.range[1]),extra.tokens.push({type:TokenName[token.type],value:value,range:range,loc:loc})),token}function collectRegex(){var pos,loc,regex,token;return skipComment(),pos=index,loc={start:{line:lineNumber,column:index-lineStart}},regex=extra.scanRegExp(),loc.end={line:lineNumber,column:index-lineStart},extra.tokens.length>0&&(token=extra.tokens[extra.tokens.length-1],token.range[0]===pos&&\"Punctuator\"===token.type&&(\"/\"===token.value||\"/=\"===token.value)&&extra.tokens.pop()),extra.tokens.push({type:\"RegularExpression\",value:regex.literal,range:[pos,index],loc:loc}),regex}function filterTokenLocation(){var i,entry,token,tokens=[];for(i=0;extra.tokens.length>i;++i)entry=extra.tokens[i],token={type:entry.type,value:entry.value},extra.range&&(token.range=entry.range),extra.loc&&(token.loc=entry.loc),tokens.push(token);extra.tokens=tokens}function createLiteral(token){return{type:Syntax.Literal,value:token.value}}function createRawLiteral(token){return{type:Syntax.Literal,value:token.value,raw:sliceSource(token.range[0],token.range[1])}}function createLocationMarker(){var marker={};return marker.range=[index,index],marker.loc={start:{line:lineNumber,column:index-lineStart},end:{line:lineNumber,column:index-lineStart}},marker.end=function(){this.range[1]=index,this.loc.end.line=lineNumber,this.loc.end.column=index-lineStart},marker.applyGroup=function(node){extra.range&&(node.groupRange=[this.range[0],this.range[1]]),extra.loc&&(node.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker.apply=function(node){extra.range&&(node.range=[this.range[0],this.range[1]]),extra.loc&&(node.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker}function trackGroupExpression(){var marker,expr;return skipComment(),marker=createLocationMarker(),expect(\"(\"),expr=parseExpression(),expect(\")\"),marker.end(),marker.applyGroup(expr),expr}function trackLeftHandSideExpression(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function trackLeftHandSideExpressionAllowCall(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)match(\"(\")?(expr={type:Syntax.CallExpression,callee:expr,arguments:parseArguments()},marker.end(),marker.apply(expr)):match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function filterGroup(node){var n,i,entry;n=\"[object Array]\"===Object.prototype.toString.apply(node)?[]:{};for(i in node)node.hasOwnProperty(i)&&\"groupRange\"!==i&&\"groupLoc\"!==i&&(entry=node[i],n[i]=null===entry||\"object\"!=typeof entry||entry instanceof RegExp?entry:filterGroup(entry));return n}function wrapTrackingFunction(range,loc){return function(parseFunction){function isBinary(node){return node.type===Syntax.LogicalExpression||node.type===Syntax.BinaryExpression}function visit(node){var start,end;isBinary(node.left)&&visit(node.left),isBinary(node.right)&&visit(node.right),range&&(node.left.groupRange||node.right.groupRange?(start=node.left.groupRange?node.left.groupRange[0]:node.left.range[0],end=node.right.groupRange?node.right.groupRange[1]:node.right.range[1],node.range=[start,end]):node.range===void 0&&(start=node.left.range[0],end=node.right.range[1],node.range=[start,end])),loc&&(node.left.groupLoc||node.right.groupLoc?(start=node.left.groupLoc?node.left.groupLoc.start:node.left.loc.start,end=node.right.groupLoc?node.right.groupLoc.end:node.right.loc.end,node.loc={start:start,end:end}):node.loc===void 0&&(node.loc={start:node.left.loc.start,end:node.right.loc.end}))}return function(){var marker,node;return skipComment(),marker=createLocationMarker(),node=parseFunction.apply(null,arguments),marker.end(),range&&node.range===void 0&&marker.apply(node),loc&&node.loc===void 0&&marker.apply(node),isBinary(node)&&visit(node),node}}}function patch(){var wrapTracking;extra.comments&&(extra.skipComment=skipComment,skipComment=scanComment),extra.raw&&(extra.createLiteral=createLiteral,createLiteral=createRawLiteral),(extra.range||extra.loc)&&(extra.parseGroupExpression=parseGroupExpression,extra.parseLeftHandSideExpression=parseLeftHandSideExpression,extra.parseLeftHandSideExpressionAllowCall=parseLeftHandSideExpressionAllowCall,parseGroupExpression=trackGroupExpression,parseLeftHandSideExpression=trackLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=trackLeftHandSideExpressionAllowCall,wrapTracking=wrapTrackingFunction(extra.range,extra.loc),extra.parseAdditiveExpression=parseAdditiveExpression,extra.parseAssignmentExpression=parseAssignmentExpression,extra.parseBitwiseANDExpression=parseBitwiseANDExpression,extra.parseBitwiseORExpression=parseBitwiseORExpression,extra.parseBitwiseXORExpression=parseBitwiseXORExpression,extra.parseBlock=parseBlock,extra.parseFunctionSourceElements=parseFunctionSourceElements,extra.parseCatchClause=parseCatchClause,extra.parseComputedMember=parseComputedMember,extra.parseConditionalExpression=parseConditionalExpression,extra.parseConstLetDeclaration=parseConstLetDeclaration,extra.parseEqualityExpression=parseEqualityExpression,extra.parseExpression=parseExpression,extra.parseForVariableDeclaration=parseForVariableDeclaration,extra.parseFunctionDeclaration=parseFunctionDeclaration,extra.parseFunctionExpression=parseFunctionExpression,extra.parseLogicalANDExpression=parseLogicalANDExpression,extra.parseLogicalORExpression=parseLogicalORExpression,extra.parseMultiplicativeExpression=parseMultiplicativeExpression,extra.parseNewExpression=parseNewExpression,extra.parseNonComputedProperty=parseNonComputedProperty,extra.parseObjectProperty=parseObjectProperty,extra.parseObjectPropertyKey=parseObjectPropertyKey,extra.parsePostfixExpression=parsePostfixExpression,extra.parsePrimaryExpression=parsePrimaryExpression,extra.parseProgram=parseProgram,extra.parsePropertyFunction=parsePropertyFunction,extra.parseRelationalExpression=parseRelationalExpression,extra.parseStatement=parseStatement,extra.parseShiftExpression=parseShiftExpression,extra.parseSwitchCase=parseSwitchCase,extra.parseUnaryExpression=parseUnaryExpression,extra.parseVariableDeclaration=parseVariableDeclaration,extra.parseVariableIdentifier=parseVariableIdentifier,parseAdditiveExpression=wrapTracking(extra.parseAdditiveExpression),parseAssignmentExpression=wrapTracking(extra.parseAssignmentExpression),parseBitwiseANDExpression=wrapTracking(extra.parseBitwiseANDExpression),parseBitwiseORExpression=wrapTracking(extra.parseBitwiseORExpression),parseBitwiseXORExpression=wrapTracking(extra.parseBitwiseXORExpression),parseBlock=wrapTracking(extra.parseBlock),parseFunctionSourceElements=wrapTracking(extra.parseFunctionSourceElements),parseCatchClause=wrapTracking(extra.parseCatchClause),parseComputedMember=wrapTracking(extra.parseComputedMember),parseConditionalExpression=wrapTracking(extra.parseConditionalExpression),parseConstLetDeclaration=wrapTracking(extra.parseConstLetDeclaration),parseEqualityExpression=wrapTracking(extra.parseEqualityExpression),parseExpression=wrapTracking(extra.parseExpression),parseForVariableDeclaration=wrapTracking(extra.parseForVariableDeclaration),parseFunctionDeclaration=wrapTracking(extra.parseFunctionDeclaration),parseFunctionExpression=wrapTracking(extra.parseFunctionExpression),parseLeftHandSideExpression=wrapTracking(parseLeftHandSideExpression),parseLogicalANDExpression=wrapTracking(extra.parseLogicalANDExpression),parseLogicalORExpression=wrapTracking(extra.parseLogicalORExpression),parseMultiplicativeExpression=wrapTracking(extra.parseMultiplicativeExpression),parseNewExpression=wrapTracking(extra.parseNewExpression),parseNonComputedProperty=wrapTracking(extra.parseNonComputedProperty),parseObjectProperty=wrapTracking(extra.parseObjectProperty),parseObjectPropertyKey=wrapTracking(extra.parseObjectPropertyKey),parsePostfixExpression=wrapTracking(extra.parsePostfixExpression),parsePrimaryExpression=wrapTracking(extra.parsePrimaryExpression),parseProgram=wrapTracking(extra.parseProgram),parsePropertyFunction=wrapTracking(extra.parsePropertyFunction),parseRelationalExpression=wrapTracking(extra.parseRelationalExpression),parseStatement=wrapTracking(extra.parseStatement),parseShiftExpression=wrapTracking(extra.parseShiftExpression),parseSwitchCase=wrapTracking(extra.parseSwitchCase),parseUnaryExpression=wrapTracking(extra.parseUnaryExpression),parseVariableDeclaration=wrapTracking(extra.parseVariableDeclaration),parseVariableIdentifier=wrapTracking(extra.parseVariableIdentifier)),extra.tokens!==void 0&&(extra.advance=advance,extra.scanRegExp=scanRegExp,advance=collectToken,scanRegExp=collectRegex)}function unpatch(){\"function\"==typeof extra.skipComment&&(skipComment=extra.skipComment),extra.raw&&(createLiteral=extra.createLiteral),(extra.range||extra.loc)&&(parseAdditiveExpression=extra.parseAdditiveExpression,parseAssignmentExpression=extra.parseAssignmentExpression,parseBitwiseANDExpression=extra.parseBitwiseANDExpression,parseBitwiseORExpression=extra.parseBitwiseORExpression,parseBitwiseXORExpression=extra.parseBitwiseXORExpression,parseBlock=extra.parseBlock,parseFunctionSourceElements=extra.parseFunctionSourceElements,parseCatchClause=extra.parseCatchClause,parseComputedMember=extra.parseComputedMember,parseConditionalExpression=extra.parseConditionalExpression,parseConstLetDeclaration=extra.parseConstLetDeclaration,parseEqualityExpression=extra.parseEqualityExpression,parseExpression=extra.parseExpression,parseForVariableDeclaration=extra.parseForVariableDeclaration,parseFunctionDeclaration=extra.parseFunctionDeclaration,parseFunctionExpression=extra.parseFunctionExpression,parseGroupExpression=extra.parseGroupExpression,parseLeftHandSideExpression=extra.parseLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=extra.parseLeftHandSideExpressionAllowCall,parseLogicalANDExpression=extra.parseLogicalANDExpression,parseLogicalORExpression=extra.parseLogicalORExpression,parseMultiplicativeExpression=extra.parseMultiplicativeExpression,parseNewExpression=extra.parseNewExpression,parseNonComputedProperty=extra.parseNonComputedProperty,parseObjectProperty=extra.parseObjectProperty,parseObjectPropertyKey=extra.parseObjectPropertyKey,parsePrimaryExpression=extra.parsePrimaryExpression,parsePostfixExpression=extra.parsePostfixExpression,parseProgram=extra.parseProgram,parsePropertyFunction=extra.parsePropertyFunction,parseRelationalExpression=extra.parseRelationalExpression,parseStatement=extra.parseStatement,parseShiftExpression=extra.parseShiftExpression,parseSwitchCase=extra.parseSwitchCase,parseUnaryExpression=extra.parseUnaryExpression,parseVariableDeclaration=extra.parseVariableDeclaration,parseVariableIdentifier=extra.parseVariableIdentifier),\"function\"==typeof extra.scanRegExp&&(advance=extra.advance,scanRegExp=extra.scanRegExp)}function stringToArray(str){var i,length=str.length,result=[];for(i=0;length>i;++i)result[i]=str.charAt(i);return result}function parse(code,options){var program,toString;\ntoString=String,\"string\"==typeof code||code instanceof String||(code=toString(code)),source=code,index=0,lineNumber=source.length>0?1:0,lineStart=0,length=source.length,buffer=null,state={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},extra={},options!==void 0&&(extra.range=\"boolean\"==typeof options.range&&options.range,extra.loc=\"boolean\"==typeof options.loc&&options.loc,extra.raw=\"boolean\"==typeof options.raw&&options.raw,\"boolean\"==typeof options.tokens&&options.tokens&&(extra.tokens=[]),\"boolean\"==typeof options.comment&&options.comment&&(extra.comments=[]),\"boolean\"==typeof options.tolerant&&options.tolerant&&(extra.errors=[])),length>0&&source[0]===void 0&&(code instanceof String&&(source=code.valueOf()),source[0]===void 0&&(source=stringToArray(code))),patch();try{program=parseProgram(),extra.comments!==void 0&&(filterCommentLocation(),program.comments=extra.comments),extra.tokens!==void 0&&(filterTokenLocation(),program.tokens=extra.tokens),extra.errors!==void 0&&(program.errors=extra.errors),(extra.range||extra.loc)&&(program.body=filterGroup(program.body))}catch(e){throw e}finally{unpatch(),extra={}}return program}var Token,TokenName,Syntax,PropertyKind,Messages,Regex,source,strict,index,lineNumber,lineStart,length,buffer,state,extra;Token={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},TokenName={},TokenName[Token.BooleanLiteral]=\"Boolean\",TokenName[Token.EOF]=\"\u003Cend>\",TokenName[Token.Identifier]=\"Identifier\",TokenName[Token.Keyword]=\"Keyword\",TokenName[Token.NullLiteral]=\"Null\",TokenName[Token.NumericLiteral]=\"Numeric\",TokenName[Token.Punctuator]=\"Punctuator\",TokenName[Token.StringLiteral]=\"String\",Syntax={AssignmentExpression:\"AssignmentExpression\",ArrayExpression:\"ArrayExpression\",BlockStatement:\"BlockStatement\",BinaryExpression:\"BinaryExpression\",BreakStatement:\"BreakStatement\",CallExpression:\"CallExpression\",CatchClause:\"CatchClause\",ConditionalExpression:\"ConditionalExpression\",ContinueStatement:\"ContinueStatement\",DoWhileStatement:\"DoWhileStatement\",DebuggerStatement:\"DebuggerStatement\",EmptyStatement:\"EmptyStatement\",ExpressionStatement:\"ExpressionStatement\",ForStatement:\"ForStatement\",ForInStatement:\"ForInStatement\",FunctionDeclaration:\"FunctionDeclaration\",FunctionExpression:\"FunctionExpression\",Identifier:\"Identifier\",IfStatement:\"IfStatement\",Literal:\"Literal\",LabeledStatement:\"LabeledStatement\",LogicalExpression:\"LogicalExpression\",MemberExpression:\"MemberExpression\",NewExpression:\"NewExpression\",ObjectExpression:\"ObjectExpression\",Program:\"Program\",Property:\"Property\",ReturnStatement:\"ReturnStatement\",SequenceExpression:\"SequenceExpression\",SwitchStatement:\"SwitchStatement\",SwitchCase:\"SwitchCase\",ThisExpression:\"ThisExpression\",ThrowStatement:\"ThrowStatement\",TryStatement:\"TryStatement\",UnaryExpression:\"UnaryExpression\",UpdateExpression:\"UpdateExpression\",VariableDeclaration:\"VariableDeclaration\",VariableDeclarator:\"VariableDeclarator\",WhileStatement:\"WhileStatement\",WithStatement:\"WithStatement\"},PropertyKind={Data:1,Get:2,Set:4},Messages={UnexpectedToken:\"Unexpected token %0\",UnexpectedNumber:\"Unexpected number\",UnexpectedString:\"Unexpected string\",UnexpectedIdentifier:\"Unexpected identifier\",UnexpectedReserved:\"Unexpected reserved word\",UnexpectedEOS:\"Unexpected end of input\",NewlineAfterThrow:\"Illegal newline after throw\",InvalidRegExp:\"Invalid regular expression\",UnterminatedRegExp:\"Invalid regular expression: missing /\",InvalidLHSInAssignment:\"Invalid left-hand side in assignment\",InvalidLHSInForIn:\"Invalid left-hand side in for-in\",MultipleDefaultsInSwitch:\"More than one default clause in switch statement\",NoCatchOrFinally:\"Missing catch or finally after try\",UnknownLabel:\"Undefined label '%0'\",Redeclaration:\"%0 '%1' has already been declared\",IllegalContinue:\"Illegal continue statement\",IllegalBreak:\"Illegal break statement\",IllegalReturn:\"Illegal return statement\",StrictModeWith:\"Strict mode code may not include a with statement\",StrictCatchVariable:\"Catch variable may not be eval or arguments in strict mode\",StrictVarName:\"Variable name may not be eval or arguments in strict mode\",StrictParamName:\"Parameter name eval or arguments is not allowed in strict mode\",StrictParamDupe:\"Strict mode function may not have duplicate parameter names\",StrictFunctionName:\"Function name may not be eval or arguments in strict mode\",StrictOctalLiteral:\"Octal literals are not allowed in strict mode.\",StrictDelete:\"Delete of an unqualified identifier in strict mode.\",StrictDuplicateProperty:\"Duplicate data property in object literal not allowed in strict mode\",AccessorDataProperty:\"Object literal may not have data and accessor property with the same name\",AccessorGetSet:\"Object literal may not have multiple get/set accessors with the same name\",StrictLHSAssignment:\"Assignment to eval or arguments is not allowed in strict mode\",StrictLHSPostfix:\"Postfix increment/decrement may not have eval or arguments operand in strict mode\",StrictLHSPrefix:\"Prefix increment/decrement may not have eval or arguments operand in strict mode\",StrictReservedWord:\"Use of future reserved word in strict mode\"},Regex={NonAsciiIdentifierStart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\"),NonAsciiIdentifierPart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\")},\"esprima\"[0]===void 0&&(sliceSource=function(from,to){return source.slice(from,to).join(\"\")}),exports.version=\"1.0.2\",exports.parse=parse,exports.Syntax=function(){var name,types={};\"function\"==typeof Object.create&&(types=Object.create(null));for(name in Syntax)Syntax.hasOwnProperty(name)&&(types[name]=Syntax[name]);return\"function\"==typeof Object.freeze&&Object.freeze(types),types}()})})()},{}],63:[function(require,module){function isFunction(obj){return\"[object Function]\"==toString.call(obj)}var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts,cb){isFunction(opts)&&(cb=opts),fs.readFile(fullPath,\"utf-8\",function(err,code){if(err)return cb(err);try{cb(null,highlight(code,opts))}catch(e){cb(e)}})}},{fs:74,\"./highlight\":62}],64:[function(require,module){var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts){var code=fs.readFileSync(fullPath,\"utf-8\");return highlight(code,opts)}},{fs:74,\"./highlight\":62}],29:[function(require,module){\"use strict\";function fix(line,hideStrict){var fixed=line;if(commaFirstAssignment.test(line)){var idx=line.indexOf(\",\");fixed=\"var\"+fixed.slice(0,idx).trim()+\" \"+fixed.slice(idx+1).trim()}return hideStrict&&useStrict.test(line)&&(fixed=nonStrict+line),fixed}function unfix(code,hideStrict){return hideStrict&&(code=code.replace(nonStrict,\"\")),code}var parse=require(\"esprima\").parse,commaFirstAssignment=/^[\\t ]*,[\\t ]*\\S+[\\t ]*=[\\t ]*\\S+/,useStrict=/^ *['\"]use strict['\"][; ]*$/,nonStrict=\"// *** non strict snippetify fix +++***+++&&&\",snippetify=module.exports=function(script,opts){function nextChunk(code,raw){var line=(0===code.length,lines[lineno]),fixed=fix(line,opts.nonstrict);raw=line+raw,code=fixed+code;try{var ast=parse(code,opts);return code=unfix(code,opts.nonstrict),{code:code,raw:raw,ast:ast}}catch(e){if(-1===--lineno){var err=Error(\"unable to snippetify \"+code);throw err.inner=e,err}return nextChunk(\"\\n\"+code,\"\\n\"+raw)}}opts=opts||{};var snippets=[],lines=script.split(\"\\n\");if(!lines.length)return[];for(var lineno=lines.length;--lineno>-1;){var snippetEnd=lineno+1,snippet=nextChunk(\"\",\"\"),snippetStart=lineno+1;snippets.unshift({start:snippetStart,end:snippetEnd,code:snippet.code,raw:snippet.raw,ast:snippet.ast})}return snippets},code=\"function foo() {\\n\\\"use strict\\\";\\n var o = { a: 1, a: 2 };\\n}\\n\\n;function bar() {\\n'use strict';\\n var o = { a: 1, a: 2 };\\n}\";snippetify(code,{nonstrict:!0})},{esprima:70}],75:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],76:[function(require,module){var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=\"\u001b[\"+colorNums[k]+\"m:\u001b[39m\"}),module.exports=colors},{}],77:[function(require,module){require=function(e,t,n,r){function i(r){if(!n[r]){if(!t[r]){if(e)return e(r);throw Error(\"Cannot find module '\"+r+\"'\")}var s=n[r]={exports:{}};t[r][0](function(e){var n=t[r][1][e];return i(n?n:e)},s,s.exports)}return n[r].exports}for(var s=0;r.length>s;s++)i(r[s]);return i}(require!==void 0&&require,{1:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],2:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:3,buffer:4}],\"buffer-browserify\":[function(require,module){module.exports=require(\"q9TxCC\")},{}],q9TxCC:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;\ncase\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":1,\"base64-js\":5}],3:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:6}],5:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],7:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],8:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],6:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:8}],4:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+1]):(val=buffer.parent[buffer.offset+offset],val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+3],val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset],val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0),val}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535)),isBigEndian?(buffer.parent[buffer.offset+offset]=(65280&value)>>>8,buffer.parent[buffer.offset+offset+1]=255&value):(buffer.parent[buffer.offset+offset+1]=(65280&value)>>>8,buffer.parent[buffer.offset+offset]=255&value)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295)),isBigEndian?(buffer.parent[buffer.offset+offset]=255&value>>>24,buffer.parent[buffer.offset+offset+1]=255&value>>>16,buffer.parent[buffer.offset+offset+2]=255&value>>>8,buffer.parent[buffer.offset+offset+3]=255&value):(buffer.parent[buffer.offset+offset+3]=255&value>>>24,buffer.parent[buffer.offset+offset+2]=255&value>>>16,buffer.parent[buffer.offset+offset+1]=255&value>>>8,buffer.parent[buffer.offset+offset]=255&value)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";\nswitch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.parent[buffer.offset+offset]=value},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":7,\"base64-js\":9}],9:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}]},{},[]),module.exports=require(\"buffer-browserify\")},{}],67:[function(require,module){(function(Buffer){function clone(parent,circular){function _clone(parent,context,child,cIndex){var i;if(\"object\"==typeof parent){if(null==parent)return parent;for(i in circularParent)if(circularParent[i]===parent)return circularReplace.push({resolveTo:i,child:child,i:cIndex}),null;if(circularParent[context]=parent,util.isArray(parent)){child=[];for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else if(useBuffer&&Buffer.isBuffer(parent))child=new Buffer(parent.length),parent.copy(child);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}circularResolved[context]=child}else child=parent;return child}circular===void 0&&(circular=!0);var i,useBuffer=Buffer!==void 0;if(circular){var circularParent={},circularResolved={},circularReplace=[],cloned=_clone(parent,\"*\");for(i in circularReplace){var c=circularReplace[i];c&&c.child&&c.i in c.child&&(c.child[c.i]=circularResolved[c.resolveTo])}return cloned}var child;if(\"object\"==typeof parent){if(null==parent)return parent;if(\"Array\"===parent.constructor.name){child=[];for(i in parent)child[i]=clone(parent[i],circular)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=clone(parent[i],circular)}}else child=parent;return child}var util=require(\"util\");module.exports=clone,clone.clonePrototype=require(\"./clonePrototype.js\")})(require(\"__browserify_buffer\").Buffer)},{util:6,\"./clonePrototype.js\":78,__browserify_buffer:77}],71:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");\nif(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:73,\"./buffer_ieee754\":75,\"base64-js\":79}],72:[function(require,module){\"use strict\";function newlinesIn(src){if(!src)return 0;var newlines=src.match(/\\n/g);return newlines?newlines.length:0}var difflet=require(\"difflet\"),prettydiff=difflet({comment:!0,indent:2}),compactdiff=difflet({comment:!0});module.exports=function(before,after,opts){opts=opts||{};var joinLinesAt=opts.joinLinesAt||20,maxLineLength=opts.maxLineLength||380,result=prettydiff.compare(before,after);return newlinesIn(result)>=joinLinesAt&&(result=compactdiff.compare(before,after)),result.split(\"\\n\").map(function(line){return line.length>=maxLineLength?line.slice(0,maxLineLength)+\"....\":line}).join(\"\\n\").replace(/\\/\\/ != undefined/g,\"\")}},{difflet:80}],78:[function(require,module){function clonePrototype(parent){if(null===parent)return null;var ctor=function(){};return ctor.prototype=parent,new ctor}module.exports=clonePrototype},{}],79:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],62:[function(require,module){function trimEmptyLines(lines){for(var line=lines.pop();!line||!line.length;)line=lines.pop();line&&lines.push(line)}function addLinenos(highlightedCode,firstline){function getDigits(n){return 10>n?1:100>n?2:1e3>n?3:1e4>n?4:5}function pad(n,totalDigits){var padDigits=totalDigits-getDigits(n);switch(padDigits){case 0:return\"\"+n;case 1:return\" \"+n;case 2:return\" \"+n;case 3:return\" \"+n;case 4:return\" \"+n;case 5:return\" \"+n}}var highlightedLines=highlightedCode.split(\"\\n\");trimEmptyLines(highlightedLines);var totalDigits,lineno,linesLen=highlightedLines.length,lines=[];totalDigits=getDigits(linesLen+firstline-1);for(var i=0;linesLen>i;i++)lineno=[colorSurround[0],pad(i+firstline,totalDigits),\": \",colorSurround[1]].join(\"\"),lines.push(lineno+highlightedLines[i]);return lines.join(\"\\n\")}var redeyed=require(\"redeyed\"),theme=require(\"../themes/default\"),colors=require(\"../colors\"),colorSurround=colors.brightBlack.split(\":\");module.exports=function(code,opts){opts=opts||{};try{var result=redeyed(code,opts.theme||theme),firstline=opts.firstline&&!isNaN(opts.firstline)?opts.firstline:1;return opts.linenos?addLinenos(result.code,firstline):result.code}catch(e){throw e.message=\"Unable to perform highlight. The code contained syntax errors: \"+e.message,e}}},{\"../themes/default\":81,\"../colors\":76,redeyed:82}],81:[function(require,module){var colors=require(\"../colors\");module.exports={Boolean:{\"true\":void 0,\"false\":void 0,_default:colors.brightRed},Identifier:{undefined:colors.brightBlack,self:colors.brightRed,console:colors.blue,log:colors.blue,warn:colors.red,error:colors.brightRed,_default:colors.white},Null:{_default:colors.brightBlack},Numeric:{_default:colors.blue},String:{_default:colors.brightGreen},Keyword:{\"break\":void 0,\"case\":void 0,\"catch\":colors.cyan,\"continue\":void 0,\"debugger\":void 0,\"default\":void 0,\"delete\":colors.red,\"do\":void 0,\"else\":void 0,\"finally\":colors.cyan,\"for\":void 0,\"function\":void 0,\"if\":void 0,\"in\":void 0,\"instanceof\":void 0,\"new\":colors.red,\"return\":colors.red,\"switch\":void 0,\"this\":colors.brightRed,\"throw\":void 0,\"try\":colors.cyan,\"typeof\":void 0,\"var\":colors.green,\"void\":void 0,\"while\":void 0,\"with\":void 0,_default:colors.brightBlue},Punctuator:{\";\":colors.brightBlack,\".\":colors.green,\",\":colors.green,\"{\":colors.yellow,\"}\":colors.yellow,\"(\":colors.brightBlack,\")\":colors.brightBlack,\"[\":colors.yellow,\"]\":colors.yellow,\"\u003C\":void 0,\">\":void 0,\"+\":void 0,\"-\":void 0,\"*\":void 0,\"%\":void 0,\"&\":void 0,\"|\":void 0,\"^\":void 0,\"!\":void 0,\"~\":void 0,\"?\":void 0,\":\":void 0,\"=\":void 0,\"\u003C=\":void 0,\">=\":void 0,\"==\":void 0,\"!=\":void 0,\"++\":void 0,\"--\":void 0,\"\u003C\u003C\":void 0,\">>\":void 0,\"&&\":void 0,\"||\":void 0,\"+=\":void 0,\"-=\":void 0,\"*=\":void 0,\"%=\":void 0,\"&=\":void 0,\"|=\":void 0,\"^=\":void 0,\"/=\":void 0,\"===\":void 0,\"!==\":void 0,\">>>\":void 0,\"\u003C\u003C=\":void 0,\">>=\":void 0,\">>>=\":void 0,_default:colors.brightYellow},Line:{_default:colors.brightBlack},Block:{_default:colors.brightBlack},_default:void 0}},{\"../colors\":76}],83:[function(require,module){function Traverse(obj){this.value=obj}function walk(root,cb,immutable){var path=[],parents=[],alive=!0;return function walker(node_){function updateState(){if(\"object\"==typeof state.node&&null!==state.node){state.keys&&state.node_===state.node||(state.keys=objectKeys(state.node)),state.isLeaf=0==state.keys.length;for(var i=0;parents.length>i;i++)if(parents[i].node_===node_){state.circular=parents[i];break}}else state.isLeaf=!0,state.keys=null;state.notLeaf=!state.isLeaf,state.notRoot=!state.isRoot}var node=immutable?copy(node_):node_,modifiers={},keepGoing=!0,state={node:node,node_:node_,path:[].concat(path),parent:parents[parents.length-1],parents:parents,key:path.slice(-1)[0],isRoot:0===path.length,level:path.length,circular:null,update:function(x,stopHere){state.isRoot||(state.parent.node[state.key]=x),state.node=x,stopHere&&(keepGoing=!1)},\"delete\":function(stopHere){delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},remove:function(stopHere){isArray(state.parent.node)?state.parent.node.splice(state.key,1):delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},keys:null,before:function(f){modifiers.before=f},after:function(f){modifiers.after=f},pre:function(f){modifiers.pre=f},post:function(f){modifiers.post=f},stop:function(){alive=!1},block:function(){keepGoing=!1}};if(!alive)return state;updateState();var ret=cb.call(state,state.node);return void 0!==ret&&state.update&&state.update(ret),modifiers.before&&modifiers.before.call(state,state.node),keepGoing?(\"object\"!=typeof state.node||null===state.node||state.circular||(parents.push(state),updateState(),forEach(state.keys,function(key,i){path.push(key),modifiers.pre&&modifiers.pre.call(state,state.node[key],key);var child=walker(state.node[key]);immutable&&Object.hasOwnProperty.call(state.node,key)&&(state.node[key]=child.node),child.isLast=i==state.keys.length-1,child.isFirst=0==i,modifiers.post&&modifiers.post.call(state,child),path.pop()}),parents.pop()),modifiers.after&&modifiers.after.call(state,state.node),state):state}(root).node}function copy(src){if(\"object\"==typeof src&&null!==src){var dst;if(isArray(src))dst=[];else if(isDate(src))dst=new Date(src);else if(isRegExp(src))dst=RegExp(src);else if(isError(src))dst={message:src.message};else if(isBoolean(src))dst=new Boolean(src);else if(isNumber(src))dst=new Number(src);else if(isString(src))dst=new String(src);else if(Object.create&&Object.getPrototypeOf)dst=Object.create(Object.getPrototypeOf(src));else if(src.constructor===Object)dst={};else{var proto=src.constructor&&src.constructor.prototype||src.__proto__||{},T=function(){};T.prototype=proto,dst=new T}return forEach(objectKeys(src),function(key){dst[key]=src[key]}),dst}return src}function toS(obj){return Object.prototype.toString.call(obj)}function isDate(obj){return\"[object Date]\"===toS(obj)}function isRegExp(obj){return\"[object RegExp]\"===toS(obj)}function isError(obj){return\"[object Error]\"===toS(obj)}function isBoolean(obj){return\"[object Boolean]\"===toS(obj)}function isNumber(obj){return\"[object Number]\"===toS(obj)}function isString(obj){return\"[object String]\"===toS(obj)}var traverse=module.exports=function(obj){return new Traverse(obj)};Traverse.prototype.get=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key)){node=void 0;break}node=node[key]}return node},Traverse.prototype.has=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key))return!1;node=node[key]}return!0},Traverse.prototype.set=function(ps,value){for(var node=this.value,i=0;ps.length-1>i;i++){var key=ps[i];Object.hasOwnProperty.call(node,key)||(node[key]={}),node=node[key]}return node[ps[i]]=value,value},Traverse.prototype.map=function(cb){return walk(this.value,cb,!0)},Traverse.prototype.forEach=function(cb){return this.value=walk(this.value,cb,!1),this.value},Traverse.prototype.reduce=function(cb,init){var skip=1===arguments.length,acc=skip?this.value:init;return this.forEach(function(x){this.isRoot&&skip||(acc=cb.call(this,acc,x))}),acc},Traverse.prototype.paths=function(){var acc=[];return this.forEach(function(){acc.push(this.path)}),acc},Traverse.prototype.nodes=function(){var acc=[];return this.forEach(function(){acc.push(this.node)}),acc},Traverse.prototype.clone=function(){var parents=[],nodes=[];return function clone(src){for(var i=0;parents.length>i;i++)if(parents[i]===src)return nodes[i];if(\"object\"==typeof src&&null!==src){var dst=copy(src);return parents.push(src),nodes.push(dst),forEach(objectKeys(src),function(key){dst[key]=clone(src[key])}),parents.pop(),nodes.pop(),dst}return src}(this.value)};var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},isArray=Array.isArray||function isArray(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)};forEach(objectKeys(Traverse.prototype),function(key){traverse[key]=function(obj){var args=[].slice.call(arguments,1),t=new Traverse(obj);return t[key].apply(t,args)}})},{}],80:[function(require,module){(function(process){function difflet(opts,prev,next){function set(type){0===levels&&opts.start(type,stream),levels++}function unset(type){0===--levels&&opts.stop(type,stream)}function stringifier(insertable,node,opts){var indent=opts.indent;if(insertable)var prevNode=traverse.get(prev,this.path||[]);var indentx,inserted=insertable&&void 0===prevNode;try{indentx=indent?Array(((this.path||[]).length+1)*indent+1).join(\" \"):\"\"}catch(e){indentx=\"\"}if(commaFirst&&(indentx=indentx.slice(indent)),Array.isArray(node)){var updated=(prevNode||traverse.has(prev,this.path))&&!Array.isArray(prevNode);updated&&set(\"updated\"),opts.comment&&!Array.isArray(prevNode)&&(indent=0),this.before(function(){inserted&&set(\"inserted\"),indent&&commaFirst?0===(this.path||[]).length||Array.isArray(this.parent.node)?write(\"[ \"):write(\"\\n\"+indentx+\"[ \"):indent?write(\"[\\n\"+indentx):write(\"[\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\");var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast||(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent&&write(\"\\n\"+indentx))}),this.after(function(){indent&&commaFirst?write(\"\\n\"+indentx):indent&&write(\"\\n\"+indentx.slice(indent)),write(\"]\"),updated&&unset(\"updated\"),inserted&&unset(\"inserted\")})}else if(isRegExp(node))this.block(),inserted?(set(\"inserted\"),write(\"\"+node),unset(\"inserted\")):insertable&&prevNode!==node?(set(\"updated\"),write(\"\"+node),unset(\"updated\")):write(\"\"+node);else if(\"object\"==typeof node&&node&&\"function\"==typeof node.inspect)this.block(),inserted?(set(\"inserted\"),write(node.inspect()),unset(\"inserted\")):prevNode&&\"function\"==typeof prevNode.inspect&&prevNode.inspect()===node.inspect()?write(node.inspect()):(set(\"updated\"),write(node.inspect()),unset(\"updated\"));else if(\"object\"==typeof node&&null!==node){var insertedKey=!1,deleted=insertable&&\"object\"==typeof prevNode&&prevNode?Object.keys(prevNode).filter(function(key){return!Object.hasOwnProperty.call(node,key)}):[];this.before(function(){inserted&&set(\"inserted\"),write(indent&&commaFirst&&!this.isRoot?\"\\n\"+indentx+\"{ \":\"{\")}),this.pre(function(x,key){if(insertable){var obj=traverse.get(prev,this.path.concat(key));void 0===obj&&(insertedKey=!0,set(\"inserted\"))}indent&&!commaFirst&&write(\"\\n\"+indentx),plainStringify(key),write(indent?\" : \":\":\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\"),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1):insertedKey&&(unset(\"inserted\"),insertedKey=!1);var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1,indent&&commaFirst?write(\"\\n\"+indentx+\", \"):opts.comment&&indent?write(\"\\n\"+indentx):indent?write(\",\\n\"+indentx):write(\",\")):child.isLast||indent&&commaFirst&&write(\"\\n\"+indentx+\", \")}),this.after(function(){inserted&&unset(\"inserted\"),deleted.length&&(indent&&!commaFirst&&0===Object.keys(node).length&&write(\"\\n\"+indentx),set(\"deleted\"),deleted.forEach(function(key,ix){indent&&opts.comment&&(unset(\"deleted\"),set(\"comment\"),write(\"// \"),unset(\"comment\"),set(\"deleted\")),plainStringify(key),write(indent?\" : \":\":\"),traverse(prevNode[key]).forEach(function(x){plainStringify.call(this,x,{indent:0})});var last=ix===deleted.length-1;insertable&&!last&&(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent?write(\",\\n\"+indentx):write(\",\"))}),unset(\"deleted\")),commaFirst&&indent?write(indentx.slice(indent)+\" }\"):indent?write(\"\\n\"+indentx.slice(indent)+\"}\"):write(\"}\")})}else{var changed=!1;inserted?set(\"inserted\"):insertable&&!deepEqual(prevNode,node)&&(changed=!0,set(\"updated\")),\"string\"==typeof node?write('\"'+(\"\"+node).replace(/\"/g,'\\\\\"')+'\"'):isRegExp(node)?write(\"\"+node):\"function\"==typeof node?write(node.name?\"[Function: \"+node.name+\"]\":\"[Function]\"):void 0===node?write(\"undefined\"):null===node?write(\"null\"):write(\"\"+node),inserted?unset(\"inserted\"):changed&&unset(\"updated\")}}var stream=opts.stream||new Stream;if(opts.stream||(stream.readable=!0,stream.writable=!0,stream.write=function(buf){this.emit(\"data\",buf)},stream.end=function(){this.emit(\"end\")}),opts||(opts={}),void 0===opts.start&&void 0===opts.stop){var c=charm(stream);opts.start=function(type){c.foreground({inserted:\"green\",updated:\"blue\",deleted:\"red\",comment:\"cyan\"}[type]),c.display(\"bright\")},opts.stop=function(){c.display(\"reset\")}}var write=function(buf){opts.write?opts.write(buf,stream):stream.write(buf)},commaFirst=\"first\"===opts.comma,stringify=function(node,params){return stringifier.call(this,!0,node,params||opts)},plainStringify=function(node,params){return stringifier.call(this,!1,node,params||opts)},levels=0;return opts.stream?traverse(next).forEach(stringify):process.nextTick(function(){traverse(next).forEach(stringify),stream.emit(\"end\")}),stream}function isRegExp(node){return node instanceof RegExp||node&&\"function\"==typeof node.test&&\"function\"==typeof node.exec&&\"function\"==typeof node.compile&&node.constructor&&\"RegExp\"===node.constructor.name}var traverse=require(\"traverse\"),Stream=require(\"stream\").Stream,charm=require(\"charm\"),deepEqual=require(\"deep-is\"),exports=module.exports=function(opts_){var fn=difflet.bind(null,opts_);return fn.compare=function(prev,next){var opts=Object.keys(opts_||{}).reduce(function(acc,key){return acc[key]=opts_[key],acc},{}),s=opts.stream=new Stream,data=\"\";return s.write=function(buf){data+=buf},s.end=function(){},s.readable=!0,s.writable=!0,difflet(opts,prev,next),data},fn};exports.compare=function(prev,next){return exports({}).compare(prev,next)}})(require(\"__browserify_process\"))},{stream:58,traverse:83,charm:84,\"deep-is\":69,__browserify_process:16}],85:[function(require,module,exports){exports.isatty=function(){},exports.setRawMode=function(){}},{}],84:[function(require,module){(function(process){var tty=require(\"tty\"),encode=require(\"./lib/encode\"),EventEmitter=require(\"events\").EventEmitter,exports=module.exports=function(){function setInput(s){if(input)throw Error(\"multiple inputs specified\");input=s}function setOutput(s){if(output)throw Error(\"multiple outputs specified\");output=s}for(var input=null,output=null,i=0;arguments.length>i;i++){var arg=arguments[i];arg&&(arg.readable?setInput(arg):(arg.stdin||arg.input)&&setInput(arg.stdin||arg.input),arg.writable?setOutput(arg):(arg.stdout||arg.output)&&setOutput(arg.stdout||arg.output))}return new Charm(input,output)},Charm=exports.Charm=function(input,output){var self=this;self.input=input,self.output=output,self.pending=[],output||self.emit(\"error\",Error(\"output stream required\")),input&&\"number\"==typeof input.fd&&tty.isatty(input.fd)&&(process.stdin.setRawMode?process.stdin.setRawMode(!0):tty.setRawMode(!0),input.resume()),input&&input.on(\"data\",function(buf){if(self.pending.length){for(var codes=extractCodes(buf),matched=!1,i=0;codes.length>i;i++)for(var j=0;self.pending.length>j;j++){var cb=self.pending[j];if(cb(codes[i])){matched=!0,self.pending.splice(j,1);break}}if(matched)return}self.emit(\"data\",buf),1===buf.length&&(3===buf[0]&&self.emit(\"^C\"),4===buf[0]&&self.emit(\"^D\"))})};Charm.prototype=new EventEmitter,Charm.prototype.destroy=function(){this.input&&this.input.destroy()},Charm.prototype.write=function(msg){return this.output.write(msg),this},Charm.prototype.reset=function(){return this.write(encode(\"c\")),this},Charm.prototype.position=function(x,y){if(\"function\"==typeof x){var cb=x;this.pending.push(function(buf){if(27===buf[0]&&buf[1]===encode.ord(\"[\")&&buf[buf.length-1]===encode.ord(\"R\")){var pos=(\"\"+buf).slice(2,-1).split(\";\").map(Number);return cb(pos[1],pos[0]),!0}}),this.write(encode(\"[6n\"))}else this.write(encode(\"[\"+Math.floor(y)+\";\"+Math.floor(x)+\"f\"));return this},Charm.prototype.move=function(x,y){return 0>y?this.up(-y):y>0&&this.down(y),x>0?this.right(x):0>x&&this.left(-x),this},Charm.prototype.up=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"A\")),this},Charm.prototype.down=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"B\")),this},Charm.prototype.right=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"C\")),this},Charm.prototype.left=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"D\")),this},Charm.prototype.column=function(x){return this.write(encode(\"[\"+Math.floor(x)+\"G\")),this},Charm.prototype.push=function(withAttributes){return this.write(encode(withAttributes?\"7\":\"[s\")),this},Charm.prototype.pop=function(withAttributes){return this.write(encode(withAttributes?\"8\":\"[u\")),this},Charm.prototype.erase=function(s){return\"end\"===s||\"$\"===s?this.write(encode(\"[K\")):\"start\"===s||\"^\"===s?this.write(encode(\"[1K\")):\"line\"===s?this.write(encode(\"[2K\")):\"down\"===s?this.write(encode(\"[J\")):\"up\"===s?this.write(encode(\"[1J\")):\"screen\"===s?this.write(encode(\"[1J\")):this.emit(\"error\",Error(\"Unknown erase type: \"+s)),this},Charm.prototype.display=function(attr){var c={reset:0,bright:1,dim:2,underscore:4,blink:5,reverse:7,hidden:8}[attr];return void 0===c&&this.emit(\"error\",Error(\"Unknown attribute: \"+attr)),this.write(encode(\"[\"+c+\"m\")),this},Charm.prototype.foreground=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[38;5;\"+color+\"m\"));else{var c={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.background=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[48;5;\"+color+\"m\"));else{var c={black:40,red:41,green:42,yellow:43,blue:44,magenta:45,cyan:46,white:47}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.cursor=function(visible){return this.write(encode(visible?\"[?25h\":\"[?25l\")),this};var extractCodes=exports.extractCodes=function(buf){for(var codes=[],start=-1,i=0;buf.length>i;i++)27===buf[i]?(start>=0&&codes.push(buf.slice(start,i)),start=i):start>=0&&i===buf.length-1&&codes.push(buf.slice(start));return codes}})(require(\"__browserify_process\"))},{tty:85,events:15,\"./lib/encode\":86,__browserify_process:16}],82:[function(require,module){(function(){(function(){\"use strict\";function bootstrap(esprima,exportFn){function isFunction(obj){return\"[object Function]\"===toString.call(obj)}function isString(obj){return\"[object String]\"===toString.call(obj)}function isObject(obj){return\"[object Object]\"===toString.call(obj)}function surroundWith(before,after){return function(s){return before+s+after}}function isNonCircular(key){return\"_parent\"!==key}function objectizeString(value){var vals=value.split(\":\");if(0===vals.length||vals.length>2)throw Error(\"illegal string config: \"+value+'\\nShould be of format \"before:after\"');return 1===vals.length||0===vals[1].length?0>vals.indexOf(\":\")?{_before:vals[0]}:{_after:vals[0]}:{_before:vals[0],_after:vals[1]}}function objectize(node){function resolve(value,key){if(!value._parent)return void 0;if(value._parent._default&&value._parent._default[key])return value._parent._default[key];var root=value._parent._parent;return root?root._default?root._default[key]:void 0:void 0}function process(key){var value=node[key];if(value&&!isFunction(value)){if(isString(value)&&(node[key]=value=objectizeString(value)),value._parent=node,isObject(value))return value._before||value._after?(value._before=value._before||resolve(value,\"_before\"),value._after=value._after||resolve(value,\"_after\"),void 0):objectize(value);throw Error(\"nodes need to be either {String}, {Object} or {Function}.\"+value+\" is neither.\")}}node._default&&process(\"_default\"),Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)&&\"_before\"!==key&&\"_after\"!==key&&\"_default\"!==key}).forEach(process)}function functionize(node){Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)}).forEach(function(key){var value=node[key];if(!isFunction(value)&&isObject(value)){if(!value._before&&!value._after)return functionize(value);var before=value._before||\"\",after=value._after||\"\";return node[key]=surroundWith(before,after)}})}function normalize(root){objectize(root),functionize(root)}function mergeTokensAndComments(tokens,comments){function addToAllByRangeStart(t){all[t.range[0]]=t}var all={};return tokens.forEach(addToAllByRangeStart),comments.forEach(addToAllByRangeStart),Object.keys(all).map(function(k){return all[k]})}function redeyed(code,config,opts){function tokenIndex(tokens,tkn,start){var current,rangeStart=tkn.range[0];for(current=start;tokens.length>current;current++)if(tokens[current].range[0]===rangeStart)return current;throw Error(\"Token %s not found at or after index: %d\",tkn,start)}function process(surround){var result,currentIndex,nextIndex,splitEnd,skip=0;return result=surround(code.slice(start,end),info),isObject(result)?(splits.push(result.replacement),currentIndex=info.tokenIndex,nextIndex=tokenIndex(info.tokens,result.skipPastToken,currentIndex),skip=nextIndex-currentIndex,splitEnd=skip>0?tokens[nextIndex-1].range[1]:end):(splits.push(result),splitEnd=end),{skip:skip,splitEnd:splitEnd}}function addSplit(start,end,surround){var result,skip=0;if(!(start>=end))return surround?(result=process(surround),skip=result.skip,lastSplitEnd=result.splitEnd):(splits.push(code.slice(start,end)),lastSplitEnd=end),skip}opts=opts||{},code=code.replace(/^\\#\\!.*/,\"\");var transformedCode,all,info,ast=esprima.parse(code,{tokens:!0,comment:!0,range:!0,tolerant:!0}),tokens=ast.tokens,comments=ast.comments,lastSplitEnd=0,splits=[];\nnormalize(config),all=mergeTokensAndComments(tokens,comments);for(var tokenIdx=0;all.length>tokenIdx;tokenIdx++){var surround,start,end,token=all[tokenIdx],surroundForType=config[token.type];surroundForType&&(surround=surroundForType&&surroundForType.hasOwnProperty(token.value)&&surroundForType[token.value]&&isFunction(surroundForType[token.value])?surroundForType[token.value]:surroundForType._default,start=token.range[0],end=token.range[1],addSplit(lastSplitEnd,start),info={tokenIndex:tokenIdx,tokens:all,ast:ast,code:code},tokenIdx+=addSplit(start,end,surround,info))}return code.length>lastSplitEnd&&addSplit(lastSplitEnd,code.length),transformedCode=opts.nojoin?void 0:splits.join(\"\"),{ast:ast,tokens:tokens,comments:comments,splits:splits,code:transformedCode}}return exportFn?exportFn(redeyed):redeyed}var esprima,exportFn,toString=Object.prototype.toString;\"object\"==typeof module&&\"object\"==typeof module.exports&&\"function\"==typeof require?(esprima=require(\"esprima\"),exportFn=function(redeyed){module.exports=redeyed},bootstrap(esprima,exportFn)):\"function\"==typeof define&&define.amd?define([\"esprima\"],function(esprima){return bootstrap(esprima)}):\"object\"==typeof window&&(window.redeyed=bootstrap(window.esprima))})()})()},{esprima:70}],86:[function(require,module){(function(Buffer){var encode=module.exports=function(xs){function bytes(s){return\"string\"==typeof s?s.split(\"\").map(ord):Array.isArray(s)?s.reduce(function(acc,c){return acc.concat(bytes(c))},[]):void 0}return new Buffer([27].concat(bytes(xs)))},ord=encode.ord=function ord(c){return c.charCodeAt(0)}})(require(\"__browserify_buffer\").Buffer)},{__browserify_buffer:77}]},{},[1]);\n\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/scriptie-talkie-embed.js","modified":"20230427072656645"},
{"created":"20230426064319911","text":"\n\u003C!-- shader-doodle.js -->\n\u003Cscript>\n'use strict';(function(z,A){\"object\"===typeof exports&&\"undefined\"!==typeof module?A(exports):\"function\"===typeof define&&define.amd?define([\"exports\"],A):(z=z||self,A(z.ShaderDoodle={}))})(this,function(z){function A(a){function b(a){console.log(a);e.add(a.targetElement)}function d(b){e.has(b.targetElement)?e.delete(b.targetElement):(b=a.createBufferSource(),b.buffer=a.createBuffer(1,1,a.sampleRate),b.connect(a.destination),b.start(0),\"function\"===typeof a.resume&&a.resume().then(c),f())}function c(){v.forEach(a=>\n{a()})}function f(){p.forEach(a=>{a.removeEventListener(\"touchstart\",d);a.removeEventListener(\"touchmove\",b);a.removeEventListener(\"touchend\",d);a.removeEventListener(\"mouseup\",d)});p.clear();e.clear()}let e=new Set,p=new Set,v=[];return{onStart:function(b){\"running\"===a.state?(console.log(\"already\"),b()):v.push(b)},register:function(a){a.addEventListener(\"touchstart\",d);a.addEventListener(\"touchmove\",b);a.addEventListener(\"touchend\",d);a.addEventListener(\"mouseup\",d);p.add(a)},dispose:f}}function ca(){function a(a){d[0].value[0]=\na.alpha;d[0].value[1]=a.beta;d[0].value[2]=a.gamma}let b=!1,d=JSON.parse(JSON.stringify(L));return{get ustate(){return d},setup:function(){b||(b=!0,\"object\"===typeof DeviceOrientationEvent&&\"function\"===typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(b=>{\"granted\"===b&&window.addEventListener(\"deviceorientation\",a)}).catch(console.error):window.addEventListener(\"deviceorientation\",a))},dispose:function(){window.removeEventListener(\"deviceorientation\",\na)}}}function da(a){let b={},d=a.getExtension.bind(a);return{get:function(a){if(void 0!==b[a])return b[a];let c=d(a)||d(\"MOZ_\".concat(a))||d(\"WEBKIT_\".concat(a));null===c&&console.warn(\"\u003Cshader-doodle /> \".concat(a,\" extension not supported.\"));return b[a]=c}}}function C(){function a(a,b){if(a>n||b>h)a=Math.max(a,n),b=Math.max(b,h),a!==n&&(n=a,c.width=Math.floor(1*n)),b!==h&&(h=b,c.height=Math.floor(1*h))}function b(a){let b=l?(a-l)/1E3:0;l=a;k[0].value+=b;k[1].value=b;k[3].value++;a=new Date;k[2].value[0]=\na.getFullYear();k[2].value[1]=a.getMonth()+1;k[2].value[2]=a.getDate();k[2].value[3]=3600*a.getHours()+60*a.getMinutes()+a.getSeconds()+.001*a.getMilliseconds()}function d(f){if(m.size){b(f);var u=[...k,...e.ustate];m.forEach(b=>b.render(c,a,n,h,1,u));q=requestAnimationFrame(d)}else q=void 0}let c=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),f=c.getContext(\"webgl\")||c.getContext(\"experimental-webgl\"),e=ca(),p=new (window.AudioContext||window.webkitAudioContext),v=new A(p);p.onStart=\nv.onStart;f.blendFunc(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA);f.enable(f.BLEND);let n=0,h=0,q,l,m=new Set,k=JSON.parse(JSON.stringify(M)),w=da(f);w.get(\"OES_texture_float\");w.get(\"OES_texture_float_linear\");w.get(\"OES_texture_half_float\");w.get(\"OES_texture_half_float_linear\");f.clearColor(0,0,0,0);return Object.freeze({get gl(){return f},get wa(){return p},addSurface:function(a){v.register(a.dom);a.addClick(e.setup);m.add(a);q||(q=requestAnimationFrame(d))},removeSurface:function(a){m.delete(a)},addUniform:function(a,\nb,c){for(let d=0;d\u003Ck.length;d++)if(k[d].name===a){k[d].value=b;k[d].type=c;return}k.push({name:a,value:b,type:c,toyname:a})},setUniform:function(a,b){for(let c=0;c\u003Ck.length;c++)if(k[c].name===a){k[c].value=b;break}},dispose:function(){m.forEach(a=>a.dispose());m.clear();m=void 0;cancelAnimationFrame(q);e.dispose();v.dispose()}})}function ea(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_ATTRIBUTES);for(let f=0;f\u003Cc;f++){let {name:c}=a.getActiveAttrib(b,f);d[c]=a.getAttribLocation(b,c)}return d}function N(a){function b(b){a.texParameteri(a.TEXTURE_2D,\na.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.NEAREST:a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,b?a.NEAREST:a.LINEAR)}let d,c,f=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,f);let e=a.createTexture();if(!e)throw Error(\"createTexture returned null\");a.bindTexture(a.TEXTURE_2D,e);b(!0);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0);return{get handle(){return f},\nget texture(){return e},updateTexture:b,bind:function(){a.bindFramebuffer(a.FRAMEBUFFER,f);a.viewport(0,0,d,c)},updateResolution:function(b,f){if(b!==d||f!==c)d=b,c=f,a.bindTexture(a.TEXTURE_2D,e),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,f,0,a.RGBA,a.FLOAT,null)},dispose:function(){a.deleteFramebuffer(f);a.deleteTexture(e)}}}function O(a,b,d){b=a.createShader(b);a.shaderSource(b,d);a.compileShader(b);if(!a.getShaderParameter(b,a.COMPILE_STATUS)){let c=a.getShaderInfoLog(b);a.deleteShader(b);console.warn(c,\n\"\\nin shader:\\n\",d)}return b}function H(a,b){if(a.length!==b.length)return!1;for(let d=0,c=a.length;d\u003Cc;d++)if(a[d]!==b[d])return!1;return!0}function I(a,b){for(let d=0,c=b.length;d\u003Cc;d++)a[d]=b[d]}function fa(a,b,d,c){a[0]!==c&&(d.uniform1f(b,c),a[0]=c)}function ha(a,b,d,c){H(a,c)||(d.uniform2fv(b,c),I(a,c))}function ia(a,b,d,c){H(a,c)||(d.uniform3fv(b,c),I(a,c))}function ja(a,b,d,c){H(a,c)||(d.uniform4fv(b,c),I(a,c))}function ka(a,b,d,c){a[0]!==c&&(d.uniform1i(b,c),a[0]=c)}function la(a){switch(a){case 5126:return fa;\ncase 35664:return ha;case 35665:return ia;case 35666:return ja;case 35678:case 36198:return ka}}function ma(a,b,d){let c=[],f=la(b.type);return{get location(){return d},get name(){return b.name},setValue:function(...b){f(c,d,a,...b)}}}function na(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(let e=0;e\u003Cc;e++){var f=a.getActiveUniform(b,e);let c=a.getUniformLocation(b,f.name);f=ma(a,f,c);d[f.name]=f}return d}function oa(a,b){if(b){let b=a.match(P);a=a.replace(\"mainImage\",\"main\");a=\na.replace(P,\"()\");a=(b?\"#define \".concat(b[1],\" gl_FragColor\\n#define \").concat(b[2],\" gl_FragCoord.xy\\n\"):\"\")+a}a=pa(qa,b)+a;return\"precision highp float;\\n\"+a}function ra(a,b,d,c,f=!1){function e(a){let b=r[F(a,f,\"name\")];b&&b.setValue(F(a,f,\"value\"))}function p(b){b.forEach(e);t.forEach(a=>a.update(e));k&&r.u_prevbuffer&&(b=r.u_prevbuffer)&&(b.setValue(w),a.activeTexture(a[\"TEXTURE\".concat(w)]),a.bindTexture(a.TEXTURE_2D,k.texture),k.updateTexture());g.forEach(b=>{r[b.name].setValue(b.u);a.activeTexture(a[\"TEXTURE\".concat(b.u)]);\na.bindTexture(a.TEXTURE_2D,b.fbo.texture);b.fbo.updateTexture()})}let v=sa++,n=a.createProgram(),h=a.createBuffer();b=O(a,a.VERTEX_SHADER,b);d=O(a,a.FRAGMENT_SHADER,oa(d,f));a.attachShader(n,b);a.attachShader(n,d);a.linkProgram(n);let q,l,m,k,w,u=ea(a,n),r=na(a,n),g=new Set,t=new Set,x=0;if(!a.getProgramParameter(n,a.LINK_STATUS)){let b=a.getProgramInfoLog(n);console.warn(b)}a.detachShader(n,b);a.detachShader(n,d);a.deleteShader(b);a.deleteShader(d);b=u.position;a.bindBuffer(a.ARRAY_BUFFER,h);a.bufferData(a.ARRAY_BUFFER,\nc,a.STATIC_DRAW);a.enableVertexAttribArray(b);a.vertexAttribPointer(b,2,a.FLOAT,!1,0,0);return{get id(){return v},get nodes(){return g},get fbo(){return m},get name(){return q},get u(){return l},render:function(b,c,d){g.size&&g.forEach(a=>a.render(b,c,d));if(m){if(k){let a=m;m=k;k=a;k.bind();k.updateResolution(b,c)}m.updateResolution(b,c);m.bind()}else a.bindFramebuffer(a.FRAMEBUFFER,null),a.viewport(0,0,b,c);a.clear(a.COLOR_BUFFER_BIT);a.useProgram(n);p(d);a.drawArrays(a.TRIANGLES,0,6)},addNode:function(a,\nb,c){a.toFbo(b,x++,c);g.add(a)},removeNode:function(a){g.delete(a)},addTexture:function(a){t.add(a)},removeTexture:function(a){t.delete(a)},getTexUnit:function(){return x++},update:p,toFbo:function(b,c,d){q=b;l=c;m=N(a);d&&(k=N(a),w=x++)},dispose:function(){t.forEach(a=>a.dispose());t.clear();a.deleteProgram(n)}}}function Q(a){if(!a)return[0,0];let b=(a.tagName||\"\").toLowerCase();return\"video\"===b?[a.videoWidth,a.videoHeight]:\"img\"===b?[a.naturalWidth,a.naturalHeight]:[a.width,a.height]}function R(a,\nb,d={}){function c(){a.getParameter(a.ACTIVE_TEXTURE)!==b&&a.activeTexture(a[\"TEXTURE\".concat(b)])}function f(){h.forEach(b=>{a.texParameteri(p,b[0],b[1])})}function e(b){if(\"object\"===typeof b){Object.assign(n,b);c();a.bindTexture(p,v);var {level:d,internalFormat:e,offsetX:h,offsetY:r,width:g,height:t,border:m,format:B,type:D,flipY:z,buffer:y,pixels:A}=n;f();a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,z);if(A){let [c,d]=Q(A);if(0===c||0===d){console.warn(\"Texture size is invalid \".concat(c,\" x \").concat(d,\n\". Update is skipped;\"));return}{({pixels:b}=n);var J=a.getTexParameter(p,a.TEXTURE_WRAP_S);let c=a.getTexParameter(p,a.TEXTURE_WRAP_T),d=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),f=G(b.width)&&G(b.height);(J=J!==a.CLAMP_TO_EDGE||c!==a.CLAMP_TO_EDGE||d!==a.LINEAR&&d!==a.NEAREST)&&!f&&(l||(l=document.createElement(\"canvas\"),l.width=2**Math.floor(Math.log(b.width)/Math.LN2),l.height=2**Math.floor(Math.log(b.height)/Math.LN2),console.warn(\"Texture is not power of two \".concat(b.width,\" x \").concat(b.height,\n\". Resized to \").concat(l.width,\" x \").concat(l.height,\";\"))),l.getContext(\"2d\").drawImage(b,0,0,l.width,l.height));q=J&&l||b}}\"number\"===typeof h&&\"number\"===typeof r?q?a.texSubImage2D(p,d,h,r,B,D,q):a.texSubImage2D(p,d,h,r,g,t,B,D,y):q?a.texImage2D(p,d,e,B,D,q):a.texImage2D(p,d,e,g,t,m,B,D,y);q&&G(q.width)&&G(q.height)&&(b=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),b!==a.LINEAR&&b!==a.NEAREST&&a.generateMipmap(p))}}let p=a.TEXTURE_2D,v=a.createTexture(),n={},h=[],q,l;e(Object.assign({level:0,internalFormat:a.RGBA,\noffsetX:null,offsetY:null,width:1,height:1,border:0,format:a.RGBA,type:a.UNSIGNED_BYTE,flipY:!0,buffer:ta,pixels:null},\"object\"===typeof d?d:{}));return{setParameters:function(b){c();h.length=0;b.forEach(b=>{h.push(b);a.texParameteri(p,b[0],b[1])})},shallow:function(){c();a.bindTexture(p,v);f()},update:e,dispose:function(){a.deleteTexture(v)}}}function ua(a){return new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",a,!0);c.responseType=\"arraybuffer\";c.onreadystatechange=()=>{c.readyState===\nXMLHttpRequest.DONE&&(200===c.status||206===c.status?b(c.response):(console.log(c),d(c.status)))};c.send()})}function va(a,b){return new Promise((d,c)=>{b.decodeAudioData(a,d,c)})}function wa(a,b,d,c,f,e,p,v){async function n(){g=l.createBufferSource();g.buffer=await va(await ua(c),l);g.loop=e;g.start();t=!0}function h(){let a=document.querySelector(c);a&&a instanceof HTMLAudioElement&&(r=a,g=l.createMediaElementSource(a))}function q(a,b){a.connect(m);m.connect(b)}f=a.gl;let l=a.wa,m=l.createAnalyser();\nm.fftSize=1024;let k=new Uint8Array(m.frequencyBinCount),w=new Uint8Array(m.frequencyBinCount),u=R(f,b,{internalFormat:f.LUMINANCE,width:w.length,height:2,format:f.LUMINANCE,buffer:null});u.setParameters([[f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE],[f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE],[f.TEXTURE_MIN_FILTER,f.NEAREST]]);let r,g,t=!1,x=[{name:d,value:b}];\"#\"===c[0]?h():c&&n();g&&q(g,l.destination);return{dispose:function(){u.dispose()},update:function(a){x.forEach(a);if(t||r&&2\u003Cr.readyState&&!r.paused&&!r.ended&&\nr.currentTime)m.getByteFrequencyData(k),m.getByteTimeDomainData(w),u.update({offsetX:0,offsetY:0,height:1,buffer:k}),u.update({offsetX:0,offsetY:1,height:1,buffer:w})}}}function S(a,b){var d=Object.keys(a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);b&&(c=c.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable}));d.push.apply(d,c)}return d}function T(a){let b=document.createElement(\"div\");b.style.width=b.style.height=\"1px\";b.style.overflow=\"hidden\";b.style.position=\n\"absolute\";b.style.opacity=\"0\";b.style.pointerEvents=\"none\";b.style.zIndex=\"-1000\";b.appendChild(a);document.body.appendChild(b)}function xa(a,b,d,c,f,e,p,v,n,h){function q(){t=0;g=new Image;g.crossOrigin=\"anonymous\";g.onload=l;g.onerror=()=>{console.warn(\"failed loading src: \".concat(c))};g.src=c}function l(){k();r.setParameters([[u.TEXTURE_WRAP_S,e],[u.TEXTURE_WRAP_T,p],[u.TEXTURE_MIN_FILTER,v],[u.TEXTURE_MAG_FILTER,n]]);r.update({pixels:g})}function m(){t=2;let a=navigator.getUserMedia||navigator.webkitGetUserMedia||\nnavigator.mozGetUserMedia,b=a=>{g=document.createElement(\"video\");g.width=320;g.height=240;g.autoplay=!0;g.srcObject=a;T(g)},c=()=>{navigator.mediaDevices.getUserMedia({video:!0}).then(b).catch(a=>console.log(a.name+\": \"+a.message))},d=()=>{a({video:!0},b,a=>a)};navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?c():a&&d()}function k(){if(g){let [a,b]=Q(g);x[1].value[0]=a;x[1].value[1]=b}}function w(){return(2===t||1===t)&&g instanceof HTMLVideoElement}let u=a.gl,r=R(u,b),g,t,x=[{name:d,\nvalue:b},{name:d+\"_resolution\",value:[0,0]}],B=!1;if(f)m();else if(ya.test(c))t=1,g=document.createElement(\"video\"),g.autoplay=!0,g.muted=!0,g.loop=!0,g.playsInline=!0,g.crossOrigin=\"anonymous\",g.src=c,T(g),g.play();else if(za.test(c))q();else{try{g=document.querySelector(c)}catch(D){console.warn(\"src: \".concat(c,\": invalid selector\"))}g?g instanceof HTMLImageElement?(t=0,g.complete?l():g.addEventListener(\"load\",l)):g instanceof HTMLVideoElement?t=1:g instanceof HTMLCanvasElement?(t=3,l()):g instanceof\nK?(g=g.surface.dom,t=3,l()):console.warn(\"src: \".concat(c,\": element is not a valid texture source\")):console.warn(\"src: \".concat(c,\": no element could be selected\"))}return{dispose:function(){r.dispose()},update:function(a){x.forEach(a);h||w()&&g.readyState===g.HAVE_ENOUGH_DATA?(w()&&(B||(B=!0,k(),r.setParameters([[u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE],[u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE],[u.TEXTURE_MIN_FILTER,u.LINEAR]]))),r.update({pixels:g})):r.shallow()}}}function Aa(a){function b(a){n.forEach(a=>\n\"function\"===typeof a&&a());k=!0;a=U(a);let {top:b,left:c,height:d}=q;h[2].value[0]=h[2].value[2]=a[0]-Math.floor(c);h[2].value[1]=h[2].value[3]=Math.floor(d)-(a[1]-Math.floor(b))}function d(a){if(!m){a=U(a);let {top:b,left:c,height:d}=q;h[1].value[0]=a[0]-Math.floor(c);h[1].value[1]=Math.floor(d)-(a[1]-Math.floor(b));k&&(h[2].value[0]=h[1].value[0],h[2].value[1]=h[1].value[1]);m=!0}}function c(a){k=!1;1===Math.sign(h[2].value[2])&&(h[2].value[2]*=-1);1===Math.sign(h[2].value[3])&&(h[2].value[3]*=\n-1)}function f(){let b=e.getBoundingClientRect();l=0\u003C=b.top+b.height&&0\u003C=b.left+b.width&&b.bottom-b.height\u003C=(window.innerHeight||document.documentElement.clientHeight)&&b.right-b.width\u003C=(window.innerWidth||document.documentElement.clientWidth);let c=0\u003Ca.height?a.height:b.height,d=0\u003Ca.width?a.width:b.width;d!==h[0].value[0]&&(e.width=h[0].value[0]=d);c!==h[0].value[1]&&(e.height=h[0].value[1]=c);q=b}let e=a.canvas instanceof HTMLCanvasElement?a.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\n\"canvas\"),p=e.getContext(\"2d\"),v=a.program,n=new Set,h=JSON.parse(JSON.stringify(V)),q={},l,m,k;e.addEventListener(\"mousedown\",b);e.addEventListener(\"mousemove\",d);e.addEventListener(\"mouseup\",c);e.addEventListener(\"mouseout\",c);e.addEventListener(\"touchstart\",b);e.addEventListener(\"touchmove\",d);e.addEventListener(\"touchend\",c);f();return Object.freeze({get dom(){return e},render:function(a,b,c,d,e,k){f();m=!1;if(l&&v){var g=h[0].value[0]||0;c=h[0].value[1]||0;b(g,c);v.render(g,c,[...k,...h]);b=\ng*e;e*=c;p.clearRect(0,0,b,e);p.drawImage(a,0,d-e,b,e,0,0,b,e)}},addClick:function(a){n.add(a)},dispose:function(){n.clear();e.removeEventListener(\"mousedown\",b);e.removeEventListener(\"mousemove\",d);e.removeEventListener(\"mouseup\",c);e.removeEventListener(\"mouseout\",c);e.removeEventListener(\"touchstart\",b);e.removeEventListener(\"touchmove\",d);e.removeEventListener(\"touchend\",c)}})}var W={render(a,b){return\"\".concat(this.css(a,b),\"\\n \").concat(this.html())},map(a){return{canvas:a.querySelector(\"canvas\")}},\nhtml(a){return\"\u003Ccanvas>\u003C/canvas>\"},css(a,b){return\"\u003Cstyle>\\n :host {\\n position: relative;\\n display: inline-block;\\n width: \".concat(a||250,\"px;\\n height: \").concat(b||250,\"px;\\n }\\n :host > canvas {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n border-radius: inherit;\\n }\\n \u003C/style>\")}};let M=[{name:\"u_time\",toyname:\"iTime\",type:\"float\",value:0},{name:\"u_delta\",toyname:\"iTimeDelta\",\ntype:\"float\",value:0},{name:\"u_date\",toyname:\"iDate\",type:\"vec4\",value:[0,0,0,0]},{name:\"u_frame\",toyname:\"iFrame\",type:\"int\",value:0}],V=[{name:\"u_resolution\",toyname:\"iResolution\",type:\"vec2\",value:[0,0]},{name:\"u_mouse\",toyname:\"iCurrentMouse\",type:\"vec2\",value:[0,0]},{name:\"u_mousedrag\",toyname:\"iMouse\",type:\"vec4\",value:[0,0,0,0]}],L=[{name:\"u_orientation\",toyname:\"iOrientation\",type:\"vec3\",value:[0,0,0]}],qa=[...M,...L,...V],P=/\\(\\s*out\\s+vec4\\s+(\\S+)\\s*,\\s*in\\s+vec2\\s+(\\S+)\\s*\\)/,y;C.singleton=\nfunction(){y||(y=C());return y};C.resetSingleton=function(){y&&y.dispose();y=C()};class E extends HTMLElement{get renderer(){return C.singleton()}get name(){return this.getAttribute(\"name\")}set name(a){this.setAttribute(\"name\",a)}}var F=(a,b,d)=>{if(!b)return a[d];b=\"toy\".concat(d);return a.hasOwnProperty(b)?a[b]:a[d]},pa=(a,b)=>Object.values(a).reduce((a,c)=>a+\"uniform \".concat(F(c,b,\"type\"),\" \").concat(F(c,b,\"name\"),\";\\n\"),\"\");let sa=0;var Ba=a=>new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",\na);c.onreadystatechange=()=>{c.readyState===XMLHttpRequest.DONE&&(200===c.status?b(c.responseText):d(c.status))};c.send()}),X=async a=>a.src?Ba(a.src):a.text;let Y=new Float32Array([-1,1,1,1,1,-1,-1,1,1,-1,-1,-1]),Ca=0;class Z extends E{disconnectedCallback(){this.program.dispose();this.program=void 0}get shadertoy(){return this.hasAttribute(\"shadertoy\")}set shadertoy(a){a?this.setAttribute(\"shadertoy\",\"\"):this.removeAttribute(\"shadertoy\")}get prevbuffer(){return this.hasAttribute(\"prevbuffer\")}set prevbuffer(a){a?\nthis.setAttribute(\"prevbuffer\",\"\"):this.removeAttribute(\"prevbuffer\")}get vertices(){let a=this.getAttribute(\"vertices\");if(!a)return Y;a=JSON.parse(a);return Array.isArray(a)?new Float32Array(a):Y}set vertices(a){a&&Array.isArray(a)&&this.setAttribute(\"vertices\",JSON.stringify(a))}async init(a){a&&!this.name&&(this.name=\"\".concat(\"u_node\").concat(Ca++));let b=[],d,c;for(let a=0;a\u003Cthis.children.length;a++){let e=this.children[a];if(e instanceof E)b.push(e);else switch(e.getAttribute(\"type\")){case \"x-shader/x-fragment\":c=\nawait X(e);break;case \"x-shader/x-vertex\":d=await X(e)}}this.program=ra(this.renderer.gl,d||\"attribute vec2 position;\\nvoid main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n}\",c,this.vertices,this.shadertoy);b.forEach(a=>{a.init(this.program)});a&&a.addNode(this.program,this.name,this.prevbuffer)}}customElements.get(\"sd-node\")||customElements.define(\"sd-node\",Z);let ta=new Uint8Array([0,0,0,255]),G=a=>!(a&a-1)&&!!a,Da=0;class Ea extends E{disconnectedCallback(){this.program.removeTexture(this.texture);\nthis.texture.dispose()}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get autoplay(){return this.hasAttribute(\"autoplay\")}set autoplay(a){a?this.setAttribute(\"autoplay\",\"\"):this.removeAttribute(\"autoplay\")}get loop(){return this.hasAttribute(\"loop\")}set loop(a){a?this.setAttribute(\"loop\",\"\"):this.removeAttribute(\"loop\")}get crossOrigin(){return this.getAttribute(\"crossorigin\")}set crossOrigin(a){this.setAttribute(\"crossorigin\",a)}get mic(){return this.hasAttribute(\"mic\")}set mic(a){a?\nthis.setAttribute(\"mic\",\"\"):this.removeAttribute(\"mic\")}init(a){this.name||(this.name=\"\".concat(\"u_audio\").concat(Da++));this.src&&(this.program=a,this.texture=wa(this.renderer,a.getTexUnit(),this.name,this.src,this.mic,this.loop,this.autoplay,this.crossOrigin),a.addTexture(this.texture))}}customElements.get(\"sd-audio\")||customElements.define(\"sd-audio\",Ea);let za=/\\w+\\.(jpg|jpeg|png|gif|bmp)(?=\\?|$)/i,ya=/\\w+\\.(mp4|3gp|webm|ogv)(?=\\?|$)/i,aa={NEAREST:9728,LINEAR:9729},Fa=function(a){for(var b=1;b\u003C\narguments.length;b++){var d=null!=arguments[b]?arguments[b]:{};b%2?S(d,!0).forEach(function(b){var c=d[b];b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):S(d).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(d,b))})}return a}({},aa,{NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987}),\nba={REPEAT:10497,MIRRORED_REPEAT:33648,CLAMP_TO_EDGE:33071},Ga=0;class Ha extends E{static get observedAttributes(){return\"mag-filter min-filter name src wrap-s wrap-t\".split(\" \")}disconnectedCallback(){this.program.removeTexture(this.texture);this.texture.dispose()}get forceUpdate(){return this.hasAttribute(\"force-update\")}set forceUpdate(a){a?this.setAttribute(\"force-update\",\"\"):this.removeAttribute(\"force-update\")}get magFilter(){return aa[this.getAttribute(\"mag-filter\")]||9729}get minFilter(){return Fa[this.getAttribute(\"min-filter\")]||\n9987}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get webcam(){return this.hasAttribute(\"webcam\")}set webcam(a){a?this.setAttribute(\"webcam\",\"\"):this.removeAttribute(\"webcam\")}get wrapS(){return ba[this.getAttribute(\"wrap-s\")]||10497}get wrapT(){return ba[this.getAttribute(\"wrap-t\")]||10497}init(a){this.name||(this.name=\"\".concat(\"u_texture\").concat(Ga++));if(this.src||this.webcam)this.program=a,this.texture=xa(this.renderer,a.getTexUnit(),this.name,this.src,this.webcam,\nthis.wrapS,this.wrapT,this.minFilter,this.magFilter,this.forceUpdate),a.addTexture(this.texture)}}customElements.get(\"sd-texture\")||customElements.define(\"sd-texture\",Ha);class Ia extends E{disconnectedCallback(){}get x(){return parseFloat(this.getAttribute(\"x\"))}set x(a){null!=a?this.setAttribute(\"x\",a):this.removeAttribute(\"x\")}get y(){return parseFloat(this.getAttribute(\"y\"))}set y(a){null!=a?this.setAttribute(\"y\",a):this.removeAttribute(\"y\")}get z(){return parseFloat(this.getAttribute(\"z\"))}set z(a){null!=\na?this.setAttribute(\"z\",a):this.removeAttribute(\"z\")}get w(){return parseFloat(this.getAttribute(\"w\"))}set w(a){null!=a?this.setAttribute(\"w\",a):this.removeAttribute(\"w\")}getValue(){switch(this.type){case \"vec2\":return[this.x,this.y];case \"vec3\":return[this.x,this.y,this.z];case \"vec4\":return[this.x,this.y,this.z,this.w];default:return this.x}}get type(){return this.getAttribute(\"type\")}set type(a){null!=a?this.setAttribute(\"type\",a):this.removeAttribute(\"type\")}static get observedAttributes(){return[\"x\",\n\"y\",\"z\",\"w\"]}attributeChangedCallback(a,b,d){switch(a){case \"x\":case \"y\":case \"z\":case \"w\":null!=d&&this.renderer.setUniform(this.name,this.getValue())}}init(a){this.name?(this.program=a,this.renderer.addUniform(this.name,this.getValue(),this.type)):console.warn(\"sd-uniform created without a name.\")}}customElements.get(\"sd-uniform\")||customElements.define(\"sd-uniform\",Ia);let Ja=new Set([\"touchstart\",\"touchmove\",\"touchend\"]);var U=a=>{a=Ja.has(a.type)&&\"object\"===typeof a.touches[0]?a.touches[0]:\na;return[a.clientX||0,a.clientY||0]};class K extends Z{static get observedAttributes(){return[\"height\",\"width\"]}constructor(){super();this.shadow=this.attachShadow({mode:\"open\"})}connectedCallback(){this.shadow.innerHTML=W.render(this.width,this.height);this.canvas=W.map(this.shadow).canvas;setTimeout(()=>{try{this.init()}catch(a){console.error(a&&a.message||\"Error in shader-doodle.\")}})}disconnectedCallback(){super.disconnectedCallback();this.renderer.removeSurface(this.surface);this.surface.dispose();\nthis.surface=void 0}attributeChangedCallback(a){let b=this.shadow.styleSheets;if((\"height\"===a||\"width\"===a)&&0\u003Cb.length){let d=this[a];b[0].cssRules[0].style[a]=Number.isInteger(d)?\"\".concat(d,\"px\"):\"250px\"}}get height(){let a=parseInt(this.getAttribute(\"height\"));return Number.isInteger(a)?a:void 0}set height(a){let b=parseInt(a);Number.isInteger(b)&&this.setAttribute(\"height\",a)}get width(){let a=parseInt(this.getAttribute(\"width\"));return Number.isInteger(a)?a:void 0}set width(a){a=parseInt(a);\nNumber.isInteger(a)&&this.setAttribute(\"width\",a)}async init(){await super.init();this.surface=Aa(this);this.renderer.addSurface(this.surface)}}customElements.get(\"shader-doodle\")||customElements.define(\"shader-doodle\",K);z.ShaderDoodleElement=K;Object.defineProperty(z,\"__esModule\",{value:!0})})\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/shader-doodle.js","modified":"20230426064515285"},
-{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#XR Fragments\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Home\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#How it works\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">How it works\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Getting%20started\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Getting started\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"/example/aframe/sandbox\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Example Browser\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"https://github.com/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Sourcecode\u003C/a> & \u003Ca href=\"https://mastodon.online/@lvk\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Feedback\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Philosophy%20&%20FAQ\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Philosophy & FAQ\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n[img width=150 [nlnet.png]]\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t position:absolute;\n\t\topacity:0.4;\n\t\tbottom:10px;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20240208103859764"},
+{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#XR Fragments\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Home\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#How it works\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">How it works\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Getting%20started\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Getting started\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"/example/aframe/sandbox\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Example Model Browser\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Spec\u003C/a> | \u003Ca href=\"https://github.com/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Sourcecode\u003C/a> | \u003Ca href=\"https://mastodon.online/@lvk\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Feedback\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Philosophy%20&%20FAQ\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Philosophy & FAQ\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n[img width=150 [nlnet.png]]\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t position:absolute;\n\t\topacity:0.4;\n\t\tbottom:10px;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20240426124200651"},
{"created":"20230427155228509","text":"\u003Cscript src=\"dist/xrfragment.js\">\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/xrfragment/xrfragment.js","modified":"20230627082106120"},
{"created":"20230530121012871","text":"16:04:16 From Leon van Kammen : https://xrf.isvery.ninja/example/aframe/sandbox\n16:04:51 From Frode Hegland : https://futuretextlab.info\n16:04:54 From Leon van Kammen : https://xrf.isvery.ninja\n16:05:21 From Frode Hegland : https://futuretextlab.info/category/vr-resource/\n16:15:08 From Peter Wasilko : What is MR in the center of the diagram?\n16:15:28 From Brandel Zachernuk : “Mixed Reality”\n16:15:54 From Peter Wasilko : How is it distinguished from AR?\n16:17:09 From Brandel Zachernuk : It’s a term that people use to encompass the lot. Many people claimed that Google Glass-style AR with no ‘world registration’ as AR, which drove people to coining an additional term\n16:17:30 From Frode Hegland : Ah… thanks Brandel\n16:19:05 From Patrick Lichty : MR, XR, AR, VR, it seems these are used rather fungible, it’d be good to have a small discussion about the Venn diagram here after the talk.\n16:19:24 From Frode Hegland : Yes exactly http://community.cim3.net/wiki/PurpleNumbers.html\n16:19:39 From Frode Hegland : Doug’s paragraph level addressing made live on the web through this\n16:19:52 From Karl Hebenstreit, Jr. : Reacted to “MR, XR, AR, VR, it s…” with 👍\n16:22:14 From Peter Wasilko : I particularly loved Doug’s deep linking distinction between a location in a document whose content might change vs. content in a document whose location might change. We need anchors to both.\n16:22:43 From Frode Hegland : Reacted to “I particularly loved…” with 👍\n16:24:17 From Frode Hegland : Hi Dene\n16:24:36 From Patrick Lichty : Reacted to “I particularly loved…” with 👏\n16:25:08 From Dene Grigar To Frode Hegland(privately) : Good moring\n16:25:12 From Dene Grigar To Frode Hegland(privately) : morning\n16:25:27 From Frode Hegland To Dene Grigar(privately) : 🙂\n16:30:25 From Frode Hegland : Hi Matthias\n16:31:40 From Patrick Lichty : This is amazing, actually.\n16:31:51 From Peter Wasilko : It looked like the image on the surface of the portal object was changing with one’s relative position to it.\n16:33:09 From Dene Grigar : Is there an example of how this has been used for art?\n16:33:25 From Patrick Lichty : Yes.\n16:36:22 From Karl Hebenstreit, Jr. : Future of Interface Workshop (February 15-16), https://futureofinterface.org/info-center/accessibility/ and there’s an XR Accessibility community, https://xraccess.org/\n16:40:15 From Peter Wasilko : https://en.wikipedia.org/wiki/TouchDesigner\n16:40:47 From Peter Wasilko : https://derivative.ca\n16:45:25 From Fabien : addressability of the known universe with infinite resolution\n16:47:49 From Frode Hegland : Fabien, infinite resolution depends on stated context, so cool\n16:47:50 From Frode Hegland : Can this generate a link to a specific location and view by the user performing an action in that location and sharing it? Like a GPS coordinate maybe.\n16:50:22 From Brandel Zachernuk : This is the W3C TPAC: https://www.w3.org/2023/09/TPAC/, and the IW WG (webXR etc) is here: https://www.w3.org/immersive-web/\n16:50:28 From Fabien : Reacted to “This is the W3C TP…” with 👍\n16:51:33 From Matthias mprove : The TPAC link says ”Sorry, Insufficient Access Privileges”\n16:51:34 From Karl Hebenstreit, Jr. : I see XR accessibility as one of the most complex challenges. How can we make it accessible so people with disabilities are not excluded from virtual worlds?\n16:52:22 From Matthias mprove : Oh, the comma was playing a trick on me: https://www.w3.org/2023/09/TPAC/\n16:53:45 From Peter Wasilko : De Bruijn Indices! https://en.wikipedia.org/wiki/De_Bruijn_index\n17:01:36 From Dene Grigar : Yes, I do\n17:02:14 From Dene Grigar : VR poses a challenge for conservation\n17:02:39 From Frode Hegland : 1 second sorry\n17:02:49 From Fabien : indeed, participated to Not Time To Wait specifically for that https://mediaarea.net/NoTimeToWait6\n17:03:13 From Fabien : (for conservation, in art or not)\n17:03:28 From Daveed Benjamin : Love it Peter! Bit.ly for XR fragments\n17:03:55 From Matthias mprove : paraphrasing Jef Raskin: the beginning of a document should be usable as a filename to refer to the document itself\n17:04:43 From Leon van Kammen : Jeff Rascin\n17:04:51 From Peter Wasilko : https://en.wikipedia.org/wiki/The_Humane_Interface\n17:04:56 From Matthias mprove : /from his book The Humane Interface\n17:05:37 From Dene Grigar To Frode Hegland(privately) : I need to go to another meeting. Thanks for today!\n17:09:32 From Peter Wasilko : Just to play it safe, you might need to query IPFS for the URI phrase before using it on the extremely odd chance some else had previously generated it. In Law, we actually deal with this in naming corporations by breaking out an explicit Name Reservation step.\n17:09:37 From Fabien : for ref https://en.wikipedia.org/wiki/World_Geodetic_System\n17:12:06 From Karl Hebenstreit, Jr. : @Fabien are you talking about a universal (UTC) timestamp?\n17:13:03 From Fabien : was thinking more of the spatial aspect but timestamp could be an example too as we do have to be able to “convert” from one timezone to another or have different timescales too\n17:15:26 From Fabien : other example https://en.wikipedia.org/wiki/Web_Mercator_projection most of us might be familiar with, without being aware of it, point being that with its name and https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems it’s explicited and thus can be converted from and to, basically avoiding “the one solution” that we lately notice just doesn’t cover all cases\n17:15:34 From Peter Wasilko : @Patrick, do you have any favorite Brutalist Architecture resources?\n17:17:02 From Patrick Lichty : Brutalism appreciation society on FB, sci fi movie Sankofa and Last Men,\n17:22:14 From Peter Wasilko : One can’t help contemplate Brutalism in VR.\n17:22:38 From Patrick Lichty : Book – Soviet Bus Stops\n17:26:38 From Peter Wasilko : @Brandel do you have a link to that work?\n17:29:02 From Karl Hebenstreit, Jr. : List of speakers from Future of Interface workshop: https://docs.google.com/document/d/1tUjMRyLHEtyzHotfAmQUnDsdMHuMWdBkmuG8TlRKEqs/edit\n17:29:54 From Brandel Zachernuk : https://zachernuk.neocities.org/2016/beestConfigurator/#wr=38&bl=170&ta=272&tb=157&ba=210&bb=94&fl=200&fa=1.371&\n17:30:00 From Karl Hebenstreit, Jr. : @Dene will want to view the Exploratorium: https://futureofinterface.org/exploratorium/\n17:30:15 From Karl Hebenstreit, Jr. : Thank you everyone, on to my next meeting…\n17:30:44 From Leon van Kammen : https://xrf.isvery.ninja/#List%20of%20fragments\n17:31:25 From Matthias mprove : Flashback: URLs were never meant to be seen by the end-user. This just happened some years after Berners-Lee/Cailliau have introduced their browser w/o visible links. Very insightful interview with Robert Cailliau (1999) at https://www.youtube.com/watch?v=x2GylLq59rI\n17:36:04 From Matthias mprove : related to Leons wonderful work :: my ChronoLinks contain perspective and and zoom and time and old map identifier. Example: click the 5 buttons below at EXPEDITION AUF TENERIFFA https://mprove.de/chronolab/world/humboldt/index.html#teneriffa\n(This is a 3d mapbox world)\n17:36:44 From Fabien : Reacted to “Flashback: URLs we…” with 👀\n17:43:44 From Fabien : see also https://git.benetou.fr/utopiah/text-code-xr-engine/issues/24 on “in 3D” screenshot (as glTF snapshot) from defined perspective, tried with “friends” via Immers and had a working version\n17:44:24 From Frode Hegland : Reacted to “see also https://git…” with 👍\n17:45:19 From Patrick Lichty : I have to go to another meeting soon. This was great. Thank you!\n17:46:21 From Matthias mprove : Bonus info: Chronoscope’s ChronoLinks can also contain commands that are executed once the link is loaded by a browser. Example: this animation is just one link. Video: https://twitter.com/chronohh/status/1551203958730985472\nDIY ChonoLink inside here https://twitter.com/chronohh/status/1550876398960709638\n17:47:15 From Fabien : https://wicg.github.io/scroll-to-text-fragment/\n17:48:12 From Matthias mprove : @Leon set a marker on something: This is again Jef Raskin, the distinction between focus of attention and locus of attention. /also from The Humane Interface\n17:48:22 From Fabien : https://markjs.io\n17:50:42 From Brandel Zachernuk : Just like SMS, never intended to be exposed as an end-user capability\n17:51:25 From Brandel Zachernuk : But there’s an explicit line from SMS to Twitter and many (most?) other social media platforms\n17:53:36 From Fabien : code related to federated share moment/position https://git.benetou.fr/utopiah/text-code-xr-engine/src/branch/federation/index.html#L222 that is accessible as a URL e.g https://immers.benetou.fr/s/639cb4171757b8382c120da1\n17:56:54 From Fabien : related on “pointing” at things in the real life with MR/AR/XR, this a “layer” of the “real” world https://git.benetou.fr/utopiah/text-code-xr-engine/issues/73\n18:09:04 From Matthias mprove : My sort of fun: Connecting the Colosseum with Stonehenge https://mprove.de/chrono?q=41.89018,12.49231&z=17.11&r=20&t=14&m=SZAT7400-MIII40-8&o=0.8&s=1&c=z,-5,9,vIAb28777542-16,h,z,-22,9,vIAb22010294-26,z,-7,9,9\n18:09:34 From Fabien : Reacted to “My sort of fun: Co…” with 👍\n18:15:44 From Peter Wasilko : We could exfiltrate data as a Visual Meta blipvert in VR. Rez a placard with the VM for 10th of a second. https://en.wikipedia.org/wiki/Blipvert\n\njeff rascins, phrases not urls purle-elk-mount-fuji (ipfs)\nlike that\n\nhyperbolic browsers, mindmaps\n\nfragment: highlight point of interest\n\npolitical cultural implications, who is it excluding, obligations, worst thing to apply\n\nXR Fragments,\nBrandel, url as authorisation (client decodes url, logic)\n\nvisual meta\n\nmauve: matrix, \n\nhttps://github.com/omigroup/gltf-extensions\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pulls\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pull/85\n \nMauve (they/it) says:\nhttps://blog.mauve.moe/slides/p2p-spatial-indexes/#1\n \nMauve (they/it) says:\nhttps://github.com/omigroup/omi-scripting-group\n \nMauve (they/it) says:\nhttps://unit.land/\n \n21:58\nme says:\nhttps://searxr.me\n \n22:06\nMT\nMauve (they/it)\nMauve (they/it) says:\nhttps://stardustxr.org/\n\n22:12\nme says:\nhttps://github.com/copy/v86\n \nMauve (they/it) says:\nhttps://webassembly.sh/\n \nMauve (they/it) says:\nhttps://matrix.to/#/#LoFirCy:mauve.moe","title":"29th May 2023 future of text presentation notes","tags":"Journal","modified":"20230530121043650","type":"text/plain"},
{"title":"4d3.jpg","text":"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kkkkkkkkkgEgkgEkkgAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEkEkkkkkkgkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkEkkkgAAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAAkkkkkgEAgEEEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklkkkkkkkkk8kkkkDkkkkkkkkkkkkkggkAEkkgkkAkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkknYkkkxv0kkkEkkkkkkkkkkkgkkggAkkkEkgkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhkkBuNXLypU1O4ByfgakkkkkkkkkkkgEEAkkgEkgkkAkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhpAkkkXwnlfNqtjj8CA8kkkkkkkkkkkkkEAkkgEkkEkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklgYkndnjzk8RZzB0ACK0kkkkkkkkkkkgEkkkkkEkgkgkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkEkCjPUAG0kkkkkkkkkkkkkkkkEkkkEgEkgAEAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkknEkkgpUkkkkkkkkkkkkkkkkkkkkkgAAEgkkkgkkEgEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkkAkkkkkkkkkkkkkkkkkkkkkkkkgkkkkkkkkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkkEkkAggkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkgAAkEAAAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkykkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkGkkkknkkikkmckEk8kkkggmAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkH0kkkloskCEk5k7koFkkk9DaskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkigAcp5V9kgLjUHrE+F6iklxsJxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkg9CcTPjEn1yxEkMknKUuknwlI0kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhVC8ThpkgjePaTUkhDUcj0WK8kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhfeQUGkkcmEEVvknIYEkZEjfkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAkkkkkkkkkkkkkkkkkkkkkkkkZkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk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","type":"image/jpeg"},
@@ -1059,7 +1059,7 @@ Error message and password prompt
{"title":"nlnet.png","text":"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","type":"image/png"},
{"created":"20231128145723311","text":"> NOTE: the following is adviced but also non-mandatory for clients: offering buttons (with `href` or filters) next to portals/lenses makes things accessible for euclidian-only clients.\n\nA mesh ''without a material'' with an `src` value (referencing an object or URL reference) will turn into:\n\n1. ''Portals'': will render a referenced object (outside) of the portal \u003Cb>ALSO\u003C/b> inside of the object (portal)\u003Cbr>\n\u003Cbr>\n2. ''Lenses'': will render referenced \u003Cb>children\u003C/b> object \u003Cb>ONLY\u003C/b> inside of the parent object (the lens).\n\n> NOTE: the origin of the flat object, will correlate to `0,0,0` or the origin of the referenced object (the origin of object `bar` in case of `src: foo.usdz#bar` e.g.). So you can be creative with the origin of the portal/lens object, to reposition the referenced object. \n\nYou can see this demonstrated in \u003Ca href=\"/example/assets/index.glb\" target=\"_blank\">index.glb\u003C/a> or the demo-video & viewer below:\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.github.io/xrfragment.media/portals-and-lenses.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n! Portals\n\nWill render objects outside of the portal \u003Cb>ALSO\u003C/b> inside of the portal\n\n\u003Cimg style=\"width:100%;border-radius:5px;box-shadow:none;padding:20px\" class=\"border\" src=\"https://coderofsalvation.github.io/xrfragment.media/images/portal.jpg\"/>\n\nExample scene hierarchy:\n\n```\n\n\n my.io/scene.usdz\n +─────────────────────────────+\n │ world1 │ \n │ +─────────────────────────+ │ \n │ │ myportal +-------+ src: #world2 \n | | | | + href: #pos=world2\n │ +─────────────────────────+ │\n │ world2 │ \n │ +─────────────────────────+ │ \n │ │ cube │ │ \n │ +─────────────────────────+ │\t\n +─────────────────────────────+\n\n\n```\n\n! Lenses\n\nWill render objects inside of the portal (children) \u003Cb>ONLY\u003C/b> inside of the portal.\n\n\u003Cimg style=\"width:100%;border-radius:5px;box-shadow:none;padding:20px\" class=\"border\" src=\"https://coderofsalvation.github.io/xrfragment.media/images/xrlens.png\"/>\n\nExample scene hierarchy:\n\n```\n\n\n my.io/scene.usdz\n +─────────────────────────────+\n │ world1 │ \n │ +─────────────────────────+ │ \n │ │ myportal +-------+ src: #someinfo\n | | +──────────+ | | \n | | | someinfo | | |\n | | +──────────+ | |\n │ +─────────────────────────+ │\n │ world2 │ \n │ +─────────────────────────+ │ \n │ │ cube │ │ \n │ +─────────────────────────+ │\t\n +─────────────────────────────+\n\n\n```\n\n!Demo viewer\n\nPress the 'Teleport down there'-button (in the lens) and witness the portals afterwards yourself:\n\n\u003Ciframe class=\"border\" src=\"./example/aframe/sandbox/?index.glb\" frameborder=\"0\" style=\"width:100%;max-width:1000px; height:70%; min-height:500px;\"/>","tags":"[[📡 by feature (heuristics)]]","title":"non-euclidian portals & lenses","modified":"20240206123715237"},
{"title":"perception_reality6.jpg","text":"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JJJJJJJJJJJJJJJJJIJJBJIJBJABBAJBJIBJBBJJJJJJJJBBBJJJJJJJJJJJJJJIJIIJIBBAJJBJBJJJJJJJJJJJJJJJJJJJJAJJJJJJJIAAIBBIJIIAJBABJBJIJAJJJJJJJJBBIBBBIJJJJJJJJJJBJIBAAJIBIJJJJJJJJJJJJJJJJJJJJJJJIJJIBABJIBIBIIIBIAIBIIAJIBJAIBJJJJJJIBJBABAIIJJJJJJJJJIABAJBIJAJBJAJJJJJJJJJJJJJJJJJJJJIBJAJJABJBJBABBJBIJAAJJAJJIABAJJJJJJJJAAAAAJBJJJJJJJJJJBJAIAAJIBIIBIJJJJJJJJJJJJJJJJJJJJBAABBAAJJJJIBJJJBJJAAJIBJIJJJJJJJJJJJJJAJJJJBJJJJJJJJJJJJJAJBJJJIIBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJABJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJCF6l2qJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJPPNyfF7wbJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKPsJJJJJJJcgBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJWfJJJJJJJJJItOZJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJDNpJJJHQss5JJJDtpJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJDDJJJJJIethJJJJIqDJJJJJJJJJJJ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SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSV6SSSO9iySSSSSSSSOESSSSFySSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSJiSSSSSSSSSSSSSSSSSSSSUSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSLuSSSSSSSSSSSSSSSSSSSQiSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS2SSSSSSSSSSSSSSSSSSY+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHaSSSSSSSSSSSSSSSSSMmSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSZWSSSSSSSSSSSSSSSSjSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSfIySSSSSSSSSSSSSQqySSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRISSSSSSSSSSSSSTTySSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS1rySSSSSSSSSS2ySSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSGr6SSSSSSSQ5/ySSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSUTMeSSQoChaSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSfhh9cmBmSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS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","type":"image/jpeg"},
-{"created":"20230508143700790","text":"Sit back and watch this ''#convergence-not-metaverse'' appstore-agnostic-but-symbiotic philosophy below:\u003Cbr>\u003Cbr>\u003Cbr>\n\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.github.io/xrfragment.media/xrfragment.bumper2.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n!!FAQ\n\n\u003Cb>Q: How can XR Fragments support all 3D files ever made?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> By targeting the lowest common denominator of all 3D fileformats: objectnames, positions, rotations (and metadata called `custom properties`/`extras`)\n\n\u003Chr>\n\n\u003Cb>Q: Do my 3D files need a specific (metadata) layout/format?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> No, XR Fragments are file-agnostic and metadata is optional.\u003Cbr>\nThe objectnames inside the 3D file are used as URL references.\n\n\u003Chr>\n\n\u003Cb>Q: Do I need complex infrastructure?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> No, XR Fragments are protocol-agnostic, you can host your files on a USB-stick, wordpress webserver, ftp-directory, ipfs, blockchain etc!\n\n\u003Chr>\n\n\u003Cb>Q: How will this enable the metaverse?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> The metaverse is a fantasy sci-fi concept from a book. XR fragments deals with real people creating 3D interlinked content & storytelling.\n \n\u003Chr>\n\n\u003Cb>Q: Why not attach a programming language to XR Fragments\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> The intention is understandable, but it is out of scope. Programming languages & frameworks come and go. Hence XR Fragments is a spec for interactive metadata for 3D viewers. Hypermedia viewers based on metadata outsurvive programminglanguages in general.\u003Cbr>However, you are free to build programming language \u003Cb>to extend\u003C/b> experiences, or build a viewer or parser in your favorite language.\n\n\u003Chr>\n\u003Cb>Q: Why don't you add feature X from game Y?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> To keep the spec simple, it is limited to 3 primitives and 3 fragments (`href`+`src`+`tag` and `#pos`+`#rot`+`#t`) which allows myriads of URL-controllable experiences (including the metadata already present in 3D files like object names and hierarchy).\u003Cbr>It's a pragmatic approach after witnessing many metaverse-inspired do-it-all complex technology-stacks.\n\n\n\n\u003Cbr>\u003Cbr>\n\n!!Philosophy\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.github.io/xrfragment.media/philosophy.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\nWe have plenty of wellcrafted, amazing 3D assets on the web.\u003Cbr>\nWhat's missing? Hyperlinked no-code storytelling ❤\u003Cbr>\n\u003Cbr>\nWhat else is missing? adressibility of XR experiences.\u003Cbr>\nLess boilerplate code = productive XR design ❤\u003Cbr>\n\n> \u003Cb>do ask yourself\u003C/b>: why do Code-heavy XR applications tend to break over time due to browser/OS/dependency updates?\n\n!!Solution: XR Fragments\n\nLets invite some old battle-proof friends (`src`, `href`, `class`, `queries`, URL's and protocols), and connect our 3D assets \u003Cb>directly\u003C/b>:\n\n[img[interlinked.png]]\n\nMany meaningful experiences can be achieved using solely interlinked (cached) 3d-assets. The definition of meaningful here is: the highest person-to-person create-and-share value.\u003Cbr>\nThis is possible by piggybacking the W3C media fragment-format, as well as the href, src and class concept from HTML.\u003Cbr>\nXR Fragments are fileformat-agnostic, so we can link/embed ''FBX'' to/inside ''glTF'' and so on ❤\n\n!!Earlier attempts\n\nMost attempts either fall into client-server or fileformat lock-in.\u003Cbr>\nThey fall into typical 'Metaverse' / Mozilla hubs spinoffs: lots of code, laser-focused on a specific 3D fileformat, and lots of experts building centralized server-complexity\n\n[img[centralized.png]]\n\nThe end-game of these (to be fair: interesting & amazing solutions) are: users & resources trapped in walled gardens.\u003Cbr>\nThe bug of centralized solutions is that they (just like the financial economy) must grow (their profits/audience) to survive\u003Cbr>\n\u003Cbr>\n\n!!It has been solved before\n\nHow? By enriching the things mere mortals already produce.\u003Cbr>\nHTML was enriching text which ''we've already'' been writing.\u003Cbr>\nXR Fragments are enriching 3D assets which ''we've already'' been making.\u003Cbr>\nInstead of coming up with new enormous codebases, a ''simple standard'' can reduce so much code and complexity ❤\u003Cbr>\n\n[img[xrfragment.jpg]]\n\n!!Focuspoints\n\n * ''there's a lack of compelling WebXR content''\n ** focus on where contentcreators are (not devs)\n ** piggyback on export-features of existing 3D editors (blender e.g.)\n\t\t\t** be fileformat ''agnostic'' (FBX, glTF etc ''we love you all'')\n\t\t\t** don't lock designers into a specific editor\n\t\t\t** XR Fragments should free devs from coding nontrivial things\n * ''3D content should be surfable locally too''\n\t ** Just like HTML-files can be saved/viewed on a smartphone\n * ''\"people dont want to run servers\" (partially true)''\n ** focus on browser, lowbarrier & simplicity\n ** don't introduce new servers, softwarestacks or frameworks\n * ''centralized stakeholders maximize securityrisks AND design by committee''\n ** 3D assets should be allowed to be read-only (100% HTTP GET)\n ** XR Fragments are 100% optional (to ease adoption/backwardscompatibility)\n ** XR Fragments are only concerned with public navigateable content\n * ''3D asset-formats & frameworks come and go''\n * Pragmatic solutions: ''Induction, Deduction, Abduction'' method using survey\n\n!!Out of scope (client or asset responsibility)\n\n* avatars\n* realism/performance (responsibility of asset & client)\n* realtime gaming event-propagation\n* webrtc\n* gltf (OMI) extensions and [[glXF draft-format|https://github.com/KhronosGroup/glXF]] contain interesting ideas, but are hardcoupled to glTF and require creation of specialized editors/exporters.\n* scripting / wasm e.g. (responsibility of client & designer to offer progressive enhanced XR experiences). XR fragments at a max supports interactivity thru [[roundrobin]] & [[predefined views|predefined_view]] (spec level 0), and queries (spec level 1) anything beyond would overcomplexify the (adoption of) the spec.\n\n> see the `session` XR fragment, which indicates the client where extended (sessionbased) information can be found. People who insist on scripting could hint clients where scripting-layers could be found in the session-fragment.\n","tags":"","title":"Philosophy & FAQ","modified":"20231202163327658"},
+{"created":"20230508143700790","text":"Sit back and watch this ''#convergence-not-metaverse'' appstore-agnostic-but-symbiotic philosophy below:\u003Cbr>\u003Cbr>\u003Cbr>\n\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.github.io/xrfragment.media/xrfragment.bumper2.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n!!FAQ\n\n\u003Cb>Q: Why is X not possible / so limited?\u003C/b>\u003Cbr/>\n\u003Cb>A:\u003C/b> You're probably referring to the \u003Cb>Example Model Browser\u003C/b> while XR Fragments is \u003Cb>a code-less framework-less language-less SPEC\u003C/b> for navigating and linking 3D models. This is important to realize. The spec is about parsing spatial hints in URI's from the URL-bar and metadata inside 3D models. Developers can decide to build anything on top of this paradigm which falls outside the spec.\n\n\u003Chr>\n\n\u003Cb>Q: How can XR Fragments support all 3D files ever made?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> By targeting the lowest common denominator of all 3D fileformats: objectnames, positions, rotations (and metadata called `custom properties`/`extras`)\n\n\u003Chr>\n\n\u003Cb>Q: Do my 3D files need a specific (metadata) layout/format?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> No, XR Fragments are file-agnostic and metadata is optional.\u003Cbr>\nThe objectnames inside the 3D file are used as URL references.\n\n\u003Chr>\n\n\u003Cb>Q: Do I need complex infrastructure?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> No, XR Fragments are protocol-agnostic, you can host your files on a USB-stick, wordpress webserver, ftp-directory, ipfs, blockchain etc!\n\n\u003Chr>\n\n\u003Cb>Q: How will this enable the metaverse?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> The metaverse is a fantasy sci-fi concept from a book. XR fragments deals with real people creating 3D interlinked content & storytelling.\n \n\u003Chr>\n\n\u003Cb>Q: Why not attach a programming language to XR Fragments\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> The intention is understandable, but it is out of scope. Programming languages & frameworks come and go. Hence XR Fragments is a spec for interactive metadata for 3D viewers. Hypermedia viewers based on metadata outsurvive programminglanguages in general.\u003Cbr>However, you are free to build programming language \u003Cb>to extend\u003C/b> experiences, or build a viewer or parser in your favorite language.\n\n\u003Chr>\n\u003Cb>Q: Why don't you add feature X from game Y?\u003C/b>\u003Cbr>\n\u003Cb>A:\u003C/b> To keep the spec simple, it is limited to 3 primitives and 3 fragments (`href`+`src`+`tag` and `#pos`+`#rot`+`#t`) which allows myriads of URL-controllable experiences (including the metadata already present in 3D files like object names and hierarchy).\u003Cbr>It's a pragmatic approach after witnessing many metaverse-inspired do-it-all complex technology-stacks.\n\n\n\n\u003Cbr>\u003Cbr>\n\n!!Philosophy\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.github.io/xrfragment.media/philosophy.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\nWe have plenty of wellcrafted, amazing 3D assets on the web.\u003Cbr>\nWhat's missing? Hyperlinked no-code storytelling ❤\u003Cbr>\n\u003Cbr>\nWhat else is missing? adressibility of XR experiences.\u003Cbr>\nLess boilerplate code = productive XR design ❤\u003Cbr>\n\n> \u003Cb>do ask yourself\u003C/b>: why do Code-heavy XR applications tend to break over time due to browser/OS/dependency updates?\n\n!!Solution: XR Fragments\n\nLets invite some old battle-proof friends (`src`, `href`, `class`, `queries`, URL's and protocols), and connect our 3D assets \u003Cb>directly\u003C/b>:\n\n[img[interlinked.png]]\n\nMany meaningful experiences can be achieved using solely interlinked (cached) 3d-assets. The definition of meaningful here is: the highest person-to-person create-and-share value.\u003Cbr>\nThis is possible by piggybacking the W3C media fragment-format, as well as the href, src and class concept from HTML.\u003Cbr>\nXR Fragments are fileformat-agnostic, so we can link/embed ''FBX'' to/inside ''glTF'' and so on ❤\n\n!!Earlier attempts\n\nMost attempts either fall into client-server or fileformat lock-in.\u003Cbr>\nThey fall into typical 'Metaverse' / Mozilla hubs spinoffs: lots of code, laser-focused on a specific 3D fileformat, and lots of experts building centralized server-complexity\n\n[img[centralized.png]]\n\nThe end-game of these (to be fair: interesting & amazing solutions) are: users & resources trapped in walled gardens.\u003Cbr>\nThe bug of centralized solutions is that they (just like the financial economy) must grow (their profits/audience) to survive\u003Cbr>\n\u003Cbr>\n\n!!It has been solved before\n\nHow? By enriching the things mere mortals already produce.\u003Cbr>\nHTML was enriching text which ''we've already'' been writing.\u003Cbr>\nXR Fragments are enriching 3D assets which ''we've already'' been making.\u003Cbr>\nInstead of coming up with new enormous codebases, a ''simple standard'' can reduce so much code and complexity ❤\u003Cbr>\n\n[img[xrfragment.jpg]]\n\n!!Focuspoints\n\n * ''there's a lack of compelling WebXR content''\n ** focus on where contentcreators are (not devs)\n ** piggyback on export-features of existing 3D editors (blender e.g.)\n\t\t\t** be fileformat ''agnostic'' (FBX, glTF etc ''we love you all'')\n\t\t\t** don't lock designers into a specific editor\n\t\t\t** XR Fragments should free devs from coding nontrivial things\n * ''3D content should be surfable locally too''\n\t ** Just like HTML-files can be saved/viewed on a smartphone\n * ''\"people dont want to run servers\" (partially true)''\n ** focus on browser, lowbarrier & simplicity\n ** don't introduce new servers, softwarestacks or frameworks\n * ''centralized stakeholders maximize securityrisks AND design by committee''\n ** 3D assets should be allowed to be read-only (100% HTTP GET)\n ** XR Fragments are 100% optional (to ease adoption/backwardscompatibility)\n ** XR Fragments are only concerned with public navigateable content\n * ''3D asset-formats & frameworks come and go''\n * Pragmatic solutions: ''Induction, Deduction, Abduction'' method using survey\n\n!!Out of scope (client or asset responsibility)\n\n* avatars\n* realism/performance (responsibility of asset & client)\n* realtime gaming event-propagation\n* webrtc\n* gltf (OMI) extensions and [[glXF draft-format|https://github.com/KhronosGroup/glXF]] contain interesting ideas, but are hardcoupled to glTF and require creation of specialized editors/exporters.\n* scripting / wasm e.g. (responsibility of client & designer to offer progressive enhanced XR experiences). XR fragments at a max supports interactivity thru [[roundrobin]] & [[predefined views|predefined_view]] (spec level 0), and queries (spec level 1) anything beyond would overcomplexify the (adoption of) the spec.\n\n> see the `session` XR fragment, which indicates the client where extended (sessionbased) information can be found. People who insist on scripting could hint clients where scripting-layers could be found in the session-fragment.\n","tags":"","title":"Philosophy & FAQ","modified":"20240426125114301"},
{"title":"popper.png","text":"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","type":"image/png"},
{"created":"20240208123050293","text":"> An Easy ''nocode'' way to add metadata is [[by adding custom properties in blender e.g.|https://docs.blender.org/manual/en/2.79/data_system/custom_properties.html]]. Basically:\n\u003Cbr>\u003Cbr>\n* create a plane object with a name (`scene1` e.g.)\n* create a plane object elsewhere with a name (`scene2` e.g.)\n* add metadata `#`:`pos=scene1` (to position the user during scene load)\n* now create a button object, and add metadata `href`:`#pos=scene2` to teleport the user (after clicking)\n\n> NOTE: teleportations focus on the **origin** of an object, so you might need to adjust them in case of a box e.g. (the origin is usually in the middle, which might not be what you want in case you want to teleport on top of the box).\n","tags":"[[📡 by feature (heuristics)]]","title":"positioning the user/camera","modified":"20240208123650964","type":"text/markdown"},
{"created":"20230804100618629","text":"this document was [moved here](#⏯%EF%B8%8F%20XR%20Macros)","tags":"","title":"Potential future additions","modified":"20230830155937553","type":"text/markdown"},