diff --git a/README.md b/README.md index b277ff5..56fd6e5 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,4 @@ You probably want to run ruby from a version manager like `chruby`, see [here](h [Installation](https://jekyllrb.com/docs/installation/macos/) `bundle install` Then -Use `bundle exec jekyll serve --draft --future` to do local development of this site \ No newline at end of file +Use `./run.sh` to do local development of this site \ No newline at end of file diff --git a/_includes/default_head_tags.html b/_includes/default_head_tags.html new file mode 100644 index 0000000..a1f3013 --- /dev/null +++ b/_includes/default_head_tags.html @@ -0,0 +1,46 @@ + + + + + +Tom Hodson - {{ page.title }} + + + + + + + + + + + + + +{% if page.image %} + + + +{% if page.alt %} + +{% endif %} +{% endif %} + + + + + + + + + +{% feed_meta %} \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html index 9d78054..c9cfd5d 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,54 +1,7 @@ - - - - - Tom Hodson - {{ page.title }} - - - - - - - - - - - - - - {% if page.image %} - - - - {% if page.alt %} - - {% endif %} - {% endif %} - - - - - - - - - - - - - {% feed_meta %} + {% include default_head_tags.html%} {% include header.html %} diff --git a/_layouts/post_klipse.html b/_layouts/post_klipse.html new file mode 100644 index 0000000..3fe0aea --- /dev/null +++ b/_layouts/post_klipse.html @@ -0,0 +1,29 @@ + + + + {% include default_head_tags.html%} + + + + + + + + + + {% include header.html %} +
+

{{ page.title }}

+ + {{ content }} +
+ + + \ No newline at end of file diff --git a/_posts/2023-07-20-writing_grammars_is_fun.md b/_posts/2023-07-20-writing_grammars_is_fun.md index d6b066e..bbaf3df 100644 --- a/_posts/2023-07-20-writing_grammars_is_fun.md +++ b/_posts/2023-07-20-writing_grammars_is_fun.md @@ -3,7 +3,7 @@ title: Parsing is fun! excerpt: I came across something I wanted to quickly parse that was too niche to find a ready made parser for. Join me on a quick whip tour of writing a grammar for a PEG parser. layout: post image: /assets/blog/parsing/snippet.png -alt: +alt: A purely illustrative screenshot of a snippet of python code with a little bit of a PEG grammar definition visible. --- Usually when I want to parse something so that I can manipulate it in code, be it JSON, YAML, HTML, XML, whatever, there is a nice existing library to do that for me. The solution is a simple `import json` away. However if the language is a bit more niche, there maybe won't be a good parser for it available or that parser might be missing features. diff --git a/_posts/2023-07-25-interactive-code-snippets.md b/_posts/2023-07-25-interactive-code-snippets.md new file mode 100644 index 0000000..bd27edb --- /dev/null +++ b/_posts/2023-07-25-interactive-code-snippets.md @@ -0,0 +1,34 @@ +--- +title: A little REPL in every blog post +layout: post_klipse +image: +alt: +--- + +On someone else's [excellent personal](http://lambdafunk.com/) site I saw [Klipse](https://github.com/viebel/klipse), a little js library that lets you modify and execute code snippets in blogs. How cute! + +```klipse-python +print("Hello, world!") +``` + +There's even a build of python (with the magic of WASM) that includes numpy and pandas! + +```klipse-python +import numpy as np +import pandas as pd + +np.arange(12).reshape(3,-1) +``` + +The cells (of a single language) all use the same interpreter so you can share variables across. However this doesn't seem to work when the page first loads. + +```klipse-python +import numpy as np +import pandas as pd + +a = np.arange(12).reshape(3,-1) +df = pd.DataFrame({"zero" : a[0], "one" : a[2], "twp" : a[2]}) +df +``` + +Hopefully in future this could also hook into the nice html output that many libraries like pandas can produce! \ No newline at end of file diff --git a/assets/klipse/codemirror.css b/assets/klipse/codemirror.css new file mode 100644 index 0000000..802d58f --- /dev/null +++ b/assets/klipse/codemirror.css @@ -0,0 +1,427 @@ +@font-face { + font-family: 'FiraCode'; + src: url('FiraCode/woff2/FiraCode-Regular.woff2') format('webfont.woff2') , /* Super Modern Browsers */ + url('FiraCode/woff/FiraCode-Regular.woff') format('woff'), /* Pretty Modern Browsers */ + url('FiraCode/ttf/FiraCode-Regular.ttf') format('truetype') /* Safari, Android, iOS */; +} + +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: 'FiraCode', monospace; + height: 100%; + color: black; + border: solid 1px #90B4FE; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + white-space: nowrap; +} + +.CodeMirror-guttermarker { color: black; } +.CodeMirror-guttermarker-subtle { color: #999; } + +/* CURSOR */ + +.CodeMirror-cursor { + border-left: 1px solid black; + border-right: none; + width: 0; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.cm-fat-cursor .CodeMirror-cursor { + width: auto; + border: 0; + background: #7e7; +} +.cm-fat-cursor div.CodeMirror-cursors { + z-index: 1; +} + +.cm-animate-fat-cursor { + width: auto; + border: 0; + -webkit-animation: blink 1.06s steps(1) infinite; + -moz-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; + background-color: #7e7; +} +@-moz-keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} +@-webkit-keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} +@keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} + +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror-overwrite .CodeMirror-cursor {} + +.cm-tab { display: inline-block; text-decoration: inherit; } + +.CodeMirror-ruler { + border-left: 1px solid #ccc; + position: absolute; +} + +/* DEFAULT THEME */ + +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-link {text-decoration: underline;} +.cm-strikethrough {text-decoration: line-through;} + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable, +.cm-s-default .cm-punctuation, +.cm-s-default .cm-property, +.cm-s-default .cm-operator {} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3 {color: #085;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-s-default .cm-error {color: #f00;} +.cm-invalidchar {color: #f00;} + +/* neo theme for codemirror */ + +/* Color scheme */ + +.cm-s-neo.CodeMirror { + background-color:#ffffff; + color:#2e383c; + line-height:1.4375; +} +.cm-s-neo .cm-comment { color:#75787b; } +.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; } +.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; } +.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; } +.cm-s-neo .cm-string { color:#b35e14; } +.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; } + + +/* Editor styling */ + +.cm-s-neo pre { + padding:0; +} + +.cm-s-neo .CodeMirror-gutters { + border:none; + border-right:10px solid transparent; + background-color:transparent; +} + +.cm-s-neo .CodeMirror-linenumber { + padding:0; + color:#e0e2e5; +} + +.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } +.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } + +.cm-s-neo .CodeMirror-cursor { + width: auto; + border: 0; + background: rgba(155,157,162,0.37); + z-index: 1; +} + + + +.CodeMirror-composing { border-bottom: 2px solid; } + +/* Default styles for common addons */ + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} +.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } +.CodeMirror-activeline-background {background: #e8f2ff;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + position: relative; + overflow: hidden; + background: white; +} + +.CodeMirror-scroll { + overflow: scroll !important; /* Things will break if this is overridden */ + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actual scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + display: inline-block; + margin-bottom: -30px; + /* Hack to make IE7 behave */ + *zoom:1; + *display:inline; +} +.CodeMirror-gutter-wrapper { + position: absolute; + z-index: 4; + background: none !important; + border: none !important; +} +.CodeMirror-gutter-background { + position: absolute; + top: 0; bottom: 0; + z-index: 4; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} +.CodeMirror-gutter-wrapper { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.CodeMirror-lines { + cursor: text; + min-height: 1px; /* prevents collapsing before first draw */ +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; + -webkit-tap-highlight-color: transparent; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} + +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto; +} + +.CodeMirror-widget {} + +.CodeMirror-code { + outline: none; +} + +/* Force content-box sizing for the elements where we expect it */ +.CodeMirror-scroll, +.CodeMirror-sizer, +.CodeMirror-gutter, +.CodeMirror-gutters, +.CodeMirror-linenumber { + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.CodeMirror-cursor { position: absolute; } +.CodeMirror-measure pre { position: static; } + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 3; +} +div.CodeMirror-dragcursors { + visibility: visible; +} + +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } +.CodeMirror-crosshair { cursor: crosshair; } +.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } +.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* IE7 hack to prevent it from returning funny offsetTops on the spans */ +.CodeMirror span { *vertical-align: text-bottom; } + +/* Used to force a border model for a node */ +.cm-force-border { padding-right: .1px; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror div.CodeMirror-cursors { + visibility: hidden; + } +} + +/* See issue #2901 */ +.cm-tab-wrap-hack:after { content: ''; } + +/* Help users use markselection to safely style text background */ +span.CodeMirror-selectedtext { background: none; } + +/* rules for autocompletion add on */ +.CodeMirror-hints { + position: absolute; + z-index: 10; + overflow: hidden; + list-style: none; + + margin: 0; + padding: 2px; + + -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); + -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); + box-shadow: 2px 3px 5px rgba(0,0,0,.2); + border-radius: 3px; + border: 1px solid silver; + + background: white; + font-size: 90%; + font-family: monospace; + + max-height: 20em; + overflow-y: auto; +} + +.CodeMirror-hint { + margin: 0; + padding: 0 4px; + border-radius: 2px; + white-space: pre; + color: black; + cursor: pointer; +} + +li.CodeMirror-hint-active { + background: #08f; + color: white; +} +/* rules for autocompletion add on */ diff --git a/assets/klipse/klipse_plugin.min.js b/assets/klipse/klipse_plugin.min.js new file mode 100644 index 0000000..29911dd --- /dev/null +++ b/assets/klipse/klipse_plugin.min.js @@ -0,0 +1,2155 @@ +// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later + +if(typeof Math.imul == "undefined" || (Math.imul(0xffffffff,5) == 0)) { + Math.imul = function (a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0); + } +} + +(function(q){if("object"==typeof exports&&"object"==typeof module)module.exports=q();else{if("function"==typeof define&&define.amd)return define([],q);(this||window).CodeMirror=q()}})(function(){function q(a,b){if(!(this instanceof q))return new q(a,b);this.options=b=b?X(b):{};X(wf,b,!1);wc(b);var c=b.value;"string"==typeof c&&(c=new Q(c,b.mode,null,b.lineSeparator));this.doc=c;var d=new q.inputStyles[b.inputStyle](this),d=this.display=new xf(a,c,d);d.wrapper.CodeMirror=this;zd(this);Ad(this);b.lineWrapping&& +(this.display.wrapper.className+=" CodeMirror-wrap");b.autofocus&&!ab&&d.input.focus();Bd(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new ua,keySeq:null,specialChars:null};var e=this;A&&11>B&&setTimeout(function(){e.display.input.reset(!0)},20);yf(this);Cd||(zf(),Cd=!0);Ja(this);this.curOp.forceUpdate=!0;Dd(this,c);b.autofocus&&!ab||e.hasFocus()?setTimeout(xc(yc, +this),20):bb(this);for(var f in Ka)if(Ka.hasOwnProperty(f))Ka[f](this,b[f],Ed);Fd(this);b.finishInit&&b.finishInit(this);for(c=0;cB&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=0);K||oa&&ab||(this.scroller.draggable=!0);a&&(a.appendChild?a.appendChild(this.wrapper):a(this.wrapper));this.reportedViewFrom=this.reportedViewTo=this.viewFrom=this.viewTo=b.first;this.view=[];this.externalMeasured=this.renderedView=null;this.lastWrapHeight=this.lastWrapWidth=this.viewOffset=0;this.updateLineNumbers=null;this.nativeBarWidth=this.barHeight=this.barWidth=0;this.scrollbarsClipped=!1;this.lineNumWidth=this.lineNumInnerWidth= +this.lineNumChars=null;this.alignWidgets=!1;this.maxLine=this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null;this.maxLineLength=0;this.maxLineChanged=!1;this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null;this.shift=!1;this.activeTouch=this.selForContextMenu=null;c.init(this)}function Ac(a){a.doc.mode=q.getMode(a.options,a.doc.modeOption);cb(a)}function cb(a){a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null)});a.doc.frontier=a.doc.first; +db(a,100);a.state.modeGen++;a.curOp&&M(a)}function Hd(a){var b=va(a.display),c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/eb(a.display)-3);return function(e){if(wa(a.doc,e))return 0;var f=0;if(e.widgets)for(var g=0;gb.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function wc(a){var b=D(a.gutters,"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters= +a.gutters.concat(["CodeMirror-linenumbers"]):-1B&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function Hc(){}function Bd(a){a.display.scrollbars&& +(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&ib(a.display.wrapper,a.display.scrollbars.addClass));a.display.scrollbars=new q.scrollbarModel[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller);v(b,"mousedown",function(){a.state.focused&&setTimeout(function(){a.display.input.focus()},0)});b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?Ma(a,b):jb(a,b)},a);a.display.scrollbars.addClass&&kb(a.display.wrapper,a.display.scrollbars.addClass)} +function Na(a,b){b||(b=hb(a));var c=a.display.barWidth,d=a.display.barHeight;Id(a,b);for(var e=0;4>e&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=a.display.barWidth&&a.options.lineWrapping&&Jb(a),Id(a,hb(a)),c=a.display.barWidth,d=a.display.barHeight}function Id(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px";c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px";c.heightForcer.style.borderBottom=d.bottom+"px solid transparent";d.right&& +d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=d.bottom+"px",c.scrollbarFiller.style.width=d.right+"px"):c.scrollbarFiller.style.display="";d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function Ic(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop,d=Math.floor(d-a.lineSpace.offsetTop), +e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight,d=ya(b,d),e=ya(b,e);if(c&&c.ensure){var f=c.ensure.from.line;c=c.ensure.to.line;f=e&&(d=ya(b,ea(t(b,c))-a.wrapper.clientHeight),e=c)}return{from:d,to:Math.max(e,d+1)}}function Cc(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=Jc(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g=c.viewFrom&&b.visible.to<=c.viewTo&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo)&&c.renderedView==c.view&&0==Jd(a))return!1;Fd(a)&&(qa(a),b.dims=Lc(a));var e=d.first+d.size,f=Math.max(b.visible.from-a.options.viewportMargin, +d.first),g=Math.min(e,b.visible.to+a.options.viewportMargin);c.viewFromf-c.viewFrom&&(f=Math.max(d.first,c.viewFrom));c.viewTo>g&&20>c.viewTo-g&&(g=Math.min(e,c.viewTo));ra&&(f=Nc(a.doc,f),g=Kd(a.doc,g));d=f!=c.viewFrom||g!=c.viewTo||c.lastWrapHeight!=b.wrapperHeight||c.lastWrapWidth!=b.wrapperWidth;e=a.display;0==e.view.length||f>=e.viewTo||g<=e.viewFrom?(e.view=Lb(a,f,g),e.viewFrom=f):(e.viewFrom>f?e.view=Lb(a,f,e.viewFrom).concat(e.view):e.viewFromg&&(e.view=e.view.slice(0,Aa(a,g))));e.viewTo=g;c.viewOffset=ea(t(a.doc,c.viewFrom));a.display.mover.style.top=c.viewOffset+"px";g=Jd(a);if(!d&&0==g&&!b.force&&c.renderedView==c.view&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo))return!1;f=fa();4=a.display.viewFrom&&b.visible.to<=a.display.viewTo)break;if(!Mc(a,b))break;Jb(a);d=hb(a); +lb(a);Na(a,d);Pc(a,d)}b.signal(a,"update",a);if(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)b.signal(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo}function Qc(a,b){var c=new Kb(a,b);if(Mc(a,c)){Jb(a);Ld(a,c);var d=hb(a);lb(a);Na(a,d);Pc(a,d);c.finish()}}function Pc(a,b){a.display.sizer.style.minHeight=b.docHeight+"px";a.display.heightForcer.style.top=b.docHeight+ +"px";a.display.gutters.style.height=b.docHeight+a.display.barHeight+da(a)+"px"}function Jb(a){a=a.display;for(var b=a.lineDiv.offsetTop,c=0;cB){var f=d.node.offsetTop+d.node.offsetHeight;e=f-b;b=f}else e=d.node.getBoundingClientRect(),e=e.bottom-e.top;f=d.line.height-e;2>e&&(e=va(a));if(.001f)if(ca(d.line,e),Md(d.line),d.rest)for(e=0;eB&&(a.node.style.zIndex=2));return a.node}function Od(a,b){var c=a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):Rd(a,b)}function Rc(a){var b=a.bgClass?a.bgClass+" "+(a.line.bgClass||""):a.line.bgClass; +b&&(b+=" CodeMirror-linebackground");if(a.background)b?a.background.className=b:(a.background.parentNode.removeChild(a.background),a.background=null);else if(b){var c=mb(a);a.background=c.insertBefore(s("div",null,b),c.firstChild)}a.line.wrapClass?mb(a).className=a.line.wrapClass:a.node!=a.text&&(a.node.className="");a.text.className=(a.textClass?a.textClass+" "+(a.line.textClass||""):a.line.textClass)||""}function Pd(a,b,c,d){b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null);b.gutterBackground&& +(b.node.removeChild(b.gutterBackground),b.gutterBackground=null);if(b.line.gutterClass){var e=mb(b);b.gutterBackground=s("div",null,"CodeMirror-gutter-background "+b.line.gutterClass,"left: "+(a.options.fixedGutter?d.fixedPos:-d.gutterTotalWidth)+"px; width: "+d.gutterTotalWidth+"px");e.insertBefore(b.gutterBackground,b.text)}var f=b.line.gutterMarkers;if(a.options.lineNumbers||f){var e=mb(b),g=b.gutter=s("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter?d.fixedPos:-d.gutterTotalWidth)+ +"px");a.display.input.setUneditable(g);e.insertBefore(g,b.text);b.line.gutterClass&&(g.className+=" "+b.line.gutterClass);!a.options.lineNumbers||f&&f["CodeMirror-linenumbers"]||(b.lineNumber=g.appendChild(s("div",Kc(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+d.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px")));if(f)for(b=0;bw(a,b)?b:a}function Nb(a,b){return 0>w(a,b)?a:b}function Td(a){a.state.focused||(a.display.input.focus(),yc(a))}function Ob(a,b,c,d,e){var f=a.doc;a.display.shift=!1;d||(d=f.sel);var g=a.state.pasteIncoming||"paste"==e,h=f.splitLines(b),k=null;if(g&&1e?k.map:l[e],g=0;ge?a.line:a.rest[e]);e=f[g]+d;if(0>d||h!=b)e=f[g+(d?1:0)];return r(c,e)}}}var e=a.text.firstChild,f=!1;if(!b||!Wc(e, +b))return Qa(r(F(a.line),0),!0);if(b==e&&(f=!0,b=e.childNodes[c],c=0,!b))return c=a.rest?z(a.rest):a.line,Qa(r(F(c),c.text.length),f);var g=3==b.nodeType?b:null,h=b;g||1!=b.childNodes.length||3!=b.firstChild.nodeType||(g=b.firstChild,c&&(c=g.nodeValue.length));for(;h.parentNode!=e;)h=h.parentNode;var k=a.measure,l=k.maps;if(b=d(g,h,c))return Qa(b,f);e=h.nextSibling;for(g=g?g.nodeValue.length-c:0;e;e=e.nextSibling){if(b=d(e,e.firstChild,0))return Qa(r(b.line,b.ch-g),f);g+=e.textContent.length}h=h.previousSibling; +for(g=c;h;h=h.previousSibling){if(b=d(h,h.firstChild,-1))return Qa(r(b.line,b.ch+g),f);g+=h.textContent.length}}function Df(a,b,c,d,e){function f(a){return function(b){return b.id==a}}function g(b){if(1==b.nodeType){var c=b.getAttribute("cm-text");if(null!=c)""==c&&(c=b.textContent.replace(/\u200b/g,"")),h+=c;else{var c=b.getAttribute("cm-marker"),n;if(c)b=a.findMarks(r(d,0),r(e+1,0),f(+c)),b.length&&(n=b[0].find())&&(h+=Ba(a.doc,n.from,n.to).join(l));else if("false"!=b.getAttribute("contenteditable")){for(n= +0;nc)return r(c,t(a,c).text.length);var c=t(a,b.line).text.length,d=b.ch,c=null==d||d>c?r(b.line,c):0>d?r(b.line,0):b;return c}function pb(a,b){return b>=a.first&&bw(c,a),b!=0>w(d,a)?(a=c,c=d):b!=0>w(c,d)&&(c=d)),new y(a,c)):new y(d||c,c)}function Sb(a,b,c,d){C(a,new ka([qb(a,a.sel.primary(),b,c)],0),d)}function ce(a,b,c){for(var d=[],e=0;ew(b.primary().head,a.sel.primary().head)? +-1:1);fe(a,ge(a,b,d,!0));c&&!1===c.scroll||!a.cm||Pa(a.cm)}function fe(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,he(a.cm)),R(a,"cursorActivity",a))}function ie(a){fe(a,ge(a,a.sel,null,!1),ha)}function ge(a,b,c,d){for(var e,f=0;f=b.ch:h.to>b.ch))){if(e&&(J(k,"beforeCursorEnter"),k.explicitlyCleared))if(f.markedSpans){--g;continue}else break;if(k.atomic){if(c){var g=k.find(0>d?1:-1),l;if(0>d?k.inclusiveRight:k.inclusiveLeft)g=je(a,g,-d,g&&g.line==b.line?f:null);if(g&& +g.line==b.line&&(l=w(g,c))&&(0>d?0>l:0d?-1:1);if(0>d?k.inclusiveLeft:k.inclusiveRight)c=je(a,c,d,c.line==b.line?f:null);return c?Ra(a,c,b,d,e):null}}}return b}function Yc(a,b,c,d,e){d=d||1;b=Ra(a,b,c,d,e)||!e&&Ra(a,b,c,d,!0)||Ra(a,b,c,-d,e)||!e&&Ra(a,b,c,-d,!0);return b?b:(a.cantEdit=!0,r(a.first,0))}function je(a,b,c,d){return 0>c&&0==b.ch?b.line>a.first?x(a,r(b.line-1)):null:0=a.display.viewTo||h.to().lineb&&(b=0);b=Math.round(b); +d=Math.round(d);h.appendChild(s("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?m-a:c)+"px; height: "+(d-b)+"px"))}function e(b,c,e){var f=t(g,b),h=f.text.length,k,p;Gf(Z(f),c||0,null==e?h:e,function(g,q,s){var t=Vb(a,r(b,g),"div",f,"left"),v,u;g==q?(v=t,s=u=t.left):(v=Vb(a,r(b,q-1),"div",f,"right"),"rtl"==s&&(s=t,t=v,v=s),s=t.left,u=v.right);null==c&&0==g&&(s=l);3p.bottom||v.bottom==p.bottom&&v.right>p.right)p=v;sa.options.cursorBlinkRate&&(b.cursorDiv.style.visibility= +"hidden")}}function db(a,b){a.doc.mode.startState&&a.doc.frontier=a.display.viewTo)){var c=+new Date+a.options.workTime,d=sa(b.mode,rb(a,b.frontier)),e=[];b.iter(b.frontier,Math.min(b.first+b.size,a.display.viewTo+500),function(f){if(b.frontier>=a.display.viewFrom){var g=f.styles,h=f.text.length>a.options.maxHighlightLength,k=ne(a,f,h?sa(b.mode,d):d,!0);f.styles= +k.styles;var l=f.styleClasses;(k=k.classes)?f.styleClasses=k:l&&(f.styleClasses=null);l=!g||g.length!=f.styles.length||l!=k&&(!l||!k||l.bgClass!=k.bgClass||l.textClass!=k.textClass);for(k=0;!l&&kc)return db(a,a.options.workDelay),!0});e.length&&T(a,function(){for(var b=0;bg;--b){if(b<=f.first)return f.first;var h=t(f,b-1);if(h.stateAfter&&(!c||b<=f.frontier))return b;h=aa(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function rb(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return!0;var f=If(a,b,c),g=f>d.first&&t(d,f-1).stateAfter,g=g?sa(d.mode,g):Jf(d.mode);d.iter(f,b,function(c){$c(a,c.text,g);c.stateAfter=f==b-1||0==f%5||f>=e.viewFrom&&fc)return{map:a.measure.maps[d],cache:a.measure.caches[d],before:!0}}function Vc(a,b){if(b>=a.display.viewFrom&&b=c.lineN&&bE;E++){for(;h&&sb(b.line.text.charAt(g.coverStart+h));)--h;for(;g.coverStart+kB&&0==h&&k==g.coverEnd-g.coverStart)n=d.parentNode.getBoundingClientRect();else{n=Sa(d,h,k).getClientRects();k=pe;if("left"==m)for(l=0;lB&&((E=!window.screen||null==screen.logicalXDPI||screen.logicalXDPI== +screen.deviceXDPI)||(null!=ad?E=ad:(m=U(a.display.measure,s("span","x")),E=m.getBoundingClientRect(),m=Sa(m,0,1).getBoundingClientRect(),E=ad=1B)||h||n&&(n.left||n.right)||(n=(n=d.parentNode.getClientRects()[0])? +{left:n.left,right:n.left+eb(a.display),top:n.top,bottom:n.bottom}:pe);d=n.top-b.rect.top;h=n.bottom-b.rect.top;m=(d+h)/2;g=b.view.measure.heights;for(E=0;Eb)f=l-k,e=f-1,b>=l&&(g="right");if(null!=e){d=a[h+2];k==l&&c==(d.insertLeft?"left":"right")&&(g=c);if("left"==c&&0==e)for(;h&&a[h-2]==a[h-3]&&a[h-1].insertLeft;)d=a[(h-=3)+2],g="left";if("right"==c&&e==l-k)for(;hc.from?g(a-1):g(a,d)}d=d||t(a.doc,b.line);e||(e=Wb(a,d));var k=Z(d);b=b.ch;if(!k)return g(b);var l=Qb(k,b),l=h(b,l);null!=ub&&(l.other=h(b,ub));return l}function te(a, +b){var c=0;b=x(a.doc,b);a.options.lineWrapping||(c=eb(a.display)*b.ch);var d=t(a.doc,b.line),e=ea(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function Yb(a,b,c,d){a=r(a,b);a.xRel=d;c&&(a.outside=!0);return a}function ed(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return Yb(d.first,0,!0,-1);var e=ya(d,c),f=d.first+d.size-1;if(e>f)return Yb(d.first+d.size-1,t(d,f).text.length,!0,1);0>b&&(b=0);for(d=t(d,e);;)if(e=Kf(a,d,e,b,c),f=(d=xa(d,!1))&&d.find(0,!0),d&& +(e.ch>f.from.ch||e.ch==f.from.ch&&0d.bottom)return d.left-k;if(gs)return Yb(c,n,t,1);for(;;){if(e?n==p||n==fd(b,p,1):1>=n-p){m=d=e.top&&Math.abs(d-e.right)p?-1:1d){n=u;s=w;if(t=h)s+=1E3;m=v}else p=u,E=w,q=h,m-=v}}function va(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==Ca){Ca=s("pre");for(var b=0;49>b;++b)Ca.appendChild(document.createTextNode("x")),Ca.appendChild(s("br")); +Ca.appendChild(document.createTextNode("x"))}U(a.measure,Ca);b=Ca.offsetHeight/50;3=d.viewTo)||d.maxLineChanged&&c.options.lineWrapping;e.update=e.mustUpdate&&new Kb(c,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}for(b=0;bl;l++){var m=!1,p=la(c,h),n=g&&g!=h?la(c,g):p,n=ac(c,Math.min(p.left,n.left),Math.min(p.top,n.top)-k,Math.max(p.left,n.left),Math.max(p.bottom,n.bottom)+k),q=c.doc.scrollTop,r=c.doc.scrollLeft;null!=n.scrollTop&&(jb(c,n.scrollTop),1g.top+l.top?h=!0:g.bottom+l.top>(window.innerHeight||document.documentElement.clientHeight)&&(h=!1),null==h||Mf||(g=s("div","​",null,"position: absolute; top: "+(g.top-k.viewOffset-c.display.lineSpace.offsetTop)+"px; height: "+(g.bottom-g.top+da(c)+k.barHeight)+"px; left: "+g.left+ +"px; width: 2px;"),c.display.lineSpace.appendChild(g),g.scrollIntoView(h),c.display.lineSpace.removeChild(g))))}h=e.maybeHiddenMarkers;g=e.maybeUnhiddenMarkers;if(h)for(k=0;kb)&&(e.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=e.viewTo)ra&&Nc(a.doc,b)e.viewFrom? +qa(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)qa(a);else if(b<=e.viewFrom){var f=bc(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):qa(a)}else if(c>=e.viewTo)(f=bc(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=f.lineN):qa(a);else{var f=bc(a,b,b,-1),g=bc(a,c,c+d,1);f&&g?(e.view=e.view.slice(0,f.index).concat(Lb(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):qa(a)}if(a=e.externalMeasured)c=e.lineN&&b=d.viewTo||(a=d.view[Aa(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==D(a,c)&&a.push(c)))}function qa(a){a.display.viewFrom=a.display.viewTo=a.doc.first;a.display.view=[];a.display.viewOffset=0}function Aa(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;db)return d}function bc(a,b,c,d){var e=Aa(a,b),f=a.display.view;if(!ra||c==a.doc.first+a.doc.size)return{index:e,lineN:c};for(var g=0,h=a.display.viewFrom;gd?0:f.length-1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function Jd(a){a=a.display.view;for(var b=0,c=0;cB?v(d.scroller,"dblclick",G(a,function(b){if(!H(a,b)){var c=Da(a,b);!c||gd(a,b,"gutterClick",!0)||na(a.display,b)||(O(b),b=a.findWordAt(c),Sb(a.doc,b.anchor,b.head))}})):v(d.scroller,"dblclick",function(b){H(a,b)||O(b)});hd||v(d.scroller,"contextmenu",function(b){ue(a, +b)});var e,f={end:0};v(d.scroller,"touchstart",function(b){var c;if(c=!H(a,b))1!=b.touches.length?c=!1:(c=b.touches[0],c=1>=c.radiusX&&1>=c.radiusY),c=!c;c&&(clearTimeout(e),c=+new Date,d.activeTouch={start:c,moved:!1,prev:300>=c-f.end?f:null},1==b.touches.length&&(d.activeTouch.left=b.touches[0].pageX,d.activeTouch.top=b.touches[0].pageY))});v(d.scroller,"touchmove",function(){d.activeTouch&&(d.activeTouch.moved=!0)});v(d.scroller,"touchend",function(e){var f=d.activeTouch;if(f&&!na(d,e)&&null!= +f.left&&!f.moved&&300>new Date-f.start){var g=a.coordsChar(d.activeTouch,"page"),f=!f.prev||c(f,f.prev)?new y(g,g):!f.prev.prev||c(f,f.prev.prev)?a.findWordAt(g):new y(r(g.line,0),x(a.doc,r(g.line+1,0)));a.setSelection(f.anchor,f.head);a.focus();O(e)}b()});v(d.scroller,"touchcancel",b);v(d.scroller,"scroll",function(){d.scroller.clientHeight&&(jb(a,d.scroller.scrollTop),Ma(a,d.scroller.scrollLeft,!0),J(a,"scroll",a))});v(d.scroller,"mousewheel",function(b){ve(a,b)});v(d.scroller,"DOMMouseScroll", +function(b){ve(a,b)});v(d.wrapper,"scroll",function(){d.wrapper.scrollTop=d.wrapper.scrollLeft=0});d.dragFunctions={enter:function(b){H(a,b)||cc(b)},over:function(b){if(!H(a,b)){var c=Da(a,b);if(c){var d=document.createDocumentFragment();le(a,c,d);a.display.dragCursor||(a.display.dragCursor=s("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),a.display.lineSpace.insertBefore(a.display.dragCursor,a.display.cursorDiv));U(a.display.dragCursor,d)}cc(b)}},start:function(b){if(A&&(!a.state.draggingText|| +100>+new Date-we))cc(b);else if(!H(a,b)&&!na(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.effectAllowed="copyMove",b.dataTransfer.setDragImage&&!xe)){var c=s("img",null,null,"position: fixed; left: 0; top: 0;");c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d";ba&&(c.width=c.height=1,a.display.wrapper.appendChild(c),c._top=c.offsetTop);b.dataTransfer.setDragImage(c,0,0);ba&&c.parentNode.removeChild(c)}},drop:G(a,Of),leave:function(b){H(a, +b)||ye(a)}};var g=d.input.getField();v(g,"keyup",function(b){ze.call(a,b)});v(g,"keydown",G(a,Ae));v(g,"keypress",G(a,Be));v(g,"focus",function(b){yc(a,b)});v(g,"blur",function(b){bb(a,b)})}function Pf(a){var b=a.display;if(b.lastWrapHeight!=b.wrapper.clientHeight||b.lastWrapWidth!=b.wrapper.clientWidth)b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null,b.scrollbarsClipped=!1,a.setSize()}function na(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||1==c.nodeType&&"true"== +c.getAttribute("cm-ignore-events")||c.parentNode==a.sizer&&c!=a.mover)return!0}function Da(a,b,c,d){var e=a.display;if(!c&&"true"==(b.target||b.srcElement).getAttribute("cm-not-content"))return null;var f,g;c=e.lineSpace.getBoundingClientRect();try{f=b.clientX-c.left,g=b.clientY-c.top}catch(h){return null}b=ed(a,f,g);var k;d&&1==b.xRel&&(k=t(a.doc,b.line).text).length==b.ch&&(d=aa(k,k.length,a.options.tabSize)-k.length,b=r(b.line,Math.max(0,Math.round((f-me(a.display).left)/eb(a.display))-d)));return b} +function Nf(a){var b=this.display;if(!(H(this,a)||b.activeTouch&&b.input.supportsTouch()))if(b.shift=a.shiftKey,na(b,a))K||(b.scroller.draggable=!1,setTimeout(function(){b.scroller.draggable=!0},100));else if(!gd(this,a,"gutterClick",!0)){var c=Da(this,a);window.focus();switch(Ce(a)){case 1:this.state.selectingText?this.state.selectingText(a):c?Qf(this,a,c):(a.target||a.srcElement)==b.scroller&&O(a);break;case 2:K&&(this.state.lastMiddleDown=+new Date);c&&Sb(this.doc,c);setTimeout(function(){b.input.focus()}, +20);O(a);break;case 3:hd?ue(this,a):Rf(this)}}}function Qf(a,b,c){A?setTimeout(xc(Td,a),0):a.curOp.focus=fa();var d=+new Date,e;dc&&dc.time>d-400&&0==w(dc.pos,c)?e="triple":ec&&ec.time>d-400&&0==w(ec.pos,c)?(e="double",dc={time:d,pos:c}):(e="single",ec={time:d,pos:c});var d=a.doc.sel,f=Y?b.metaKey:b.ctrlKey,g;a.options.dragDrop&&Sf&&!a.isReadOnly()&&"single"==e&&-1<(g=d.contains(c))&&(0>w((g=d.ranges[g]).from(),c)||0c.xRel)?Tf(a,b,c,f):Uf(a,b,c,e,f)}function Tf(a,b,c,d){var e= +a.display,f=+new Date,g=G(a,function(h){K&&(e.scroller.draggable=!1);a.state.draggingText=!1;ja(document,"mouseup",g);ja(e.scroller,"drop",g);10>Math.abs(b.clientX-h.clientX)+Math.abs(b.clientY-h.clientY)&&(O(h),!d&&+new Date-200E&&e.push(new y(r(h,E),r(h,De(s,g,f))))}e.length||e.push(new y(c,c));C(l,$(n.ranges.slice(0,p).concat(e),p),{origin:"*mouse",scroll:!1});a.scrollIntoView(b)}else e= +m,f=e.anchor,k=b,"single"!=d&&(b="double"==d?a.findWordAt(b):new y(r(b.line,0),x(l,r(b.line+1,0))),0=h.to||e.lineA.bottom?20:0;m&&setTimeout(G(a,function(){z== +c&&(k.scroller.scrollTop+=m,g(b))}),50)}}function h(b){a.state.selectingText=!1;z=Infinity;O(b);k.input.focus();ja(document,"mousemove",F);ja(document,"mouseup",B);l.history.lastSelOrigin=null}var k=a.display,l=a.doc;O(b);var m,p,n=l.sel,q=n.ranges;e&&!b.shiftKey?(p=l.sel.contains(c),m=-1=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&O(b);d=a.display;var h=d.lineDiv.getBoundingClientRect();if(f>h.bottom||!W(a,c))return jd(b);f-=h.top-d.viewOffset;for(h=0;h=e)return e=ya(a.doc,f),J(a,c,a,e,a.options.gutters[h],b),jd(b)}}function Of(a){var b= +this;ye(b);if(!H(b,a)&&!na(b.display,a)){O(a);A&&(we=+new Date);var c=Da(b,a,!0),d=a.dataTransfer.files;if(c&&!b.isReadOnly())if(d&&d.length&&window.FileReader&&window.File){var e=d.length,f=Array(e),g=0;a=function(a,d){if(!b.options.allowDropFileTypes||-1!=D(b.options.allowDropFileTypes,a.type)){var h=new FileReader;h.onload=G(b,function(){var a=h.result;/[\x00-\x08\x0e-\x1f]{2}/.test(a)&&(a="");f[d]=a;++g==e&&(c=x(b.doc,c),a={from:c,to:c,text:b.doc.splitLines(f.join(b.doc.lineSeparator())),origin:"paste"}, +Oa(b.doc,a),de(b.doc,ga(c,Ea(a))))});h.readAsText(a)}};for(var h=0;hMath.abs(a.doc.scrollTop-b)||(a.doc.scrollTop=b,oa||Qc(a,{top:b}),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b),a.display.scrollbars.setScrollTop(b),oa&&Qc(a),db(a,100))}function Ma(a,b,c){(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))||(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,Cc(a), +a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function ve(a,b){var c=Ee(b),d=c.x,c=c.y,e=a.display,f=e.scroller,g=f.scrollWidth>f.clientWidth,h=f.scrollHeight>f.clientHeight;if(d&&g||c&&h){if(c&&Y&&K){var g=b.target,k=e.view;a:for(;g!=f;g=g.parentNode)for(var l=0;lh?g=Math.max(0,g+ +h-50):k=Math.min(a.doc.height,k+h+50),Qc(a,{top:g,bottom:k})),20>fc&&(null==e.wheelStartX?(e.wheelStartX=f.scrollLeft,e.wheelStartY=f.scrollTop,e.wheelDX=d,e.wheelDY=c,setTimeout(function(){if(null!=e.wheelStartX){var a=f.scrollLeft-e.wheelStartX,b=f.scrollTop-e.wheelStartY,a=b&&e.wheelDY&&b/e.wheelDY||a&&e.wheelDX&&a/e.wheelDX;e.wheelStartX=e.wheelStartY=null;a&&(V=(V*fc+a)/(fc+1),++fc)}},200)):(e.wheelDX+=d,e.wheelDY+=c))):(c&&h&&jb(a,Math.max(0,Math.min(f.scrollTop+c*V,f.scrollHeight-f.clientHeight))), +Ma(a,Math.max(0,Math.min(f.scrollLeft+d*V,f.scrollWidth-f.clientWidth))),(!c||c&&h)&&O(b),e.wheelStartX=null)}}function gc(a,b,c){if("string"==typeof b&&(b=hc[b],!b))return!1;a.display.input.ensurePolled();var d=a.display.shift,e=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),c&&(a.display.shift=!1),e=b(a)!=Fe}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function Wf(a,b,c){for(var d=0;dB&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey;var c=Ge(this,a);ba&&(kd=c?b:null,!c&&88==b&&!He&&(Y?a.metaKey:a.ctrlKey)&&this.replaceSelection("",null,"cut"));18!=b||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)|| +ag(this)}}function ag(a){function b(a){18!=a.keyCode&&a.altKey||(ib(c,"CodeMirror-crosshair"),ja(document,"keyup",b),ja(document,"mouseover",b))}var c=a.display.lineDiv;kb(c,"CodeMirror-crosshair");v(document,"keyup",b);v(document,"mouseover",b)}function ze(a){16==a.keyCode&&(this.doc.sel.shift=!1);H(this,a)}function Be(a){if(!(na(this.display,a)||H(this,a)||a.ctrlKey&&!a.altKey||Y&&a.metaKey)){var b=a.keyCode,c=a.charCode;if(ba&&b==kd)kd=null,O(a);else if(!ba||a.which&&!(10>a.which)||!Ge(this,a))if(b= +String.fromCharCode(null==c?b:c),!$f(this,a,b))this.display.input.onKeyPress(a)}}function Rf(a){a.state.delayingBlurEvent=!0;setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,bb(a))},100)}function yc(a,b){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1);"nocursor"!=a.options.readOnly&&(a.state.focused||(J(a,"focus",a,b),a.state.focused=!0,kb(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),K&&setTimeout(function(){a.display.input.reset(!0)}, +20)),a.display.input.receivedFocus()),Zc(a))}function bb(a,b){a.state.delayingBlurEvent||(a.state.focused&&(J(a,"blur",a,b),a.state.focused=!1,ib(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function ue(a,b){var c;(c=na(a.display,b))||(c=W(a,"gutterContextMenu")?gd(a,b,"gutterContextMenu",!1):!1);if(!c&&!H(a,b,"contextmenu"))a.display.input.onContextMenu(b)}function Ie(a,b){if(0>w(a,b.from))return a;if(0>= +w(a,b.to))return Ea(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&(d+=Ea(b).ch-b.to.ch);return r(c,d)}function ld(a,b){for(var c=[],d=0;da.lastLine())){if(b.from.linee&&(b={from:b.from,to:r(e,t(a,e).text.length),text:[b.text[0]],origin:b.origin});b.removed=Ba(a,b.from,b.to);c||(c=ld(a,b));a.cm?cg(a.cm,b,d):od(a,b,d);Tb(a,c,ha)}}function cg(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,k=f.line;a.options.lineWrapping|| +(k=F(ia(t(d,f.line))),d.iter(k,g.line+1,function(a){if(a==e.maxLine)return h=!0}));-1e.maxLineLength&&(e.maxLine=a,e.maxLineLength=b,e.maxLineChanged=!0,h=!1)}),h&&(a.curOp.updateMaxLine=!0));d.frontier=Math.min(d.frontier,f.line);db(a,400);c=b.text.length-(g.line-f.line)-1;b.full?M(a):f.line!=g.line||1!=b.text.length||Re(a.doc,b)?M(a,f.line,g.line+1,c):ma(a,f.line, +"text");c=W(a,"changes");if((d=W(a,"change"))||c)b={from:f,to:g,text:b.text,removed:b.removed,origin:b.origin},d&&R(a,"change",a,b),c&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(b);a.display.selForContextMenu=null}function Ua(a,b,c,d,e){d||(d=c);if(0>w(d,c)){var f=d;d=c;c=f}"string"==typeof b&&(b=a.splitLines(b));Oa(a,{from:c,to:d,text:b,origin:e})}function ac(a,b,c,d,e){var f=a.display,g=va(a.display);0>c&&(c=0);var h=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:f.scroller.scrollTop, +k=Oc(a),l={};e-c>k&&(e=c+k);var m=a.doc.height+Fc(f),p=cm-g;ch+k&&(c=Math.min(c,(g?m:e)-k),c!=h&&(l.scrollTop=c));h=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:f.scroller.scrollLeft;a=za(a)-(a.options.fixedGutter?f.gutters.offsetWidth:0);(f=d-b>a)&&(d=b+a);10>b?l.scrollLeft=0:ba+h-3&&(l.scrollLeft=d+(f?0:10)-a);return l}function kc(a,b,c){null==b&&null==c||lc(a);null!=b&&(a.curOp.scrollLeft=(null==a.curOp.scrollLeft?a.doc.scrollLeft: +a.curOp.scrollLeft)+b);null!=c&&(a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+c)}function Pa(a){lc(a);var b=a.getCursor(),c=b,d=b;a.options.lineWrapping||(c=b.ch?r(b.line,b.ch-1):b,d=r(b.line,b.ch+1));a.curOp.scrollToPos={from:c,to:d,margin:a.options.cursorScrollMargin,isCursor:!0}}function lc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=te(a,b.from),d=te(a,b.to),b=ac(a,Math.min(c.left,d.left),Math.min(c.top,d.top)-b.margin,Math.max(c.right,d.right), +Math.max(c.bottom,d.bottom)+b.margin);a.scrollTo(b.scrollLeft,b.scrollTop)}}function nb(a,b,c,d){var e=a.doc,f;null==c&&(c="add");"smart"==c&&(e.mode.indent?f=rb(a,b):c="prev");var g=a.options.tabSize,h=t(e,b),k=aa(h.text,null,g);h.stateAfter&&(h.stateAfter=null);var l=h.text.match(/^\s*/)[0],m;if(!d&&!/\S/.test(h.text))m=0,c="not";else if("smart"==c&&(m=e.mode.indent(f,h.text.slice(l.length),h.text),m==Fe||150e.first?aa(t(e,b-1).text,null,g):0:"add"==c?m= +k+a.options.indentUnit:"subtract"==c?m=k-a.options.indentUnit:"number"==typeof c&&(m=k+c);m=Math.max(0,m);c="";d=0;if(a.options.indentWithTabs)for(a=Math.floor(m/g);a;--a)d+=g,c+="\t";d=w(f.from,z(d).to);){var g=d.pop();if(0>w(g.from,f.from)){f.from=g.from;break}}d.push(f)}T(a,function(){for(var b=d.length-1;0<=b;b--)Ua(a.doc,"",d[b].from,d[b].to,"+delete");Pa(a)})}function qd(a,b,c,d,e){function f(b){var d=(e?fd:Se)(l,h,c,!0);if(null==d){if(b=!b)b=g+c,b=a.first+a.size?b=!1:(g=b,b=l=t(a,b));if(b)h= +e?(0>c?$b:Zb)(l):0>c?l.text.length:0;else return!1}else h=d;return!0}var g=b.line,h=b.ch,k=c,l=t(a,g);if("char"==d)f();else if("column"==d)f(!0);else if("word"==d||"group"==d){var m=null;d="group"==d;for(var p=a.cm&&a.cm.getHelper(b,"wordChars"),n=!0;!(0>c)||f(!n);n=!1){var q=l.text.charAt(h)||"\n",q=nc(q,p)?"w":d&&"\n"==q?"n":!d||/\s/.test(q)?null:"p";!d||n||q||(q="s");if(m&&m!=q){0>c&&(c=1,f());break}q&&(m=q);if(0c?0>=g:g>=e.height){b.hitSide=!0;break}g+=5*c}return b}function u(a,b,c,d){q.defaults[a]=b;c&&(Ka[a]=d?function(a,b,d){d!=Ed&&c(a,b,d)}:c)}function dg(a){var b=a.split(/-(?!$)/);a=b[b.length-1];for(var c,d,e,f,g=0;g< +b.length-1;g++){var h=b[g];if(/^(cmd|meta|m)$/i.test(h))f=!0;else if(/^a(lt)?$/i.test(h))c=!0;else if(/^(c|ctrl|control)$/i.test(h))d=!0;else if(/^s(hift)$/i.test(h))e=!0;else throw Error("Unrecognized modifier name: "+h);}c&&(a="Alt-"+a);d&&(a="Ctrl-"+a);f&&(a="Cmd-"+a);e&&(a="Shift-"+a);return a}function oc(a){return"string"==typeof a?ta[a]:a}function Wa(a,b,c,d,e){if(d&&d.shared)return eg(a,b,c,d,e);if(a.cm&&!a.cm.curOp)return G(a.cm,Wa)(a,b,c,d,e);var f=new Ga(a,e);e=w(b,c);d&&X(d,f,!1);if(0< +e||0==e&&!1!==f.clearWhenEmpty)return f;f.replacedWith&&(f.collapsed=!0,f.widgetNode=s("span",[f.replacedWith],"CodeMirror-widget"),d.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),d.insertLeft&&(f.widgetNode.insertLeft=!0));if(f.collapsed){if(Ue(a,b.line,b,c,f)||b.line!=c.line&&Ue(a,c.line,b,c,f))throw Error("Inserting collapsed marker partially overlapping an existing one");ra=!0}f.addToHistory&&Ne(a,{from:b,to:c,origin:"markText"},a.sel,NaN);var g=b.line,h=a.cm,k;a.iter(g, +c.line+1,function(a){h&&f.collapsed&&!h.options.lineWrapping&&ia(a)==h.display.maxLine&&(k=!0);f.collapsed&&g!=b.line&&ca(a,0);var d=new pc(f,g==b.line?b.ch:null,g==c.line?c.ch:null);a.markedSpans=a.markedSpans?a.markedSpans.concat([d]):[d];d.marker.attachLine(a);++g});f.collapsed&&a.iter(b.line,c.line+1,function(b){wa(a,b)&&ca(b,0)});f.clearOnEnter&&v(f,"beforeCursorEnter",function(){f.clear()});f.readOnly&&(Le=!0,(a.history.done.length||a.history.undone.length)&&a.clearHistory());f.collapsed&&(f.id= +++rd,f.atomic=!0);if(h){k&&(h.curOp.updateMaxLine=!0);if(f.collapsed)M(h,b.line,c.line+1);else if(f.className||f.title||f.startStyle||f.endStyle||f.css)for(d=b.line;d<=c.line;d++)ma(h,d,"text");f.atomic&&ie(h.doc);R(h,"markerAdded",h,f)}return f}function eg(a,b,c,d,e){d=X(d);d.shared=!1;var f=[Wa(a,b,c,d,e)],g=f[0],h=d.widgetNode;Fa(a,function(a){h&&(d.widgetNode=h.cloneNode(!0));f.push(Wa(a,x(a,b),x(a,c),d,e));for(var l=0;l=e:l.to>e);(k||(k=[])).push(new pc(m,l.from,p?null:l.to))}}c=k;if(d)for(var h=0,n;h=f:k.to>f)||k.from==f&&"bookmark"==l.type&&(!g||k.marker.insertLeft))m=null==k.from||(l.inclusiveLeft?k.from<=f:k.fromw(g.to,e.from)||0k||!c.inclusiveLeft&&!k)&&h.push({from:g.from,to:e.from});(0Ze(d,e.marker))&&(d=e.marker);return d}function Ue(a,b,c,d,e){a=t(a,b);if(a=ra&&a.markedSpans)for(b=0;b=k||0>=h&&0<=k)&&(0>=h&&(f.marker.inclusiveRight&&e.inclusiveLeft?0<=w(g.to,c):0=w(g.from,d):0>w(g.from,d))))return!0}}}function ia(a){for(var b;b=xa(a,!0);)a=b.find(-1,!0).line;return a}function Nc(a,b){var c=t(a,b),d=ia(c);return c==d?b:F(d)} +function Kd(a,b){if(b>a.lastLine())return b;var c=t(a,b),d;if(!wa(a,c))return b;for(;d=xa(c,!1);)c=d.find(1,!0).line;return F(c)+1}function wa(a,b){var c=ra&&b.markedSpans;if(c)for(var d,e=0;ee;e++){d&&(d[0]=q.innerMode(a,c).mode);var f=a.token(b,c);if(b.pos>b.start)return f}throw Error("Mode "+a.name+" failed to advance stream."); +}function bf(a,b,c,d){function e(a){return{start:m.start,end:m.pos,string:m.current(),type:h||null,state:a?sa(f.mode,l):l}}var f=a.doc,g=f.mode,h;b=x(f,b);var k=t(f,b.line),l=rb(a,b.line,c),m=new sc(k.text,a.options.tabSize),p;for(d&&(p=[]);(d||m.posa.options.maxHighlightLength?(h=!1,g&&$c(a,b,d,m.pos),m.pos=b.length,p=null):p=$e(td(c,m,d,n),f);if(n){var q=n[0].name;q&&(p="m-"+(p?q+" "+p:q))}if(!h||l!=p){for(;ka&&e.splice(h,1,a,e[h+1],d);h+=2;k=Math.min(a,d)}if(b)if(g.opaque)e.splice(c,h-c,a,"cm-overlay "+b),h=c+2;else for(;ca.options.maxHighlightLength?sa(a.doc.mode,d):d);b.stateAfter=d;b.styles=e.styles;e.classes?b.styleClasses=e.classes:b.styleClasses&& +(b.styleClasses=null);c===a.doc.frontier&&a.doc.frontier++}return b.styles}function $c(a,b,c,d){var e=a.doc.mode;a=new sc(b,a.options.tabSize);a.start=a.pos=d||0;for(""==b&&af(e,c);!a.eol();)td(e,a,c),a.start=a.pos}function ef(a,b){if(!a||/^\s*$/.test(a))return null;var c=b.addModeClass?ig:jg;return c[a]||(c[a]=a.replace(/\S+/g,"cm-$\x26"))}function Rd(a,b){var c=s("span",null,null,K?"padding-right: .1px":null),c={pre:s("pre",[c],"CodeMirror-line"),content:c,col:0,pos:0,cm:a,trailingSpace:!1,splitSpaces:(A|| +K)&&a.getOption("lineWrapping")};b.measure={};for(var d=0;d<=(b.rest?b.rest.length:0);d++){var e=d?b.rest[d-1]:b.line,f;c.pos=0;c.addToken=kg;var g;g=a.display.measure;if(null!=ud)g=ud;else{var h=U(g,document.createTextNode("AخA")),k=Sa(h,0,1).getBoundingClientRect(),h=Sa(h,1,2).getBoundingClientRect();pa(g);g=k&&k.left!=k.right?ud=3>h.right-k.right:!1}g&&(f=Z(e))&&(c.addToken=lg(c.addToken,f));c.map=[];k=b!=a.display.externalMeasured&&F(e);a:{g=c;var k=df(a,e,k),h=e.markedSpans,l=e.text,m=0;if(h)for(var p= +l.length,n=0,q=1,r="",t=void 0,v=void 0,u=0,w=void 0,x=void 0,z=void 0,B=void 0,y=void 0;;){if(u==n){for(var w=x=z=B=v="",y=null,u=Infinity,G=[],H,C=0;Cn||D.collapsed&&I.to==n&&I.from==n)?(null!=I.to&&I.to!=n&&u>I.to&&(u=I.to,x=""),D.className&&(w+=" "+D.className),D.css&&(v=(v?v+";":"")+D.css),D.startStyle&&I.from==n&&(z+=" "+D.startStyle),D.endStyle&&I.to==u&&(H||(H=[])).push(D.endStyle, +I.to),D.title&&!B&&(B=D.title),D.collapsed&&(!y||0>Ze(y.marker,D))&&(y=I)):I.from>n&&u>I.from&&(u=I.from)}if(H)for(C=0;C=p)break;for(G=Math.min(p,u);;){if(r){C=n+r.length;y||(I=C>G?r.slice(0,G-n):r,g.addToken(g,I,t?t+w:w,z,n+I.length==u?x:"",B,v));if(C>=G){r=r.slice(G-n);n=G;break}n=C;z=""}r= +l.slice(m,m=k[q++]);t=ef(k[q++],g.cm.options)}}else for(var q=1;qB?h.appendChild(s("span",[r])):h.appendChild(r);a.map.push(a.pos,a.pos+q,r);a.col+=q;a.pos+=q}if(!n)break;p+=q+1;"\t"==n[0]?(r=a.cm.options.tabSize,n=r-a.col%r,r=h.appendChild(s("span",pd(n),"cm-tab")),r.setAttribute("role","presentation"),r.setAttribute("cm-text", +"\t"),a.col+=n):("\r"==n[0]||"\n"==n[0]?(r=h.appendChild(s("span","\r"==n[0]?"␍":"␤","cm-invalidchar")),r.setAttribute("cm-text",n[0])):(r=a.cm.options.specialCharPlaceholder(n[0]),r.setAttribute("cm-text",n[0]),A&&9>B?h.appendChild(s("span",[r])):h.appendChild(r)),a.col+=1);a.map.push(a.pos,a.pos+1,r);a.pos++}}else a.col+=b.length,h=document.createTextNode(k),a.map.push(a.pos,a.pos+b.length,h),A&&9>B&&(m=!0),a.pos+=b.length;a.trailingSpace=32==k.charCodeAt(b.length-1);if(c||d||e||m||g)return b=c|| +"",d&&(b+=d),e&&(b+=e),d=s("span",[h],b,g),f&&(d.title=f),a.content.appendChild(d);a.content.appendChild(h)}}function lg(a,b){return function(c,d,e,f,g,h,k){e=e?e+" cm-force-border":"cm-force-border";for(var l=c.pos,m=l+d.length;;){for(var p=0;pl&&n.from<=l)break}if(n.to>=m)return a(c,d,e,f,g,h,k);a(c,d.slice(0,n.to-l),e,f,null,h,k);f=null;d=d.slice(n.to-l);l=n.to}}}function ff(a,b,c,d){var e=!d&&c.widgetNode;e&&a.map.push(a.pos,a.pos+b,e);!d&&a.cm.display.input.needsContentAttribute&& +(e||(e=a.content.appendChild(document.createElement("span"))),e.setAttribute("cm-marker",c.id));e&&(a.cm.display.input.setUneditable(e),a.content.appendChild(e));a.pos+=b;a.trailingSpace=!1}function Re(a,b){return 0==b.from.ch&&0==b.to.ch&&""==z(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function od(a,b,c,d){function e(a,c,e){a.text=c;a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);Xe(a);Ye(a,e);c=d?d(a):1;c!=a.height&&ca(a,c);R(a,"change",a,b)} +function f(a,b){for(var e=a,f=[];eb||b>=a.size)throw Error("There is no line "+ +(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(bf-a.cm.options.historyEventDelay||"*"==b.origin.charAt(0)))e.lastOp==d?(ee(e.done),g=z(e.done)):e.done.length&&!z(e.done).ranges?g=z(e.done):1e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift();e.done.push(c);e.generation=++e.maxGeneration;e.lastModTime=e.lastSelTime=f;e.lastOp=e.lastSelOp=d;e.lastOrigin=e.lastSelOrigin=b.origin;k||J(a,"historyAdded")}function Ub(a,b){var c=z(b);c&& +c.ranges&&c.equals(a)||b.push(a)}function gf(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans);++f})}function gg(a){if(!a)return null;for(var b=0,c;b=b.offsetWidth&&2B))}a=xd?s("span","​"):s("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");a.setAttribute("cm-text","");return a}function Gf(a,b,c,d){if(!a)return d(b, +c,"ltr");for(var e=!1,f=0;fb||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr"),e=!0}e||d(b,c,"ltr")}function cd(a){return a.level%2?a.to:a.from}function dd(a){return a.level%2?a.from:a.to}function Zb(a){return(a=Z(a))?cd(a[0]):0}function $b(a){var b=Z(a);return b?dd(z(b)):a.text.length}function pf(a,b){var c=t(a.doc,b),d=ia(c);d!=c&&(b=F(d));d=(c=Z(d))?c[0].level%2?$b(d):Zb(d):0;return r(b,d)}function qf(a,b){var c=pf(a,b.line), +d=t(a.doc,c.line),e=Z(d);return e&&0!=e[0].level?c:(d=Math.max(0,d.text.search(/\S/)),r(c.line,b.line==c.line&&b.ch<=d&&b.ch?0:d))}function Qb(a,b){ub=null;for(var c=0,d;cb)return c;if(e.from==b||e.to==b)if(null==d)d=c;else{var f;f=e.level;var g=a[d].level,h=a[0].level;f=f==h?!0:g==h?!1:fg.from&&bb||b>a.text.length?null:b}var S=navigator.userAgent,rf=navigator.platform,oa=/gecko\/\d/i.test(S),sf=/MSIE \d/.test(S),tf=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(S), +A=sf||tf,B=A&&(sf?document.documentMode||6:tf[1]),K=/WebKit\//.test(S),rg=K&&/Qt\/\d+\.\d+/.test(S),sg=/Chrome\//.test(S),ba=/Opera\//.test(S),xe=/Apple Computer/.test(navigator.vendor),tg=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(S),Mf=/PhantomJS/.test(S),ob=/AppleWebKit/.test(S)&&/Mobile\/\w+/.test(S),ab=ob||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(S),Y=ob||/Mac/.test(rf),Vf=/\bCrOS\b/.test(S),ug=/win/i.test(rf),Ha=ba&&S.match(/Version\/(\d*\.\d*)/);Ha&&(Ha=Number(Ha[1]));Ha&&15<= +Ha&&(ba=!1,K=!0);var uf=Y&&(rg||ba&&(null==Ha||12.11>Ha)),hd=oa||A&&9<=B,Le=!1,ra=!1;Gc.prototype=X({update:function(a){var b=a.scrollWidth>a.clientWidth+1,c=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;c?(this.vert.style.display="block",this.vert.style.bottom=b?d+"px":"0",this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+(a.viewHeight-(b?d:0)))+"px"):(this.vert.style.display="",this.vert.firstChild.style.height="0");b?(this.horiz.style.display="block",this.horiz.style.right= +c?d+"px":"0",this.horiz.style.left=a.barLeft+"px",this.horiz.firstChild.style.width=a.scrollWidth-a.clientWidth+(a.viewWidth-a.barLeft-(c?d:0))+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0");!this.checkedZeroWidth&&0B&&f.scrollbars.setScrollTop(f.scroller.scrollTop=k);if(null!=g.selectionStart){(!A||A&&9>B)&&b();var a=0,c=function(){f.selForContextMenu==e.doc.sel&&0==g.selectionStart&&0 +a++?f.detectingSelectAll=setTimeout(c,500):f.input.reset()};f.detectingSelectAll=setTimeout(c,200)}}var d=this,e=d.cm,f=e.display,g=d.textarea,h=Da(e,a),k=f.scroller.scrollTop;if(h&&!ba){e.options.resetSelectionOnContextMenu&&-1==e.doc.sel.contains(h)&&G(e,C)(e.doc,ga(h),ha);var l=g.style.cssText,m=d.wrapper.style.cssText;d.wrapper.style.cssText="position: absolute";h=d.wrapper.getBoundingClientRect();g.style.cssText="position: absolute; width: 30px; height: 30px; top: "+(a.clientY-h.top-5)+"px; left: "+ +(a.clientX-h.left-5)+"px; z-index: 1000; background: "+(A?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity\x3d5);";if(K)var p=window.scrollY;f.input.focus();K&&window.scrollTo(null,p);f.input.reset();e.somethingSelected()||(g.value=d.prevInput=" ");d.contextMenuPending=!0;f.selForContextMenu=e.doc.sel;clearTimeout(f.detectingSelectAll);A&&9<=B&&b();if(hd){cc(a);var n=function(){ja(window,"mouseup",n); +setTimeout(c,20)};v(window,"mouseup",n)}else setTimeout(c,50)}},readOnlyChanged:function(a){a||this.reset()},setUneditable:Cb,needsContentAttribute:!1},Tc.prototype);Uc.prototype=X({init:function(a){function b(a){if(!H(d,a)){if(d.somethingSelected())P={lineWise:!1,text:d.getSelections()},"cut"==a.type&&d.replaceSelection("",null,"cut");else if(d.options.lineWiseCopyCut){var b=Wd(d);P={lineWise:!0,text:b.text};"cut"==a.type&&d.operation(function(){d.setSelections(b.ranges,0,ha);d.replaceSelection("", +null,"cut")})}else return;if(a.clipboardData){a.clipboardData.clearData();var h=P.text.join("\n");a.clipboardData.setData("Text",h);if(a.clipboardData.getData("Text")==h){a.preventDefault();return}}var k=Yd();a=k.firstChild;d.display.lineSpace.insertBefore(k,d.display.lineSpace.firstChild);a.value=P.text.join("\n");var l=document.activeElement;Za(a);setTimeout(function(){d.display.lineSpace.removeChild(k);l.focus();l==e&&c.showPrimarySelection()},50)}}var c=this,d=c.cm,e=c.div=a.lineDiv;Xd(e,d.options.spellcheck); +v(e,"paste",function(a){H(d,a)||Vd(a,d)||11>=B&&setTimeout(G(d,function(){c.pollContent()||M(d)}),20)});v(e,"compositionstart",function(a){a=a.data;c.composing={sel:d.doc.sel,data:a,startData:a};if(a){var b=d.doc.sel.primary(),e=d.getLine(b.head.line).indexOf(a,Math.max(0,b.head.ch-a.length));-1b.viewTo-1)return!1;var e;d.line==b.viewFrom||0==(e=Aa(a,d.line))?(d=F(b.view[0].line),e=b.view[0].node):(d=F(b.view[e].line),e=b.view[e-1].node.nextSibling);var f=Aa(a,c.line);f==b.view.length-1?(c=b.viewTo-1,b=b.lineDiv.lastChild):(c=F(b.view[f+1].line)-1,b=b.view[f+1].node.previousSibling);b=a.doc.splitLines(Df(a,e,b,d,c));for(e=Ba(a.doc,r(d,0),r(c,t(a.doc,c).text.length));1=w(a,d.to()))return c}return-1}};y.prototype={from:function(){return Nb(this.anchor,this.head)},to:function(){return Mb(this.anchor, +this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var pe={left:0,right:0,top:0,bottom:0},Ca,Ta=null,Lf=0,ec,dc,we=0,fc=0,V=null;A?V=-.53:oa?V=15:sg?V=-.7:xe&&(V=-1/3);var Ee=function(a){var b=a.wheelDeltaX,c=a.wheelDeltaY;null==b&&a.detail&&a.axis==a.HORIZONTAL_AXIS&&(b=a.detail);null==c&&a.detail&&a.axis==a.VERTICAL_AXIS?c=a.detail:null==c&&(c=a.wheelDelta);return{x:b,y:c}};q.wheelEventPixels=function(a){a=Ee(a);a.x*=V;a.y*=V;return a};var Yf=new ua, +kd=null,Ea=q.changeEnd=function(a){return a.text?r(a.from.line+a.text.length-1,z(a.text).length+(1==a.text.length?a.from.ch:0)):a.to};q.prototype={constructor:q,focus:function(){window.focus();this.display.input.focus()},setOption:function(a,b){var c=this.options,d=c[a];if(c[a]!=b||"mode"==a)c[a]=b,Ka.hasOwnProperty(a)&&G(this,Ka[a])(this,b,d)},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](oc(a))},removeKeyMap:function(a){for(var b= +this.state.keyMaps,c=0;cc&&(nb(this,e.head.line,a,!0),c=e.head.line,d==this.doc.sel.primIndex&&Pa(this));else{for(var f=e.from(),e=e.to(),g=Math.max(c,f.line),c=Math.min(this.lastLine(), +e.line-(e.ch?0:1))+1,e=g;e>1;if((e?b[2*e-1]:0)>=a)d=e;else if(b[2*e+1]c?b:0==c?null:b.slice(0,c-1)},getModeAt:function(a){var b=this.doc.mode;return b.innerMode?q.innerMode(b,this.getTokenAt(a).state).mode:b},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(a,b){var c=[];if(!$a.hasOwnProperty(b))return c;var d=$a[b],e=this.getModeAt(a);if("string"==typeof e[b])d[e[b]]&&c.push(d[e[b]]);else if(e[b])for(var f=0;fd&&(a=d,c=!0),d=t(this.doc,a)):d=a;return bd(this,d,{top:0,left:0},b||"page").top+(c?this.doc.height-ea(d):0)},defaultTextHeight:function(){return va(this.display)},defaultCharWidth:function(){return eb(this.display)}, +setGutterMarker:L(function(a,b,c){return mc(this.doc,a,"gutter",function(a){var e=a.gutterMarkers||(a.gutterMarkers={});e[b]=c;!c&&nf(e)&&(a.gutterMarkers=null);return!0})}),clearGutter:L(function(a){var b=this,c=b.doc,d=c.first;c.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&(c.gutterMarkers[a]=null,ma(b,d,"gutter"),nf(c.gutterMarkers)&&(c.gutterMarkers=null));++d})}),lineInfo:function(a){if("number"==typeof a){if(!pb(this.doc,a))return null;var b=a;a=t(this.doc,a);if(!a)return null}else if(b= +F(a),null==b)return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display;a=la(this,x(this.doc,a));var g=a.bottom,h=a.left;b.style.position="absolute";b.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(b);f.sizer.appendChild(b);if("over"==d)g=a.top; +else if("above"==d||"near"==d){var k=Math.max(f.wrapper.clientHeight,this.doc.height),l=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>k)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=k&&(g=a.bottom);h+b.offsetWidth>l&&(h=l-b.offsetWidth)}b.style.top=g+"px";b.style.left=b.style.right="";"right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/2),b.style.left= +h+"px");c&&(a=ac(this,h,g,h+b.offsetWidth,g+b.offsetHeight),null!=a.scrollTop&&jb(this,a.scrollTop),null!=a.scrollLeft&&Ma(this,a.scrollLeft))},triggerOnKeyDown:L(Ae),triggerOnKeyPress:L(Be),triggerOnKeyUp:ze,execCommand:function(a){if(hc.hasOwnProperty(a))return hc[a].call(null,this)},triggerElectric:L(function(a){Ud(this,a)}),findPosH:function(a,b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=x(this.doc,a);fa?d.from():d.to()},Eb)}),deleteH:L(function(a,b){var c=this.doc;this.doc.sel.somethingSelected()?c.replaceSelection("",null,"+delete"):Va(this,function(d){var e=qd(c,d.head,a,b,!1);return 0>a?{from:e,to:d.head}:{from:d.head,to:e}})}),findPosV:function(a,b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=x(this.doc,a);fa?g.from():g.to();var k=la(c,g.head,"div");null!=g.goalColumn&&(k.left=g.goalColumn);e.push(k.left);var l=Te(c,k,a,b);"page"==b&&g==d.sel.primary()&&kc(c,null,Vb(c,l,"div").top-k.top);return l},Eb);if(e.length)for(var g=0;ga.xRel||d==b.length)&&c?--c:++d;for(var f=b.charAt(c),f=nc(f,e)?function(a){return nc(a,e)}:/\s/.test(f)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!nc(a)};0a.doc.first){var g=t(a.doc,e.line-1).text;g&&a.replaceRange(f.charAt(0)+a.doc.lineSeparator()+g.charAt(g.length-1),r(e.line-1,g.length-1),r(e.line,1),"+transpose")}c.push(new y(e, +e))}a.setSelections(c)})},newlineAndIndent:function(a){T(a,function(){for(var b=a.listSelections().length,c=0;c=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.posb},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){a=this.string.indexOf(a,this.pos);if(-1a.display.maxLineLength&&(a.display.maxLine=f,a.display.maxLineLength=g,a.display.maxLineChanged=!0);null!=c&&a&&this.collapsed&&M(a,c,d+1);this.lines.length=0;this.explicitlyCleared=!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&ie(a.doc));a&&R(a,"markerCleared",a,this);b&&La(a);this.parent&&this.parent.clear()}};Ga.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;ethis.size-b&&(1=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length- +5,5),b=new Ab(b);if(a.parent){a.size-=b.size;a.height-=b.height;var c=D(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else c=new Ab(a.children),c.parent=a,a.children=[c,b],a=c;b.parent=a.parent}while(10w(h.head,h.anchor),f[e]=new y(h?k:g,h?g:k)):f[e]=new y(g,g)}f=new ka(f,this.sel.primIndex)}b=f;for(f=d.length-1;0<=f;f--)Oa(this,d[f]);b?de(this,b):this.cm&&Pa(this.cm)}),undo:N(function(){jc(this,"undo")}), +redo:N(function(){jc(this,"redo")}),undoSelection:N(function(){jc(this,"undo",!0)}),redoSelection:N(function(){jc(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=x(this,a);b=x(this,b);var d=[],e=a.line;this.iter(a.line,b.line+1,function(f){if(f=f.markedSpans)for(var g=0;g=h.to||null==h.from&&e!=a.line||null!=h.from&&e==b.line&&h.from>=b.ch||c&& +!c(h.marker)||d.push(h.marker.parent||h.marker)}++e});return d},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c=0;ca)return b=a,!0;a-=e;++c});return x(this,r(c,b))},indexFromPos:function(a){a=x(this,a);var b=a.ch;if(a.linea.ch)return 0;var c=this.lineSeparator().length; +this.iter(this.first,a.line,function(a){b+=a.text.length+c});return b},copy:function(a){var b=new Q(wd(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep);b.scrollTop=this.scrollTop;b.scrollLeft=this.scrollLeft;b.sel=this.sel;b.extend=!1;a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory()));return b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from);null!=a.to&&a.toD(yg,Hb)&&(q.prototype[Hb]=function(a){return function(){return a.apply(this.doc,arguments)}}(Q.prototype[Hb]));Ya(Q);var O=q.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},zg=q.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},cc=q.e_stop=function(a){O(a);zg(a)},v=q.on=function(a,b,c){a.addEventListener? +a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):(a=a._handlers||(a._handlers={}),(a[b]||(a[b]=[])).push(c))},kf=[],ja=q.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else for(a=uc(a,b,!1),b=0;bf||f>=b)return e+(b-d);e+=f-d;e+=c-e%c;d=f+1}},De=q.findColumn=function(a,b,c){for(var d=0,e=0;;){var f=a.indexOf("\t",d);-1==f&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);e+=f-d;e+=c-e%c;d=f+ +1;if(e>=b)return d}},vc=[""],Za=function(a){a.select()};ob?Za=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:A&&(Za=function(a){try{a.select()}catch(b){}});var Ag=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,mf=q.isWordChar=function(a){return/\w/.test(a)||"€"B&&(fa=function(){try{return document.activeElement}catch(a){return document.body}}); +var ib=q.rmClass=function(a,b){var c=a.className,d=Db(b).exec(c);if(d){var e=c.slice(d.index+d[0].length);a.className=c.slice(0,d.index)+(e?d[1]+e:"")}},kb=q.addClass=function(a,b){var c=a.className;Db(b).test(c)||(a.className+=(c?" ":"")+b)},Cd=!1,Sf=function(){if(A&&9>B)return!1;var a=s("div");return"draggable"in a||"dragDrop"in a}(),xd,ud,xg=q.splitLines=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;b<=d;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"== +a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},vg=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},He=function(){var a=s("div");if("oncopy"in a)return!0;a.setAttribute("oncopy","return;");return"function"==typeof a.oncopy}(), +ad=null,Ia=q.keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"\x3d",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"\x3d",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"\x3d",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left", +63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};(function(){for(var a=0;10>a;a++)Ia[a+48]=Ia[a+96]=String(a);for(a=65;90>=a;a++)Ia[a]=String.fromCharCode(a);for(a=1;12>=a;a++)Ia[a+111]=Ia[a+63235]="F"+a})();var ub,ng=function(){function a(a){return 247>=a?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a): +1424<=a&&1524>=a?"R":1536<=a&&1773>=a?"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm".charAt(a-1536):1774<=a&&2220>=a?"r":8192<=a&&8203>=a?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,d=/[stwN]/,e=/[LRr]/,f=/[Lb1n]/,g=/[1n]/;return function(h){if(!c.test(h))return!1; +for(var k=h.length,l=[],m=0,p;m 1) return; + // By default, don't allow completion when something is selected. + // A hint function can have a `supportsSelection` property to + // indicate that it can handle selections. + if (this.somethingSelected()) { + if (!options.hint.supportsSelection) return; + // Don't try with cross-line selections + for (var i = 0; i < selections.length; i++) + if (selections[i].head.line != selections[i].anchor.line) return; + } + + if (this.state.completionActive) this.state.completionActive.close(); + var completion = this.state.completionActive = new Completion(this, options); + if (!completion.options.hint) return; + + CodeMirror.signal(this, "startCompletion", this); + completion.update(true); + }); + + function Completion(cm, options) { + this.cm = cm; + this.options = options; + this.widget = null; + this.debounce = 0; + this.tick = 0; + this.startPos = this.cm.getCursor("start"); + this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; + + var self = this; + cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); + } + + var requestAnimationFrame = window.requestAnimationFrame || function(fn) { + return setTimeout(fn, 1000/60); + }; + var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; + + Completion.prototype = { + close: function() { + if (!this.active()) return; + this.cm.state.completionActive = null; + this.tick = null; + this.cm.off("cursorActivity", this.activityFunc); + + if (this.widget && this.data) CodeMirror.signal(this.data, "close"); + if (this.widget) this.widget.close(); + CodeMirror.signal(this.cm, "endCompletion", this.cm); + }, + + active: function() { + return this.cm.state.completionActive == this; + }, + + pick: function(data, i) { + var completion = data.list[i]; + if (completion.hint) completion.hint(this.cm, data, completion); + else this.cm.replaceRange(getText(completion), completion.from || data.from, + completion.to || data.to, "complete"); + CodeMirror.signal(data, "pick", completion); + this.close(); + }, + + cursorActivity: function() { + if (this.debounce) { + cancelAnimationFrame(this.debounce); + this.debounce = 0; + } + + var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); + if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || + pos.ch < this.startPos.ch || this.cm.somethingSelected() || + (pos.ch && this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { + this.close(); + } else { + var self = this; + this.debounce = requestAnimationFrame(function() {self.update();}); + if (this.widget) this.widget.disable(); + } + }, + + update: function(first) { + if (this.tick == null) return + var self = this, myTick = ++this.tick + fetchHints(this.options.hint, this.cm, this.options, function(data) { + if (self.tick == myTick) self.finishUpdate(data, first) + }) + }, + + finishUpdate: function(data, first) { + if (this.data) CodeMirror.signal(this.data, "update"); + + var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); + if (this.widget) this.widget.close(); + + if (data && this.data && isNewCompletion(this.data, data)) return; + this.data = data; + + if (data && data.list.length) { + if (picked && data.list.length == 1) { + this.pick(data, 0); + } else { + this.widget = new Widget(this, data); + CodeMirror.signal(data, "shown"); + } + } + } + }; + + function isNewCompletion(old, nw) { + var moved = CodeMirror.cmpPos(nw.from, old.from) + return moved > 0 && old.to.ch - old.from.ch != nw.to.ch - nw.from.ch + } + + function parseOptions(cm, pos, options) { + var editor = cm.options.hintOptions; + var out = {}; + for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; + if (editor) for (var prop in editor) + if (editor[prop] !== undefined) out[prop] = editor[prop]; + if (options) for (var prop in options) + if (options[prop] !== undefined) out[prop] = options[prop]; + if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) + return out; + } + + function getText(completion) { + if (typeof completion == "string") return completion; + else return completion.text; + } + + function buildKeyMap(completion, handle) { + var baseMap = { + Up: function() {handle.moveFocus(-1);}, + Down: function() {handle.moveFocus(1);}, + PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, + PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, + Home: function() {handle.setFocus(0);}, + End: function() {handle.setFocus(handle.length - 1);}, + Enter: handle.pick, + Tab: handle.pick, + Esc: handle.close + }; + var custom = completion.options.customKeys; + var ourMap = custom ? {} : baseMap; + function addBinding(key, val) { + var bound; + if (typeof val != "string") + bound = function(cm) { return val(cm, handle); }; + // This mechanism is deprecated + else if (baseMap.hasOwnProperty(val)) + bound = baseMap[val]; + else + bound = val; + ourMap[key] = bound; + } + if (custom) + for (var key in custom) if (custom.hasOwnProperty(key)) + addBinding(key, custom[key]); + var extra = completion.options.extraKeys; + if (extra) + for (var key in extra) if (extra.hasOwnProperty(key)) + addBinding(key, extra[key]); + return ourMap; + } + + function getHintElement(hintsElement, el) { + while (el && el != hintsElement) { + if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; + el = el.parentNode; + } + } + + function Widget(completion, data) { + this.completion = completion; + this.data = data; + this.picked = false; + var widget = this, cm = completion.cm; + + var hints = this.hints = document.createElement("ul"); + hints.className = "CodeMirror-hints"; + this.selectedHint = data.selectedHint || 0; + + var completions = data.list; + for (var i = 0; i < completions.length; ++i) { + var elt = hints.appendChild(document.createElement("li")), cur = completions[i]; + var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); + if (cur.className != null) className = cur.className + " " + className; + elt.className = className; + if (cur.render) cur.render(elt, data, cur); + else elt.appendChild(document.createTextNode(cur.displayText || getText(cur))); + elt.hintId = i; + } + + var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); + var left = pos.left, top = pos.bottom, below = true; + hints.style.left = left + "px"; + hints.style.top = top + "px"; + // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. + var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); + var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); + (completion.options.container || document.body).appendChild(hints); + var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; + var scrolls = hints.scrollHeight > hints.clientHeight + 1 + var startScroll = cm.getScrollInfo(); + + if (overlapY > 0) { + var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); + if (curTop - height > 0) { // Fits above cursor + hints.style.top = (top = pos.top - height) + "px"; + below = false; + } else if (height > winH) { + hints.style.height = (winH - 5) + "px"; + hints.style.top = (top = pos.bottom - box.top) + "px"; + var cursor = cm.getCursor(); + if (data.from.ch != cursor.ch) { + pos = cm.cursorCoords(cursor); + hints.style.left = (left = pos.left) + "px"; + box = hints.getBoundingClientRect(); + } + } + } + var overlapX = box.right - winW; + if (overlapX > 0) { + if (box.right - box.left > winW) { + hints.style.width = (winW - 5) + "px"; + overlapX -= (box.right - box.left) - winW; + } + hints.style.left = (left = pos.left - overlapX) + "px"; + } + if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) + node.style.paddingRight = cm.display.nativeBarWidth + "px" + + cm.addKeyMap(this.keyMap = buildKeyMap(completion, { + moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, + setFocus: function(n) { widget.changeActive(n); }, + menuSize: function() { return widget.screenAmount(); }, + length: completions.length, + close: function() { completion.close(); }, + pick: function() { widget.pick(); }, + data: data + })); + + if (completion.options.closeOnUnfocus) { + var closingOnBlur; + cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); + cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); + } + + cm.on("scroll", this.onScroll = function() { + var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); + var newTop = top + startScroll.top - curScroll.top; + var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop); + if (!below) point += hints.offsetHeight; + if (point <= editor.top || point >= editor.bottom) return completion.close(); + hints.style.top = newTop + "px"; + hints.style.left = (left + startScroll.left - curScroll.left) + "px"; + }); + + CodeMirror.on(hints, "dblclick", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} + }); + + CodeMirror.on(hints, "click", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) { + widget.changeActive(t.hintId); + if (completion.options.completeOnSingleClick) widget.pick(); + } + }); + + CodeMirror.on(hints, "mousedown", function() { + setTimeout(function(){cm.focus();}, 20); + }); + + CodeMirror.signal(data, "select", completions[0], hints.firstChild); + return true; + } + + Widget.prototype = { + close: function() { + if (this.completion.widget != this) return; + this.completion.widget = null; + this.hints.parentNode.removeChild(this.hints); + this.completion.cm.removeKeyMap(this.keyMap); + + var cm = this.completion.cm; + if (this.completion.options.closeOnUnfocus) { + cm.off("blur", this.onBlur); + cm.off("focus", this.onFocus); + } + cm.off("scroll", this.onScroll); + }, + + disable: function() { + this.completion.cm.removeKeyMap(this.keyMap); + var widget = this; + this.keyMap = {Enter: function() { widget.picked = true; }}; + this.completion.cm.addKeyMap(this.keyMap); + }, + + pick: function() { + this.completion.pick(this.data, this.selectedHint); + }, + + changeActive: function(i, avoidWrap) { + if (i >= this.data.list.length) + i = avoidWrap ? this.data.list.length - 1 : 0; + else if (i < 0) + i = avoidWrap ? 0 : this.data.list.length - 1; + if (this.selectedHint == i) return; + var node = this.hints.childNodes[this.selectedHint]; + node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); + node = this.hints.childNodes[this.selectedHint = i]; + node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; + if (node.offsetTop < this.hints.scrollTop) + this.hints.scrollTop = node.offsetTop - 3; + else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) + this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; + CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); + }, + + screenAmount: function() { + return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; + } + }; + + function applicableHelpers(cm, helpers) { + if (!cm.somethingSelected()) return helpers + var result = [] + for (var i = 0; i < helpers.length; i++) + if (helpers[i].supportsSelection) result.push(helpers[i]) + return result + } + + function fetchHints(hint, cm, options, callback) { + if (hint.async) { + hint(cm, callback, options) + } else { + var result = hint(cm, options) + if (result && result.then) result.then(callback) + else callback(result) + } + } + + function resolveAutoHints(cm, pos) { + var helpers = cm.getHelpers(pos, "hint"), words + if (helpers.length) { + var resolved = function(cm, callback, options) { + var app = applicableHelpers(cm, helpers); + function run(i) { + if (i == app.length) return callback(null) + fetchHints(app[i], cm, options, function(result) { + if (result && result.list.length > 0) callback(result) + else run(i + 1) + }) + } + run(0) + } + resolved.async = true + resolved.supportsSelection = true + return resolved + } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { + return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } + } else if (CodeMirror.hint.anyword) { + return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } + } else { + return function() {} + } + } + + CodeMirror.registerHelper("hint", "auto", { + resolve: resolveAutoHints + }); + + CodeMirror.registerHelper("hint", "fromList", function(cm, options) { + var cur = cm.getCursor(), token = cm.getTokenAt(cur); + var to = CodeMirror.Pos(cur.line, token.end); + if (token.string && /\w/.test(token.string[token.string.length - 1])) { + var term = token.string, from = CodeMirror.Pos(cur.line, token.start); + } else { + var term = "", from = to; + } + var found = []; + for (var i = 0; i < options.words.length; i++) { + var word = options.words[i]; + if (word.slice(0, term.length) == term) + found.push(word); + } + + if (found.length) return {list: found, from: from, to: to}; + }); + + CodeMirror.commands.autocomplete = CodeMirror.showHint; + + var defaultOptions = { + hint: CodeMirror.hint.auto, + completeSingle: true, + alignWithWord: true, + closeCharacters: /[\s()\[\]{};:>,]/, + closeOnUnfocus: true, + completeOnSingleClick: true, + container: null, + customKeys: null, + extraKeys: null + }; + + CodeMirror.defineOption("hintOptions", null); +}); + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && + (document.documentMode == null || document.documentMode < 8); + + var Pos = CodeMirror.Pos; + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; + + function findMatchingBracket(cm, where, strict, config) { + var line = cm.getLineHandle(where.line), pos = where.ch - 1; + var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; + if (!match) return null; + var dir = match.charAt(1) == ">" ? 1 : -1; + if (strict && (dir > 0) != (pos == where.ch)) return null; + var style = cm.getTokenTypeAt(Pos(where.line, pos + 1)); + + var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config); + if (found == null) return null; + return {from: Pos(where.line, pos), to: found && found.pos, + match: found && found.ch == match.charAt(0), forward: dir > 0}; + } + + // bracketRegex is used to specify which type of bracket to scan + // should be a regexp, e.g. /[[\]]/ + // + // Note: If "where" is on an open bracket, then this bracket is ignored. + // + // Returns false when no bracket was found, null when it reached + // maxScanLines and gave up + function scanForBracket(cm, where, dir, style, config) { + var maxScanLen = (config && config.maxScanLineLength) || 10000; + var maxScanLines = (config && config.maxScanLines) || 1000; + + var stack = []; + var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/; + var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1) + : Math.max(cm.firstLine() - 1, where.line - maxScanLines); + for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) { + var line = cm.getLine(lineNo); + if (!line) continue; + var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1; + if (line.length > maxScanLen) continue; + if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0); + for (; pos != end; pos += dir) { + var ch = line.charAt(pos); + if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) { + var match = matching[ch]; + if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch); + else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch}; + else stack.pop(); + } + } + } + return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null; + } + + function matchBrackets(cm, autoclear, config) { + // Disable brace matching in long lines, since it'll cause hugely slow updates + var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000; + var marks = [], ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config); + if (match && cm.getLine(match.from.line).length <= maxHighlightLen) { + var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style})); + if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen) + marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style})); + } + } + + if (marks.length) { + // Kludge to work around the IE bug from issue #1193, where text + // input stops going to the textare whever this fires. + if (ie_lt8 && cm.state.focused) cm.focus(); + + var clear = function() { + cm.operation(function() { + for (var i = 0; i < marks.length; i++) marks[i].clear(); + }); + }; + if (autoclear) setTimeout(clear, 800); + else return clear; + } + } + + var currentlyHighlighted = null; + function doMatchBrackets(cm) { + cm.operation(function() { + if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;} + currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets); + }); + } + + CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchBrackets); + if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;} + } + if (val) { + cm.state.matchBrackets = typeof val == "object" ? val : {}; + cm.on("cursorActivity", doMatchBrackets); + } + }); + + CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);}); + CodeMirror.defineExtension("findMatchingBracket", function(pos, strict, config){ + return findMatchingBracket(this, pos, strict, config); + }); + CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){ + return scanForBracket(this, pos, dir, style, config); + }); +}); + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + var defaults = { + pairs: "()[]{}''\"\"", + triples: "", + explode: "[]{}" + }; + + var Pos = CodeMirror.Pos; + + CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.removeKeyMap(keyMap); + cm.state.closeBrackets = null; + } + if (val) { + cm.state.closeBrackets = val; + cm.addKeyMap(keyMap); + } + }); + + function getOption(conf, name) { + if (name == "pairs" && typeof conf == "string") return conf; + if (typeof conf == "object" && conf[name] != null) return conf[name]; + return defaults[name]; + } + + var bind = defaults.pairs + "`"; + var keyMap = {Backspace: handleBackspace, Enter: handleEnter}; + for (var i = 0; i < bind.length; i++) + keyMap["'" + bind.charAt(i) + "'"] = handler(bind.charAt(i)); + + function handler(ch) { + return function(cm) { return handleChar(cm, ch); }; + } + + function getConfig(cm) { + var deflt = cm.state.closeBrackets; + if (!deflt) return null; + var mode = cm.getModeAt(cm.getCursor()); + return mode.closeBrackets || deflt; + } + + function handleBackspace(cm) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + for (var i = ranges.length - 1; i >= 0; i--) { + var cur = ranges[i].head; + cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); + } + } + + function handleEnter(cm) { + var conf = getConfig(cm); + var explode = conf && getOption(conf, "explode"); + if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; + + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + cm.operation(function() { + cm.replaceSelection("\n\n", null); + cm.execCommand("goCharLeft"); + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var line = ranges[i].head.line; + cm.indentLine(line, null, true); + cm.indentLine(line + 1, null, true); + } + }); + } + + function contractSelection(sel) { + var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; + return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), + head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))}; + } + + function handleChar(cm, ch) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var pos = pairs.indexOf(ch); + if (pos == -1) return CodeMirror.Pass; + var triples = getOption(conf, "triples"); + + var identical = pairs.charAt(pos + 1) == ch; + var ranges = cm.listSelections(); + var opening = pos % 2 == 0; + + var type; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], cur = range.head, curType; + var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); + if (opening && !range.empty()) { + curType = "surround"; + } else if ((identical || !opening) && next == ch) { + if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) + curType = "skipThree"; + else + curType = "skip"; + } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && + cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch && + (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != ch)) { + curType = "addFour"; + } else if (identical) { + if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, ch)) curType = "both"; + else return CodeMirror.Pass; + } else if (opening && (cm.getLine(cur.line).length == cur.ch || + isClosingBracket(next, pairs) || + /\s/.test(next))) { + curType = "both"; + } else { + return CodeMirror.Pass; + } + if (!type) type = curType; + else if (type != curType) return CodeMirror.Pass; + } + + var left = pos % 2 ? pairs.charAt(pos - 1) : ch; + var right = pos % 2 ? ch : pairs.charAt(pos + 1); + cm.operation(function() { + if (type == "skip") { + cm.execCommand("goCharRight"); + } else if (type == "skipThree") { + for (var i = 0; i < 3; i++) + cm.execCommand("goCharRight"); + } else if (type == "surround") { + var sels = cm.getSelections(); + for (var i = 0; i < sels.length; i++) + sels[i] = left + sels[i] + right; + cm.replaceSelections(sels, "around"); + sels = cm.listSelections().slice(); + for (var i = 0; i < sels.length; i++) + sels[i] = contractSelection(sels[i]); + cm.setSelections(sels); + } else if (type == "both") { + cm.replaceSelection(left + right, null); + cm.triggerElectric(left + right); + cm.execCommand("goCharLeft"); + } else if (type == "addFour") { + cm.replaceSelection(left + left + left + left, "before"); + cm.execCommand("goCharRight"); + } + }); + } + + function isClosingBracket(ch, pairs) { + var pos = pairs.lastIndexOf(ch); + return pos > -1 && pos % 2 == 1; + } + + function charsAround(cm, pos) { + var str = cm.getRange(Pos(pos.line, pos.ch - 1), + Pos(pos.line, pos.ch + 1)); + return str.length == 2 ? str : null; + } + + // Project the token type that will exists after the given char is + // typed, and use it to determine whether it would cause the start + // of a string token. + function enteringString(cm, pos, ch) { + var line = cm.getLine(pos.line); + var token = cm.getTokenAt(pos); + if (/\bstring2?\b/.test(token.type)) return false; + var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4); + stream.pos = stream.start = token.start; + for (;;) { + var type1 = cm.getMode().token(stream, token.state); + if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1); + stream.start = stream.pos; + } + } +}); + +var h,aa=aa||{},ba=this;function ca(a){return"string"==typeof a}function ea(){} +function fa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null"; +else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function ha(a){return"array"==fa(a)}function ia(a){var b=fa(a);return"array"==b||"object"==b&&"number"==typeof a.length}function ja(a){return"function"==fa(a)}function ka(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function la(a){return a[ma]||(a[ma]=++qa)}var ma="closure_uid_"+(1E9*Math.random()>>>0),qa=0;function ra(a,b,c){return a.call.apply(a.bind,arguments)} +function sa(a,b,c){if(!a)throw Error();if(2/g,Ha=/"/g,Ia=/'/g,Ja=/\x00/g,Ca=/[\x00&<>"']/;function Ka(a,b){return ab?1:0} +function La(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};function Ma(a){if(Error.captureStackTrace)Error.captureStackTrace(this,Ma);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}ya(Ma,Error);Ma.prototype.name="CustomError";function Na(a,b){b.unshift(a);Ma.call(this,za.apply(null,b));b.shift()}ya(Na,Ma);Na.prototype.name="AssertionError";function Oa(a,b){throw new Na("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var Pa=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(ca(a))return ca(b)&&1==b.length?a.indexOf(b,0):-1;for(var c=0;cb?null:ca(a)?a.charAt(b):a[b]}function Va(a){return Array.prototype.concat.apply([],arguments)}function Xa(a){var b=a.length;if(0b?1:a2*this.Ba&&kb(this),!0):!1}; +function kb(a){if(a.Ba!=a.jb.length){for(var b=0,c=0;bb)throw Error("Bad port number "+b);a.Hc=b}else a.Hc=null} +function xb(a,b,c){sb(a);a.hc=c?zb(b,!0):b}function yb(a,b,c){sb(a);b instanceof Ab?(a.Db=b,a.Db.Df(a.Kb)):(c||(b=Bb(b,Hb)),a.Db=new Ab(b,a.Kb))}h.getQuery=function(){return this.Db.toString()};function Ib(a,b,c){sb(a);ha(c)||(c=[String(c)]);Jb(a.Db,b,c)}h.removeParameter=function(a){sb(this);this.Db.remove(a);return this};h.isReadOnly=function(){return this.eg};function sb(a){if(a.eg)throw Error("Tried to modify a read-only Uri");}h.Df=function(a){this.Kb=a;this.Db&&this.Db.Df(a)}; +function zb(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}function Bb(a,b,c){return ca(a)?(a=encodeURI(a).replace(b,Kb),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Kb(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var Db=/[#\/\?@]/g,Fb=/[#\?:]/g,Eb=/[#\?]/g,Hb=/[#\?@]/g,Gb=/#/g;function Ab(a,b){this.Ba=this.Ia=null;this.yb=a||null;this.Kb=!!b} +function Lb(a){a.Ia||(a.Ia=new jb,a.Ba=0,a.yb&&ob(a.yb,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}h=Ab.prototype;h.bg=function(){Lb(this);return this.Ba};h.add=function(a,b){Lb(this);this.yb=null;a=Mb(this,a);var c=this.Ia.get(a);c||this.Ia.set(a,c=[]);c.push(b);this.Ba+=1;return this};h.remove=function(a){Lb(this);a=Mb(this,a);return this.Ia.Td(a)?(this.yb=null,this.Ba-=this.Ia.get(a).length,this.Ia.remove(a)):!1};h.clear=function(){this.Ia=this.yb=null;this.Ba=0}; +h.Vc=function(){Lb(this);return 0==this.Ba};h.Td=function(a){Lb(this);a=Mb(this,a);return this.Ia.Td(a)};h.forEach=function(a,b){Lb(this);this.Ia.forEach(function(c,d){Qa(c,function(c){a.call(b,c,d,this)},this)},this)};h.Ab=function(){Lb(this);for(var a=this.Ia.Rb(),b=this.Ia.Ab(),c=[],d=0;da){var b=Ob[a];if(b)return b}b=new Nb([a|0],0>a?-1:0);-128<=a&&128>a&&(Ob[a]=b);return b}function Qb(a){if(isNaN(a)||!isFinite(a))return Rb;if(0>a)return Qb(-a).ja();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=Tb;return new Nb(b,0)}var Tb=4294967296,Rb=Pb(0),Ub=Pb(1),Vb=Pb(16777216);h=Nb.prototype; +h.le=function(){return 0a||36>>0).toString(a);c=e;if(c.ab())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};function Wb(a,b){return 0>b?0:bthis.compare(a)};h.xf=function(a){return 0>=this.compare(a)}; +h.compare=function(a){a=this.vc(a);return a.na()?-1:a.ab()?0:1};h.ja=function(){return this.yf().add(Ub)};h.add=function(a){for(var b=Math.max(this.pa.length,a.pa.length),c=[],d=0,e=0;e<=b;e++){var f=d+(Wb(this,e)&65535)+(Wb(a,e)&65535),g=(f>>>16)+(Wb(this,e)>>>16)+(Wb(a,e)>>>16);d=g>>>16;f&=65535;g&=65535;c[e]=g<<16|f}return new Nb(c,c[c.length-1]&-2147483648?-1:0)};h.vc=function(a){return this.add(a.ja())}; +h.multiply=function(a){if(this.ab()||a.ab())return Rb;if(this.na())return a.na()?this.ja().multiply(a.ja()):this.ja().multiply(a).ja();if(a.na())return this.multiply(a.ja()).ja();if(this.yd(Vb)&&a.yd(Vb))return Qb(this.$b()*a.$b());for(var b=this.pa.length+a.pa.length,c=[],d=0;d<2*b;d++)c[d]=0;for(d=0;d>>16,g=Wb(this,d)&65535,k=Wb(a,e)>>>16,l=Wb(a,e)&65535;c[2*d+2*e]+=g*l;Yb(c,2*d+2*e);c[2*d+2*e+1]+=f*l;Yb(c,2*d+2*e+1);c[2*d+2*e+ +1]+=g*k;Yb(c,2*d+2*e+1);c[2*d+2*e+2]+=f*k;Yb(c,2*d+2*e+2)}for(d=0;d>>16,a[b]&=65535,b++} +function Xb(a,b){if(b.ab())throw Error("division by zero");if(a.ab())return Rb;if(a.na())return b.na()?Xb(a.ja(),b.ja()):Xb(a.ja(),b).ja();if(b.na())return Xb(a,b.ja()).ja();if(30=e?1:Math.pow(2,e-48);f=Qb(d);for(var g=f.multiply(b);g.na()||g.Ce(a);)d-=e,f=Qb(d),g=f.multiply(b);f.ab()&&(f=Ub);c=c.add(f);a=a.vc(g)}return c}h.yf=function(){for(var a=this.pa.length,b=[],c=0;c>5;a%=32;for(var c=this.pa.length+b+(0>>32-a:Wb(this,e-b);return new Nb(d,this.ob)}; +h.Ic=function(a){var b=a>>5;a%=32;for(var c=this.pa.length-b,d=[],e=0;e>>a|Wb(this,e+b+1)<<32-a:Wb(this,e+b);return new Nb(d,this.ob)};function Zb(a,b){null!=a&&this.append.apply(this,arguments)}h=Zb.prototype;h.yc="";h.set=function(a){this.yc=""+a};h.append=function(a,b,c){this.yc+=String(a);if(null!=b)for(var d=1;da?-1:0)})}function fc(a){a|=0;return-128<=a&&128>a?ec(a):new bc(a,0>a?-1:0)}function gc(a){return isNaN(a)?ec(0):a<=-ic?jc():a+1>=ic?kc():0>a?gc(-a).ja():new bc(a%lc|0,a/lc|0)}function mc(a,b){return new bc(a,b)} +function nc(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=gc(Math.pow(b,f)),d=d.multiply(f).add(gc(g))):(d=d.multiply(c),d=d.add(gc(g)))}return d} +var lc=4294967296,ic=lc*lc/2;function kc(){return ac(dc,oc,function(){return mc(-1,2147483647)})}function jc(){return ac(dc,pc,function(){return mc(0,-2147483648)})}function qc(){return ac(dc,rc,function(){return fc(16777216)})}h=bc.prototype;h.le=function(){return this.Ca};h.$b=function(){return this.Ha*lc+(0<=this.Ca?this.Ca:lc+this.Ca)}; +h.toString=function(a){a=a||10;if(2>a||36>>0).toString(a);b=e;if(b.ab())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};h.ab=function(){return 0==this.Ha&&0==this.Ca};h.na=function(){return 0>this.Ha}; +h.wf=function(){return 1==(this.Ca&1)};h.mb=function(a){return this.Ha==a.Ha&&this.Ca==a.Ca};h.yd=function(a){return 0>this.compare(a)};h.xf=function(a){return 0>=this.compare(a)};h.Ce=function(a){return 0>>16,c=this.Ha&65535,d=this.Ca>>>16,e=a.Ha>>>16,f=a.Ha&65535,g=a.Ca>>>16;a=(this.Ca&65535)+(a.Ca&65535);g=(a>>>16)+(d+g);d=g>>>16;d+=c+f;b=(d>>>16)+(b+e)&65535;return mc((g&65535)<<16|a&65535,b<<16|d&65535)};h.vc=function(a){return this.add(a.ja())}; +h.multiply=function(a){if(this.ab()||a.ab())return ec(0);if(this.mb(jc()))return a.wf()?jc():ec(0);if(a.mb(jc()))return this.wf()?jc():ec(0);if(this.na())return a.na()?this.ja().multiply(a.ja()):this.ja().multiply(a).ja();if(a.na())return this.multiply(a.ja()).ja();if(this.yd(qc())&&a.yd(qc()))return gc(this.$b()*a.$b());var b=this.Ha>>>16,c=this.Ha&65535,d=this.Ca>>>16,e=this.Ca&65535,f=a.Ha>>>16,g=a.Ha&65535,k=a.Ca>>>16;a=a.Ca&65535;var l=e*a;var p=(l>>>16)+d*a;var q=p>>>16;p=(p&65535)+e*k;q+=p>>> +16;q+=c*a;var r=q>>>16;q=(q&65535)+d*k;r+=q>>>16;q=(q&65535)+e*g;r=r+(q>>>16)+(b*a+c*k+d*g+e*f)&65535;return mc((p&65535)<<16|l&65535,r<<16|q&65535)}; +function sc(a,b){if(b.ab())throw Error("division by zero");if(a.ab())return ec(0);if(a.mb(jc())){if(b.mb(ec(1))||b.mb(ec(-1)))return jc();if(b.mb(jc()))return ec(1);var c=sc(a.Ic(1),b).shiftLeft(1);if(c.mb(ec(0)))return b.na()?ec(1):ec(-1);a=a.vc(b.multiply(c));return c.add(sc(a,b))}if(b.mb(jc()))return ec(0);if(a.na())return b.na()?sc(a.ja(),b.ja()):sc(a.ja(),b).ja();if(b.na())return sc(a,b.ja()).ja();for(var d=ec(0);a.uf(b);){c=Math.max(1,Math.floor(a.$b()/b.$b()));var e=Math.ceil(Math.log(c)/Math.LN2); +e=48>=e?1:Math.pow(2,e-48);for(var f=gc(c),g=f.multiply(b);g.na()||g.Ce(a);)c-=e,f=gc(c),g=f.multiply(b);f.ab()&&(f=ec(1));d=d.add(f);a=a.vc(g)}return d}h.yf=function(){return mc(~this.Ca,~this.Ha)};h.and=function(a){return mc(this.Ca&a.Ca,this.Ha&a.Ha)};h.or=function(a){return mc(this.Ca|a.Ca,this.Ha|a.Ha)};h.xor=function(a){return mc(this.Ca^a.Ca,this.Ha^a.Ha)};h.shiftLeft=function(a){a&=63;if(0==a)return this;var b=this.Ca;return 32>a?mc(b<>>32-a):mc(0,b<a?mc(this.Ca>>>a|b<<32-a,b>>a):mc(b>>a-32,0<=b?0:-1)};function tc(a,b){b&=63;if(0==b)return a;var c=a.Ha;return 32>b?mc(a.Ca>>>b|c<<32-b,c>>>b):32==b?mc(c,0):mc(c>>>b-32,0)}var oc=1,pc=2,rc=6;var uc={},vc={},wc;if("undefined"===typeof uc||"undefined"===typeof vc||"undefined"===typeof m)var m={};if("undefined"===typeof uc||"undefined"===typeof vc||"undefined"===typeof xc)var xc=null;if("undefined"===typeof uc||"undefined"===typeof vc||"undefined"===typeof yc)var yc=null;var zc=!0,Ac=null;if("undefined"===typeof uc||"undefined"===typeof vc||"undefined"===typeof Bc)var Bc=null;function Cc(){return new n(null,5,[Dc,!0,Ec,!0,Fc,!1,Gc,!1,Hc,null],null)} +function Kc(){zc=!1;xc=function(){return console.log.apply(console,Xa(arguments))};yc=function(){return console.error.apply(console,Xa(arguments))}}function t(a){return null!=a&&!1!==a}function Lc(a){return null==a}function Mc(a){return a instanceof Array}function Nc(a){return"number"===typeof a}function Oc(a){return null==a?!0:!1===a?!0:!1}function Pc(a){return null!=a}function Qc(a){return ca(a)}function Rc(a){return"string"===typeof a&&1===a.length}function Sc(){return!0} +function Tc(a,b){return a[fa(null==b?null:b)]?!0:a._?!0:!1}function Uc(a){return null==a?null:a.constructor}function Vc(a,b){var c=Uc(b);c=t(t(c)?c.Ib:c)?c.rb:fa(b);return Error(["No protocol method ",a," defined for type ",c,": ",b].join(""))}function Wc(a){var b=a.rb;return t(b)?b:u.a(a)} +var Xc="undefined"!==typeof Symbol&&"function"===fa(Symbol)?Symbol.iterator:"@@iterator",Yc={_RBRACE_:"}",_COLON_:":",_BANG_:"!",_QMARK_:"?",_BSLASH_:"\\\\",_SLASH_:"/",_PERCENT_:"%",_PLUS_:"+",_SHARP_:"#",_LBRACE_:"{",_BAR_:"|",_LBRACK_:"[",_EQ_:"\x3d",_:"-",_TILDE_:"~",_RBRACK_:"]",_GT_:"\x3e",_SINGLEQUOTE_:"'",_CIRCA_:"@",_AMPERSAND_:"\x26",_DOUBLEQUOTE_:'\\"',_CARET_:"^",_LT_:"\x3c",_STAR_:"*"},Zc=null; +function $c(a){for(var b=a.length,c=Array(b),d=0;;)if(d>>16&65535)*d+c*(b>>>16&65535)<<16>>>0)|0};function se(a){a=re(a|0,-862048943);return re(a<<15|a>>>-15,461845907)}function te(a,b){a=(a|0)^(b|0);return re(a<<13|a>>>-13,5)+-430675100|0}function ue(a,b){a=(a|0)^b;a=re(a^a>>>16,-2048144789);a=re(a^a>>>13,-1028477387);return a^a>>>16} +function ve(a){a:{var b=1;for(var c=0;;)if(b>2)}function Be(a){return a instanceof y} +function Ce(a,b){if(a.kb===b.kb)return 0;if(t(Oc(a.eb)?b.eb:!1))return-1;if(t(a.eb)){if(Oc(b.eb))return 1;var c=Za(a.eb,b.eb);return 0===c?Za(a.name,b.name):c}return Za(a.name,b.name)}function y(a,b,c,d,e){this.eb=a;this.name=b;this.kb=c;this.dd=d;this.bc=e;this.o=2154168321;this.I=4096}h=y.prototype;h.toString=function(){return this.kb};h.equiv=function(a){return this.J(null,a)};h.J=function(a,b){return b instanceof y?this.kb===b.kb:!1}; +h.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return z.g(c,this);case 3:return z.h(c,this,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.g=function(a,c){return z.g(c,this)};a.h=function(a,c,d){return z.h(c,this,d)};return a}();h.apply=function(a,b){return this.call.apply(this,[this].concat($c(b)))};h.a=function(a){return z.g(a,this)};h.g=function(a,b){return z.h(a,this,b)};h.R=function(){return this.bc}; +h.U=function(a,b){return new y(this.eb,this.name,this.kb,this.dd,b)};h.X=function(){var a=this.dd;return null!=a?a:this.dd=a=Ae(ve(this.name),ye(this.eb))};h.Kd=function(){return this.name};h.Ld=function(){return this.eb};h.T=function(a,b){return Yd(b,this.kb)};var De=function De(a){switch(arguments.length){case 1:return De.a(arguments[0]);case 2:return De.g(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",u.a(arguments.length)].join(""));}}; +De.a=function(a){for(;;){if(a instanceof y)return a;if("string"===typeof a){var b=a.indexOf("/");return 1>b?De.g(null,a):De.g(a.substring(0,b),a.substring(b+1,a.length))}if(a instanceof A)a=a.cb;else throw Error("no conversion to symbol");}};De.g=function(a,b){var c=null!=a?[u.a(a),"/",u.a(b)].join(""):b;return new y(a,b,c,null,null)};De.L=2;function Ee(a){return null!=a?a.I&131072||m===a.xi?!0:a.I?!1:Tc(ne,a):Tc(ne,a)} +function D(a){if(null==a)return null;if(null!=a&&(a.o&8388608||m===a.Sf))return a.Z(null);if(Mc(a)||"string"===typeof a)return 0===a.length?null:new E(a,0,null);if(Tc(Rd,a))return Sd(a);throw Error([u.a(a)," is not ISeqable"].join(""));}function G(a){if(null==a)return null;if(null!=a&&(a.o&64||m===a.K))return a.va(null);a=D(a);return null==a?null:od(a)}function Fe(a){return null!=a?null!=a&&(a.o&64||m===a.K)?a.Fa(null):(a=D(a))?a.Fa(null):Ge:Ge} +function H(a){return null==a?null:null!=a&&(a.o&128||m===a.Md)?a.ya(null):D(Fe(a))}var I=function I(a){switch(arguments.length){case 1:return I.a(arguments[0]);case 2:return I.g(arguments[0],arguments[1]);default:for(var c=[],d=arguments.length,e=0;;)if(e=d)return-1;!(0c&&(c+=d,c=0>c?0:c);for(;;)if(cc?d+c:c;for(;;)if(0<=c){if(I.g(bf(a,c),b))return c;--c}else return-1}function df(a,b){this.l=a;this.D=b} +df.prototype.ia=function(){return this.Da?0:a};h.oc=function(){var a=this.ba(null);return 0b)throw Error("Index out of bounds");a:for(;;){if(null==a)throw Error("Index out of bounds"); +if(0===b){if(D(a)){a=G(a);break a}throw Error("Index out of bounds");}if(af(a)){a=md.g(a,b);break a}if(D(a))a=H(a),--b;else throw Error("Index out of bounds");}return a}if(Tc(ld,a))return md.g(a,b);throw Error(["nth not supported on this type ",u.a(Wc(Uc(a)))].join(""));} +function N(a,b){if("number"!==typeof b)throw Error("Index argument to nth must be a number.");if(null==a)return null;if(null!=a&&(a.o&16||m===a.Rf))return a.ea(null,b,null);if(Mc(a))return-1b?null:qf(a,b);if(Tc(ld,a))return md.h(a,b,null);throw Error(["nth not supported on this type ",u.a(Wc(Uc(a)))].join(""));} +var z=function z(a){switch(arguments.length){case 2:return z.g(arguments[0],arguments[1]);case 3:return z.h(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",u.a(arguments.length)].join(""));}};z.g=function(a,b){return null==a?null:null!=a&&(a.o&256||m===a.bh)?a.Y(null,b):Mc(a)?null!=b&&ba:a instanceof Nb?a.na():a instanceof bc?a.na():!1}function Wf(a){return Sf(a)?!(0>a):a instanceof Nb?Oc(a.na()):a instanceof bc?Oc(a.na()):!1}function Xf(a){return"number"===typeof a} +function Yf(a){return"number"===typeof a}function Zf(a,b){return z.h(a,b,Kf)===Kf?!1:!0}function $f(a,b){return(null!=a?m===a.Bc||(a.Qd?0:Tc(wd,a)):Tc(wd,a))?xd(a,b):null!=a&&Cf(a)&&Zf(a,b)?new ag(b,z.g(a,b),null):null} +function bg(a,b){if(a===b)return 0;if(null==a)return-1;if(null==b)return 1;if("number"===typeof a){if("number"===typeof b)return Za(a,b);throw Error(["Cannot compare ",u.a(a)," to ",u.a(b)].join(""));}if(null!=a?a.I&2048||m===a.cc||(a.I?0:Tc(ee,a)):Tc(ee,a))return fe(a,b);if("string"!==typeof a&&!Mc(a)&&!0!==a&&!1!==a||Uc(a)!==Uc(b))throw Error(["Cannot compare ",u.a(a)," to ",u.a(b)].join(""));return Za(a,b)} +function cg(a,b){var c=K(a),d=K(b);if(cd)a=1;else if(0===c)a=0;else a:for(d=0;;){var e=bg(bf(a,d),bf(b,d));if(0===e&&d+1>1&1431655765;a=(a&858993459)+(a>>2&858993459);return 16843009*(a+(a>>4)&252645135)>>24} +function tg(a){switch(arguments.length){case 1:return!0;case 2:return Od(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(dd:e))c[d]=a.next(),d+=1;else return Ug(new Rg(c,0,d),Bh.a?Bh.a(a):Bh.call(null,a))}else return null},null,null)};function Ch(a){this.buffer=Ah;this.tb=xh;this.nf=!1;this.ac=null;this.Ff=a;this.Uh=!1} +Ch.prototype.step=function(){if(this.tb!==xh)return!0;for(;;)if(this.tb===xh)if(this.buffer.Vc()){if(this.nf)return!1;if(this.Ff.ia()){if(this.Uh)var a=S(this.ac,gf(null,this.Ff.next()));else a=this.Ff.next(),a=this.ac.g?this.ac.g(null,a):this.ac.call(null,null,a);Te(a)&&(this.ac.a?this.ac.a(null):this.ac.call(null,null),this.nf=!0)}else this.ac.a?this.ac.a(null):this.ac.call(null,null),this.nf=!0}else this.tb=this.buffer.remove();else return!0};Ch.prototype.ia=function(){return this.step()}; +Ch.prototype.next=function(){if(this.ia()){var a=this.tb;this.tb=xh;return a}throw Error("No such element");};Ch.prototype.remove=function(){return Error("Unsupported operation")};Ch.prototype[Xc]=function(){return Ie(this)}; +function Dh(a,b){var c=new Ch(b);c.ac=function(){var b=function(){function a(a,b){c.buffer=c.buffer.add(b);return a}var b=null;b=function(b,c){switch(arguments.length){case 0:return null;case 1:return b;case 2:return a.call(this,b,c)}throw Error("Invalid arity: "+arguments.length);};b.j=function(){return null};b.a=function(a){return a};b.g=a;return b}();return a.a?a.a(b):a.call(null,b)}();return c}function Eh(a){return Of(a)?a:(a=D(a))?a:Ge} +function Fh(a,b){for(;;){if(null==D(b))return!0;var c=G(b);c=a.a?a.a(c):a.call(null,c);if(t(c))b=H(b);else return!1}}function Gh(a,b){for(;;)if(b=D(b)){var c=G(b);c=a.a?a.a(c):a.call(null,c);if(t(c))return c;b=H(b)}else return null}function Hh(a){if(Sf(a))return 0===(a&1);throw Error(["Argument must be an integer: ",u.a(a)].join(""));} +function Ih(a){return function(){function b(b,c){return Oc(a.g?a.g(b,c):a.call(null,b,c))}function c(b){return Oc(a.a?a.a(b):a.call(null,b))}function d(){return Oc(a.j?a.j():a.call(null))}var e=null,f=function(){function b(a,b,d){var e=null;if(2a?0:a-1>>>5<<5}function si(a,b,c){for(;;){if(0===b)return c;var d=oi(a);d.l[0]=c;c=d;b-=5}} +var ti=function ti(a,b,c,d){var f=pi(c),g=a.C-1>>>b&31;5===b?f.l[g]=d:(c=c.l[g],null!=c?(b-=5,a=ti.H?ti.H(a,b,c,d):ti.call(null,a,b,c,d)):a=si(null,b-5,d),f.l[g]=a);return f};function ui(a,b){throw Error(["No item ",u.a(a)," in vector of length ",u.a(b)].join(""));}function vi(a,b){if(b>=qi(a))return a.ka;var c=a.root;for(a=a.shift;;)if(0>>a&31];a=d}else return c.l} +var wi=function wi(a,b,c,d,e){var g=pi(c);if(0===b)g.l[d&31]=e;else{var k=d>>>b&31;b-=5;c=c.l[k];a=wi.P?wi.P(a,b,c,d,e):wi.call(null,a,b,c,d,e);g.l[k]=a}return g},xi=function xi(a,b,c){var e=a.C-2>>>b&31;if(5=this.C)a=new E(this.ka,0,null);else{a:{a=this.root;for(var b=this.shift;;)if(0this.C-qi(this)){a=this.ka.length;for(var c=Array(a+1),d=0;;)if(d>>5>1<c)return new T(null,c,5,U,a,null);b=32;for(var d=(new T(null,32,5,U,a.slice(0,32),null)).ld(null);;)if(bb)return null;a=this.start+b;return ab||this.end<=this.start+b?ui(b,this.end-this.start):md.g(this.Ja,this.start+b)};h.ea=function(a,b,c){return 0>b||this.end<=this.start+b?c:md.h(this.Ja,this.start+b,c)}; +h.Ob=function(a,b,c){a=this.start+b;if(0>b||this.end+1<=a)throw Error(["Index ",u.a(b)," out of bounds [0,",u.a(this.ba(null)),"]"].join(""));b=this.w;c=rf.h(this.Ja,a,c);var d=this.end;a+=1;return Ji(b,c,this.start,d>a?d:a,null)};h.hb=function(){return null!=this.Ja&&m===this.Ja.ef?zi(this.Ja,this.start,this.end):new uh(this)};h.R=function(){return this.w};h.gb=function(){return new Ii(this.w,this.Ja,this.start,this.end,this.F)};h.ba=function(){return this.end-this.start}; +h.pc=function(){return this.start===this.end?null:md.g(this.Ja,this.end-1)};h.qc=function(){if(this.start===this.end)throw Error("Can't pop empty vector");return Ji(this.w,this.Ja,this.start,this.end-1,null)};h.oc=function(){return this.start!==this.end?new ef(this,this.end-this.start-1,null):null};h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)};h.ha=function(){return Jd(nf,this.w)}; +h.za=function(a,b){return null!=this.Ja&&m===this.Ja.ef?Ai(this.Ja,b,this.start,this.end):Ve(this,b)};h.Aa=function(a,b,c){return null!=this.Ja&&m===this.Ja.ef?Bi(this.Ja,b,c,this.start,this.end):We(this,b,c)};h.fb=function(a,b,c){if("number"===typeof b)return this.Ob(null,b,c);throw Error("Subvec's key for assoc must be a number.");};h.Z=function(){var a=this;return function d(c){return c===a.end?null:gf(md.g(a.Ja,c),new Og(null,function(){return d(c+1)},null,null))}(a.start)}; +h.U=function(a,b){return b===this.w?this:Ji(b,this.Ja,this.start,this.end,this.F)};h.ga=function(a,b){return Ji(this.w,Gd(this.Ja,this.end,b),this.start,this.end+1,null)};h.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.O(null,c);case 3:return this.ea(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.g=function(a,c){return this.O(null,c)};a.h=function(a,c,d){return this.ea(null,c,d)};return a}(); +h.apply=function(a,b){return this.call.apply(this,[this].concat($c(b)))};h.a=function(a){return this.O(null,a)};h.g=function(a,b){return this.ea(null,a,b)};Ii.prototype[Xc]=function(){return Ie(this)};function Ji(a,b,c,d,e){for(;;)if(b instanceof Ii)c=b.start+c,d=b.start+d,b=b.Ja;else{if(!Gf(b))throw Error("v must satisfy IVector");if(0>c||dK(b))throw Error("Index out of bounds");return new Ii(a,b,c,d,e)}} +function Ki(a,b){if(null==b)throw Error("Assert failed: (and (not (nil? start)) (not (nil? end)))");return Ji(null,a,0,b|0,null)}function Li(a,b){return a===b.qa?b:new ni(a,$c(b.l))}var Mi=function Mi(a,b,c,d){c=Li(a.root.qa,c);var f=a.C-1>>>b&31;if(5===b)a=d;else{var g=c.l[f];null!=g?(b-=5,a=Mi.H?Mi.H(a,b,g,d):Mi.call(null,a,b,g,d)):a=si(a.root.qa,b-5,d)}c.l[f]=a;return c};function Ci(a,b,c,d){this.C=a;this.shift=b;this.root=c;this.ka=d;this.I=88;this.o=275}h=Ci.prototype; +h.od=function(a,b){if(this.root.qa){if(32>this.C-qi(this))this.ka[this.C&31]=b;else{a=new ni(this.root.qa,this.ka);var c=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];c[0]=b;this.ka=c;this.C>>>5>1<>>d&31;d=k(d-5,g.l[f]);g.l[f]=d}return g}(a.shift,a.root)}();a.root=d}return a}if(b===a.C)return a.od(null,c);throw Error(["Index ",u.a(b)," out of bounds for TransientVector of length",u.a(a.C)].join(""));}throw Error("assoc! after persistent!");} +h.ba=function(){if(this.root.qa)return this.C;throw Error("count after persistent!");};h.O=function(a,b){if(this.root.qa)return(0<=b&&b=a)return new n(this.w,this.C-1,c,null);I.g(b,this.l[d])?d+=2:(c[e]=this.l[d],c[e+1]=this.l[d+1],e+=2,d+=2)}}else return this}; +h.fb=function(a,b,c){a=Yi(this.l,b);if(-1===a){if(this.Cb?4:2*(b+1));If(this.l,0,c,0,2*b);return new oj(a,this.ua,c)};h.ae=function(){return pj(this.l,0,null)};h.Xc=function(a,b){return mj(this.l,a,b)};h.Uc=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.ua&e))return d;var f=sg(this.ua&e-1);e=this.l[2*f];f=this.l[2*f+1];return null==e?f.Uc(a+5,b,c,d):ij(c,e)?f:d}; +h.Ub=function(a,b,c,d,e,f){var g=1<<(c>>>b&31),k=sg(this.ua&g-1);if(0===(this.ua&g)){var l=sg(this.ua);if(2*l>>b&31]=qj.Ub(a,b+5,c,d,e,f);for(e=d=0;;)if(32>d)0=== +(this.ua>>>d&1)?d+=1:(k[d]=null!=this.l[e]?qj.Ub(a,b+5,ze(this.l[e]),this.l[e],this.l[e+1],f):this.l[e+1],e+=2,d+=1);else break;return new rj(a,l+1,k)}b=Array(2*(l+4));If(this.l,0,b,0,2*k);b[2*k]=d;b[2*k+1]=e;If(this.l,2*k,b,2*(k+1),2*(l-k));f.v=!0;a=this.Pc(a);a.l=b;a.ua|=g;return a}l=this.l[2*k];g=this.l[2*k+1];if(null==l)return l=g.Ub(a,b+5,c,d,e,f),l===g?this:lj(this,a,2*k+1,l);if(ij(d,l))return e===g?this:lj(this,a,2*k+1,e);f.v=!0;f=b+5;b=ze(l);if(b===c)e=new sj(null,b,2,[l,g,d,e]);else{var p= +new hj;e=qj.Ub(a,f,b,l,g,p).Ub(a,f,c,d,e,p)}d=2*k;k=2*k+1;a=this.Pc(a);a.l[d]=null;a.l[k]=e;return a}; +h.Tb=function(a,b,c,d,e){var f=1<<(b>>>a&31),g=sg(this.ua&f-1);if(0===(this.ua&f)){var k=sg(this.ua);if(16<=k){g=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];g[b>>>a&31]=qj.Tb(a+5,b,c,d,e);for(d=c=0;;)if(32>c)0===(this.ua>>>c&1)?c+=1:(g[c]=null!=this.l[d]?qj.Tb(a+5,ze(this.l[d]),this.l[d],this.l[d+1],e):this.l[d+1],d+=2,c+=1);else break;return new rj(null,k+1,g)}a=Array(2*(k+1));If(this.l, +0,a,0,2*g);a[2*g]=c;a[2*g+1]=d;If(this.l,2*g,a,2*(g+1),2*(k-g));e.v=!0;return new oj(null,this.ua|f,a)}var l=this.l[2*g];f=this.l[2*g+1];if(null==l)return k=f.Tb(a+5,b,c,d,e),k===f?this:new oj(null,this.ua,jj(this.l,2*g+1,k));if(ij(c,l))return d===f?this:new oj(null,this.ua,jj(this.l,2*g+1,d));e.v=!0;e=this.ua;k=this.l;a+=5;var p=ze(l);if(p===b)c=new sj(null,p,2,[l,f,c,d]);else{var q=new hj;c=qj.Tb(a,p,l,f,q).Tb(a,b,c,d,q)}a=2*g;g=2*g+1;d=$c(k);d[a]=null;d[g]=c;return new oj(null,e,d)}; +h.$d=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.ua&e))return d;var f=sg(this.ua&e-1);e=this.l[2*f];f=this.l[2*f+1];return null==e?f.$d(a+5,b,c,d):ij(c,e)?new ag(e,f,null):d};h.be=function(a,b,c){var d=1<<(b>>>a&31);if(0===(this.ua&d))return this;var e=sg(this.ua&d-1),f=this.l[2*e],g=this.l[2*e+1];return null==f?(a=g.be(a+5,b,c),a===g?this:null!=a?new oj(null,this.ua,jj(this.l,2*e+1,a)):this.ua===d?null:new oj(null,this.ua^d,kj(this.l,e))):ij(c,f)?new oj(null,this.ua^d,kj(this.l,e)):this}; +h.hb=function(){return new nj(this.l)};var qj=new oj(null,0,[]);function tj(a){this.l=a;this.D=0;this.Wb=null}tj.prototype.ia=function(){for(var a=this.l.length;;){if(null!=this.Wb&&this.Wb.ia())return!0;if(this.D>>a&31];return null!=e?e.Uc(a+5,b,c,d):d}; +h.Ub=function(a,b,c,d,e,f){var g=c>>>b&31,k=this.l[g];if(null==k)return a=lj(this,a,g,qj.Ub(a,b+5,c,d,e,f)),a.C+=1,a;b=k.Ub(a,b+5,c,d,e,f);return b===k?this:lj(this,a,g,b)};h.Tb=function(a,b,c,d,e){var f=b>>>a&31,g=this.l[f];if(null==g)return new rj(null,this.C+1,jj(this.l,f,qj.Tb(a+5,b,c,d,e)));a=g.Tb(a+5,b,c,d,e);return a===g?this:new rj(null,this.C,jj(this.l,f,a))};h.$d=function(a,b,c,d){var e=this.l[b>>>a&31];return null!=e?e.$d(a+5,b,c,d):d}; +h.be=function(a,b,c){var d=b>>>a&31,e=this.l[d];if(null!=e){a=e.be(a+5,b,c);if(a===e)d=this;else if(null==a)if(8>=this.C)a:{e=this.l;a=e.length;b=Array(2*(this.C-1));c=0;for(var f=1,g=0;;)if(ca?d:ij(c,this.l[a])?this.l[a+1]:d}; +h.Ub=function(a,b,c,d,e,f){if(c===this.rc){b=vj(this.l,this.C,d);if(-1===b){if(this.l.length>2*this.C)return b=2*this.C,c=2*this.C+1,a=this.Pc(a),a.l[b]=d,a.l[c]=e,f.v=!0,a.C+=1,a;c=this.l.length;b=Array(c+2);If(this.l,0,b,0,c);b[c]=d;b[c+1]=e;f.v=!0;d=this.C+1;a===this.qa?(this.l=b,this.C=d,a=this):a=new sj(this.qa,this.rc,d,b);return a}return this.l[b+1]===e?this:lj(this,a,b+1,e)}return(new oj(a,1<<(this.rc>>>b&31),[null,this,null,null])).Ub(a,b,c,d,e,f)}; +h.Tb=function(a,b,c,d,e){return b===this.rc?(a=vj(this.l,this.C,c),-1===a?(a=2*this.C,b=Array(a+2),If(this.l,0,b,0,a),b[a]=c,b[a+1]=d,e.v=!0,new sj(null,this.rc,this.C+1,b)):I.g(this.l[a+1],d)?this:new sj(null,this.rc,this.C,jj(this.l,a+1,d))):(new oj(null,1<<(this.rc>>>a&31),[null,this])).Tb(a,b,c,d,e)};h.$d=function(a,b,c,d){a=vj(this.l,this.C,c);return 0>a?d:ij(c,this.l[a])?new ag(this.l[a],this.l[a+1],null):d}; +h.be=function(a,b,c){a=vj(this.l,this.C,c);return-1===a?this:1===this.C?null:new sj(null,this.rc,this.C-1,kj(this.l,rg(a)))};h.hb=function(){return new nj(this.l)};function wj(a,b,c,d,e){this.w=a;this.Xb=b;this.D=c;this.S=d;this.F=e;this.o=32374988;this.I=0}h=wj.prototype;h.toString=function(){return qe(this)};h.equiv=function(a){return this.J(null,a)}; +h.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return J(this,a,0);case 2:return J(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.a=function(a){return J(this,a,0)};a.g=function(a,c){return J(this,a,c)};return a}(); +h.lastIndexOf=function(){function a(a){return cf(this,a,K(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return cf(this,b,d)}throw Error("Invalid arity: "+arguments.length);};b.a=a;b.g=function(a,b){return cf(this,a,b)};return b}();h.R=function(){return this.w};h.ya=function(){return null==this.S?pj(this.Xb,this.D+2,null):pj(this.Xb,this.D,H(this.S))};h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)}; +h.ha=function(){return Ge};h.za=function(a,b){return hf(b,this)};h.Aa=function(a,b,c){return jf(b,c,this)};h.va=function(){return null==this.S?new ag(this.Xb[this.D],this.Xb[this.D+1],null):G(this.S)};h.Fa=function(){var a=null==this.S?pj(this.Xb,this.D+2,null):pj(this.Xb,this.D,H(this.S));return null!=a?a:Ge};h.Z=function(){return this};h.U=function(a,b){return b===this.w?this:new wj(b,this.Xb,this.D,this.S,this.F)};h.ga=function(a,b){return gf(b,this)};wj.prototype[Xc]=function(){return Ie(this)}; +function pj(a,b,c){if(null==c)for(c=a.length;;)if(bthis.C?K(H(this))+1:this.C}; +h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)};h.ha=function(){return Ge};h.za=function(a,b){return hf(b,this)};h.Aa=function(a,b,c){return jf(b,c,this)};h.va=function(){var a=this.stack;return null==a?null:Dd(a)};h.Fa=function(){var a=G(this.stack);a=Dj(this.Lc?a.right:a.left,H(this.stack),this.Lc);return null!=a?new Ej(null,a,this.Lc,this.C-1,null):Ge};h.Z=function(){return this}; +h.U=function(a,b){return b===this.w?this:new Ej(b,this.stack,this.Lc,this.C,this.F)};h.ga=function(a,b){return gf(b,this)};Ej.prototype[Xc]=function(){return Ie(this)};function Fj(a,b,c){return new Ej(null,Dj(a,null,b),b,c,null)}function Gj(a,b,c,d){return c instanceof Hj?c.left instanceof Hj?new Hj(c.key,c.v,c.left.mc(),new Ij(a,b,c.right,d)):c.right instanceof Hj?new Hj(c.right.key,c.right.v,new Ij(c.key,c.v,c.left,c.right.left),new Ij(a,b,c.right.right,d)):new Ij(a,b,c,d):new Ij(a,b,c,d)} +function Jj(a,b,c,d){return d instanceof Hj?d.right instanceof Hj?new Hj(d.key,d.v,new Ij(a,b,c,d.left),d.right.mc()):d.left instanceof Hj?new Hj(d.left.key,d.left.v,new Ij(a,b,c,d.left.left),new Ij(d.key,d.v,d.left.right,d.right)):new Ij(a,b,c,d):new Ij(a,b,c,d)} +function Kj(a,b,c,d){if(c instanceof Hj)return new Hj(a,b,c.mc(),d);if(d instanceof Ij)return Jj(a,b,c,d.he());if(d instanceof Hj&&d.left instanceof Ij)return new Hj(d.left.key,d.left.v,new Ij(a,b,c,d.left.left),Jj(d.key,d.v,d.left.right,d.right.he()));throw Error("red-black tree invariant violation");} +function Lj(a,b,c,d){if(d instanceof Hj)return new Hj(a,b,c,d.mc());if(c instanceof Ij)return Gj(a,b,c.he(),d);if(c instanceof Hj&&c.right instanceof Ij)return new Hj(c.right.key,c.right.v,Gj(c.key,c.v,c.left.he(),c.right.left),new Ij(a,b,c.right.right,d));throw Error("red-black tree invariant violation");} +var Mj=function Mj(a,b,c){var e=null!=a.left?function(){var e=a.left;return Mj.h?Mj.h(e,b,c):Mj.call(null,e,b,c)}():c;if(Te(e))return e;var f=function(){var c=a.key,f=a.v;return b.h?b.h(e,c,f):b.call(null,e,c,f)}();if(Te(f))return f;if(null!=a.right){var g=a.right;return Mj.h?Mj.h(g,b,f):Mj.call(null,g,b,f)}return f};function Ij(a,b,c,d){this.key=a;this.v=b;this.left=c;this.right=d;this.F=null;this.o=166619935;this.I=0}h=Ij.prototype;h.Bc=m; +h.nc=function(a,b){switch(b){case 0:return new ag(0,this.key,null);case 1:return new ag(1,this.v,null);default:return null}};h.lastIndexOf=function(){function a(a){return cf(this,a,K(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return cf(this,b,d)}throw Error("Invalid arity: "+arguments.length);};b.a=a;b.g=function(a,b){return cf(this,a,b)};return b}(); +h.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return J(this,a,0);case 2:return J(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.a=function(a){return J(this,a,0)};a.g=function(a,c){return J(this,a,c)};return a}();h.Jf=function(a){return a.Mf(this)};h.he=function(){return new Hj(this.key,this.v,this.left,this.right)};h.mc=function(){return this};h.If=function(a){return a.Lf(this)};h.replace=function(a,b,c,d){return new Ij(a,b,c,d)}; +h.Lf=function(a){return new Ij(a.key,a.v,this,a.right)};h.Mf=function(a){return new Ij(a.key,a.v,a.left,this)};h.Xc=function(a,b){return Mj(this,a,b)};h.Y=function(a,b){return this.ea(null,b,null)};h.N=function(a,b,c){return this.ea(null,b,c)};h.O=function(a,b){if(0===b)return this.key;if(1===b)return this.v;throw Error("Index out of bounds");};h.ea=function(a,b,c){return 0===b?this.key:1===b?this.v:c};h.Ob=function(a,b,c){return(new T(null,2,5,U,[this.key,this.v],null)).Ob(null,b,c)};h.R=function(){return null}; +h.ba=function(){return 2};h.kf=function(){return this.key};h.lf=function(){return this.v};h.pc=function(){return this.v};h.qc=function(){return new T(null,1,5,U,[this.key],null)};h.oc=function(){return new E([this.v,this.key],0,null)};h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)};h.ha=function(){return null};h.za=function(a,b){return Ve(this,b)};h.Aa=function(a,b,c){return We(this,b,c)}; +h.fb=function(a,b,c){return rf.h(new T(null,2,5,U,[this.key,this.v],null),b,c)};h.Z=function(){return new E([this.key,this.v],0,null)};h.U=function(a,b){return Jd(new T(null,2,5,U,[this.key,this.v],null),b)};h.ga=function(a,b){return new T(null,3,5,U,[this.key,this.v,b],null)}; +h.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.O(null,c);case 3:return this.ea(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.g=function(a,c){return this.O(null,c)};a.h=function(a,c,d){return this.ea(null,c,d)};return a}();h.apply=function(a,b){return this.call.apply(this,[this].concat($c(b)))};h.a=function(a){return this.O(null,a)};h.g=function(a,b){return this.ea(null,a,b)};Ij.prototype[Xc]=function(){return Ie(this)}; +function Hj(a,b,c,d){this.key=a;this.v=b;this.left=c;this.right=d;this.F=null;this.o=166619935;this.I=0}h=Hj.prototype;h.Bc=m;h.nc=function(a,b){switch(b){case 0:return new ag(0,this.key,null);case 1:return new ag(1,this.v,null);default:return null}}; +h.lastIndexOf=function(){function a(a){return cf(this,a,K(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return cf(this,b,d)}throw Error("Invalid arity: "+arguments.length);};b.a=a;b.g=function(a,b){return cf(this,a,b)};return b}(); +h.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return J(this,a,0);case 2:return J(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.a=function(a){return J(this,a,0)};a.g=function(a,c){return J(this,a,c)};return a}();h.Jf=function(a){return new Hj(this.key,this.v,this.left,a)};h.he=function(){throw Error("red-black tree invariant violation");};h.mc=function(){return new Ij(this.key,this.v,this.left,this.right)}; +h.If=function(a){return new Hj(this.key,this.v,a,this.right)};h.replace=function(a,b,c,d){return new Hj(a,b,c,d)};h.Lf=function(a){return this.left instanceof Hj?new Hj(this.key,this.v,this.left.mc(),new Ij(a.key,a.v,this.right,a.right)):this.right instanceof Hj?new Hj(this.right.key,this.right.v,new Ij(this.key,this.v,this.left,this.right.left),new Ij(a.key,a.v,this.right.right,a.right)):new Ij(a.key,a.v,this,a.right)}; +h.Mf=function(a){return this.right instanceof Hj?new Hj(this.key,this.v,new Ij(a.key,a.v,a.left,this.left),this.right.mc()):this.left instanceof Hj?new Hj(this.left.key,this.left.v,new Ij(a.key,a.v,a.left,this.left.left),new Ij(this.key,this.v,this.left.right,this.right)):new Ij(a.key,a.v,a.left,this)};h.Xc=function(a,b){return Mj(this,a,b)};h.Y=function(a,b){return this.ea(null,b,null)};h.N=function(a,b,c){return this.ea(null,b,c)}; +h.O=function(a,b){if(0===b)return this.key;if(1===b)return this.v;throw Error("Index out of bounds");};h.ea=function(a,b,c){return 0===b?this.key:1===b?this.v:c};h.Ob=function(a,b,c){return(new T(null,2,5,U,[this.key,this.v],null)).Ob(null,b,c)};h.R=function(){return null};h.ba=function(){return 2};h.kf=function(){return this.key};h.lf=function(){return this.v};h.pc=function(){return this.v};h.qc=function(){return new T(null,1,5,U,[this.key],null)}; +h.oc=function(){return new E([this.v,this.key],0,null)};h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)};h.ha=function(){return null};h.za=function(a,b){return Ve(this,b)};h.Aa=function(a,b,c){return We(this,b,c)};h.fb=function(a,b,c){return rf.h(new T(null,2,5,U,[this.key,this.v],null),b,c)};h.Z=function(){return new E([this.key,this.v],0,null)};h.U=function(a,b){return Jd(new T(null,2,5,U,[this.key,this.v],null),b)}; +h.ga=function(a,b){return new T(null,3,5,U,[this.key,this.v,b],null)};h.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.O(null,c);case 3:return this.ea(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.g=function(a,c){return this.O(null,c)};a.h=function(a,c,d){return this.ea(null,c,d)};return a}();h.apply=function(a,b){return this.call.apply(this,[this].concat($c(b)))};h.a=function(a){return this.O(null,a)}; +h.g=function(a,b){return this.ea(null,a,b)};Hj.prototype[Xc]=function(){return Ie(this)}; +var Nj=function Nj(a,b,c,d,e){if(null==b)return new Hj(c,d,null,null);var g=function(){var d=b.key;return a.g?a.g(c,d):a.call(null,c,d)}();if(0===g)return e[0]=b,null;if(0>g)return g=function(){var g=b.left;return Nj.P?Nj.P(a,g,c,d,e):Nj.call(null,a,g,c,d,e)}(),null!=g?b.If(g):null;g=function(){var g=b.right;return Nj.P?Nj.P(a,g,c,d,e):Nj.call(null,a,g,c,d,e)}();return null!=g?b.Jf(g):null},Oj=function Oj(a,b){if(null==a)return b;if(null==b)return a;if(a instanceof Hj){if(b instanceof Hj){var d=function(){var d= +a.right,f=b.left;return Oj.g?Oj.g(d,f):Oj.call(null,d,f)}();return d instanceof Hj?new Hj(d.key,d.v,new Hj(a.key,a.v,a.left,d.left),new Hj(b.key,b.v,d.right,b.right)):new Hj(a.key,a.v,a.left,new Hj(b.key,b.v,d,b.right))}return new Hj(a.key,a.v,a.left,function(){var d=a.right;return Oj.g?Oj.g(d,b):Oj.call(null,d,b)}())}if(b instanceof Hj)return new Hj(b.key,b.v,function(){var d=b.left;return Oj.g?Oj.g(a,d):Oj.call(null,a,d)}(),b.right);d=function(){var d=a.right,f=b.left;return Oj.g?Oj.g(d,f):Oj.call(null, +d,f)}();return d instanceof Hj?new Hj(d.key,d.v,new Ij(a.key,a.v,a.left,d.left),new Ij(b.key,b.v,d.right,b.right)):Kj(a.key,a.v,a.left,new Ij(b.key,b.v,d,b.right))},Pj=function Pj(a,b,c,d){if(null!=b){var f=function(){var d=b.key;return a.g?a.g(c,d):a.call(null,c,d)}();if(0===f)return d[0]=b,Oj(b.left,b.right);if(0>f)return f=function(){var f=b.left;return Pj.H?Pj.H(a,f,c,d):Pj.call(null,a,f,c,d)}(),null!=f||null!=d[0]?b.left instanceof Ij?Kj(b.key,b.v,f,b.right):new Hj(b.key,b.v,f,b.right):null; +f=function(){var f=b.right;return Pj.H?Pj.H(a,f,c,d):Pj.call(null,a,f,c,d)}();return null!=f||null!=d[0]?b.right instanceof Ij?Lj(b.key,b.v,b.left,f):new Hj(b.key,b.v,b.left,f):null}return null},Qj=function Qj(a,b,c,d){var f=b.key,g=a.g?a.g(c,f):a.call(null,c,f);return 0===g?b.replace(f,d,b.left,b.right):0>g?b.replace(f,b.v,function(){var f=b.left;return Qj.H?Qj.H(a,f,c,d):Qj.call(null,a,f,c,d)}(),b.right):b.replace(f,b.v,b.left,function(){var f=b.right;return Qj.H?Qj.H(a,f,c,d):Qj.call(null,a,f, +c,d)}())};function Rj(a,b,c,d,e){this.wb=a;this.kc=b;this.C=c;this.w=d;this.F=e;this.o=418776847;this.I=8192}h=Rj.prototype;h.Bc=m;h.nc=function(a,b){return Sj(this,b)};h.forEach=function(a){for(var b=D(this),c=null,d=0,e=0;;)if(ed?c.left:c.right}else return null}h.has=function(a){return Zf(this,a)};h.Y=function(a,b){return this.N(null,b,null)};h.N=function(a,b,c){a=Sj(this,b);return null!=a?a.v:c}; +h.Cc=function(a,b,c){return null!=this.kc?Ue(Mj(this.kc,b,c)):c};h.R=function(){return this.w};h.gb=function(){return new Rj(this.wb,this.kc,this.C,this.w,this.F)};h.ba=function(){return this.C};h.oc=function(){return 0=this.count)throw Error("-drop-first of empty chunk");return new jk(this.start+this.step,this.step,this.count-1)};function kk(a,b,c){this.D=a;this.end=b;this.step=c}kk.prototype.ia=function(){return 0this.end};kk.prototype.next=function(){var a=this.D;this.D+=this.step;return a};function lk(a,b,c,d,e,f,g){this.w=a;this.start=b;this.end=c;this.step=d;this.Ea=e;this.Id=f;this.F=g;this.o=32375006;this.I=140800}h=lk.prototype;h.toString=function(){return qe(this)}; +h.equiv=function(a){return this.J(null,a)};h.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return J(this,a,0);case 2:return J(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.a=function(a){return J(this,a,0)};a.g=function(a,c){return J(this,a,c)};return a}(); +h.lastIndexOf=function(){function a(a){return cf(this,a,K(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return cf(this,b,d)}throw Error("Invalid arity: "+arguments.length);};b.a=a;b.g=function(a,b){return cf(this,a,b)};return b}();function mk(a){if(null==a.Ea){var b=a.ba(null);32this.end&&0===this.step)return this.start;throw Error("Index out of bounds");};h.ea=function(a,b,c){return 0<=b&&bthis.end&&0===this.step?this.start:c};h.hb=function(){return new kk(this.start,this.end,this.step)};h.R=function(){return this.w};h.gb=function(){return new lk(this.w,this.start,this.end,this.step,this.Ea,this.Id,this.F)}; +h.ya=function(){return 0this.end?new lk(null,this.start+this.step,this.end,this.step,null,null,null):null};h.ba=function(){return Math.ceil((this.end-this.start)/this.step)};h.X=function(){var a=this.F;return null!=a?a:this.F=a=Le(this)};h.J=function(a,b){return ff(this,b)};h.ha=function(){return Ge};h.za=function(a,b){return Ve(this,b)}; +h.Aa=function(a,b,c){for(a=this.start;;)if(0this.end){c=b.g?b.g(c,a):b.call(null,c,a);if(Te(c))return v(c);a+=this.step}else return c};h.va=function(){return this.start};h.Fa=function(){var a=this.ya(null);return null==a?Ge:a};h.Z=function(){return this};h.se=function(){mk(this);return this.Ea};h.kd=function(){mk(this);return null==this.Id?Ge:this.Id};h.U=function(a,b){return b===this.w?this:new lk(b,this.start,this.end,this.step,this.Ea,this.Id,this.F)}; +h.ga=function(a,b){return gf(b,this)};h.gf=function(){return D(this.kd(null))};lk.prototype[Xc]=function(){return Ie(this)};function nk(a,b){if("number"!==typeof a)throw Error("Assert failed: (number? n)");return new Og(null,function(){var c=D(b);return c?gf(G(c),nk(a,Wh(a,c))):null},null,null)}function ok(a){return ce(bd(function(a,c){return ah.h(a,c,z.h(a,c,0)+1)},ae(oh),a))} +function pk(a,b){return function(){function c(c,d,e){return new T(null,2,5,U,[a.h?a.h(c,d,e):a.call(null,c,d,e),b.h?b.h(c,d,e):b.call(null,c,d,e)],null)}function d(c,d){return new T(null,2,5,U,[a.g?a.g(c,d):a.call(null,c,d),b.g?b.g(c,d):b.call(null,c,d)],null)}function e(c){return new T(null,2,5,U,[a.a?a.a(c):a.call(null,c),b.a?b.a(c):b.call(null,c)],null)}function f(){return new T(null,2,5,U,[a.j?a.j():a.call(null),b.j?b.j():b.call(null)],null)}var g=null,k=function(){function c(a,b,c,e){var f=null; +if(3Ac)return Yd(a,"#");Yd(a,c);if(0===Hc.a(f))D(g)&&Yd(a,function(){var a=wk.a(f);return t(a)?a:"..."}());else{if(D(g)){var l=G(g);b.h?b.h(l,a,f):b.call(null,l,a,f)}for(var p=H(g),q=Hc.a(f)-1;;)if(!p||null!=q&&0===q){D(p)&&0===q&&(Yd(a,d),Yd(a,function(){var a=wk.a(f);return t(a)?a:"..."}()));break}else{Yd(a,d);var r=G(p);c=a;g=f;b.h?b.h(r,c,g):b.call(null,r,c,g);var w=H(p);c=q-1;p=w;q=c}}return Yd(a,e)}finally{Ac=k}} +function xk(a,b){b=D(b);for(var c=null,d=0,e=0;;)if(e=b||b>=2+K(a))return mf.g(Fi(gf("",Uh.g(u,D(a)))),"");if(t(ug?Od(1,b):tg.call(null,1,b)))return new T(null,1,5,U,[a],null);if(t(ug?Od(2,b):tg.call(null,2,b)))return new T(null,2,5,U,["",a],null);b-=2;return mf.g(Fi(gf("",Ki(Fi(Uh.g(u,D(a))),b))),a.substring(b))}function wt(a,b){return xt(a,b,0)} +function xt(a,b,c){if("/(?:)/"===u.a(b))b=vt(a,c);else if(1>c)b=Fi(u.a(a).split(b));else a:for(var d=c,e=nf;;){if(1===d){b=mf.g(e,a);break a}var f=tk(b,a);if(null!=f){var g=a.indexOf(f);f=a.substring(g+K(f));--d;e=mf.g(e,a.substring(0,g));a=f}else{b=mf.g(e,a);break a}}if(0===c&&1parseFloat(bu)){au=String(du);break a}}au=bu}var eu={}; +function fu(a){return ac(eu,a,function(){for(var b=0,c=Aa(String(au)).split("."),d=Aa(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f=b.af&&b.cancel())}this.jg?this.jg.call(this.Yf,this):this.Ef=!0;this.ud||(a=new cv(this),dv(this),ev(this,!1,a))}};bv.prototype.Xf=function(a,b){this.$e=!1;ev(this,a,b)}; +function ev(a,b,c){a.ud=!0;a.uc=c;a.Xd=!b;fv(a)}function dv(a){if(a.ud){if(!a.Ef)throw new gv(a);a.Ef=!1}}function hv(a,b,c,d){a.Oe.push([b,c,d]);a.ud&&fv(a)}bv.prototype.then=function(a,b,c){var d,e,f=new Ju(function(a,b){d=a;e=b});hv(this,d,function(a){a instanceof cv?f.cancel():e(a)});return f.then(a,b,c)};tu(bv);function iv(a){return Ra(a.Oe,function(a){return ja(a[1])})} +function fv(a){if(a.Re&&a.ud&&iv(a)){var b=a.Re,c=jv[b];c&&(ba.clearTimeout(c.Tc),delete jv[b]);a.Re=0}a.bb&&(a.bb.af--,delete a.bb);b=a.uc;for(var d=c=!1;a.Oe.length&&!a.$e;){var e=a.Oe.shift(),f=e[0],g=e[1];e=e[2];if(f=a.Xd?g:f)try{var k=f.call(e||a.Yf,b);void 0!==k&&(a.Xd=a.Xd&&(k==b||k instanceof Error),a.uc=b=k);if(uu(b)||"function"===typeof ba.Promise&&b instanceof ba.Promise)d=!0,a.$e=!0}catch(l){b=l,a.Xd=!0,iv(a)||(c=!0)}}a.uc=b;d&&(k=ua(a.Xf,a,!0),d=ua(a.Xf,a,!1),b instanceof bv?(hv(b,k, +d),b.Mg=!0):b.then(k,d));c&&(b=new kv(b),jv[b.Tc]=b,a.Re=b.Tc)}function gv(){Ma.call(this)}ya(gv,Ma);gv.prototype.message="Deferred has already fired";gv.prototype.name="AlreadyCalledError";function cv(){Ma.call(this)}ya(cv,Ma);cv.prototype.message="Deferred was canceled";cv.prototype.name="CanceledError";function kv(a){this.Tc=ba.setTimeout(ua(this.ji,this),0);this.ze=a}kv.prototype.ji=function(){delete jv[this.Tc];throw this.ze;};var jv={};function lv(a,b){var c=b||{};b=c.document||document;var d=lu(a),e=document.createElement("SCRIPT"),f={Dg:e,Jc:void 0},g=new bv(mv,f),k=null,l=null!=c.timeout?c.timeout:5E3;0=a.keyCode)a.keyCode=-1}catch(b){}};var Ev="closure_listenable_"+(1E6*Math.random()|0),Fv=0;function Gv(a,b,c,d,e){this.listener=a;this.proxy=null;this.src=b;this.type=c;this.capture=!!d;this.sb=e;this.key=++Fv;this.Ad=this.qe=!1}function Hv(a){a.Ad=!0;a.listener=null;a.proxy=null;a.src=null;a.sb=null};function Iv(a){this.src=a;this.Lb={};this.Qe=0}Iv.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.Lb[f];a||(a=this.Lb[f]=[],this.Qe++);var g=Jv(a,b,d,e);-1d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.currentTarget;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;!b.$c&&0<=e;e--){b.currentTarget=d[e];var f=Zv(d[e],a,!0,b);c=c&&f}for(e=0;!b.$c&&e>>0);function Qv(a){if(ja(a))return a;a[aw]||(a[aw]=function(b){return a.handleEvent(b)});return a[aw]};function bw(){xv.call(this);this.Qc=new Iv(this);this.Kg=this;this.qg=null}ya(bw,xv);bw.prototype[Ev]=!0;bw.prototype.addEventListener=function(a,b,c,d){Ov(this,a,b,c,d)};bw.prototype.removeEventListener=function(a,b,c,d){Xv(this,a,b,c,d)}; +bw.prototype.dispatchEvent=function(a){var b,c=this.qg;if(c)for(b=[];c;c=c.qg)b.push(c);c=this.Kg;var d=a.type||a;if(ca(a))a=new Cv(a,c);else if(a instanceof Cv)a.target=a.target||c;else{var e=a;a=new Cv(d,c);fb(a,e)}e=!0;if(b)for(var f=b.length-1;!a.$c&&0<=f;f--){var g=a.currentTarget=b[f];e=cw(g,d,!0,a)&&e}a.$c||(g=a.currentTarget=c,e=cw(g,d,!0,a)&&e,a.$c||(e=cw(g,d,!1,a)&&e));if(b)for(f=0;!a.$c&&f=nw(this).value)for(ja(b)&&(b=b()),a=new fw(a,String(b),this.gg),c&&(a.$f=c),c="log:"+a.Th,(b=ba.console)&&b.timeStamp&&b.timeStamp(c),(b=ba.msWriteProfilerMark)&&b(c),c=this;c;){var d=c,e=a;if(d.cg)for(var f=0;b=d.cg[f];f++)b(e);c=c.getParent()}};h.info=function(a,b){this.log(kw,a,b)};var ow={},pw=null; +function qw(a){pw||(pw=new hw(""),ow[""]=pw,pw.Eg(lw));var b;if(!(b=ow[a])){b=new hw(a);var c=a.lastIndexOf("."),d=a.substr(c+1);c=qw(a.substr(0,c));c.df||(c.df={});c.df[d]=b;b.bb=c;ow[a]=b}return b};function rw(a,b){a&&a.log(mw,b,void 0)};function sw(){}sw.prototype.Pf=null;function tw(a){var b;(b=a.Pf)||(b={},uw(a)&&(b[0]=!0,b[1]=!0),b=a.Pf=b);return b};var vw;function ww(){}ya(ww,sw);function xw(a){return(a=uw(a))?new ActiveXObject(a):new XMLHttpRequest}function uw(a){if(!a.dg&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],c=0;cthis.Cd){var a=this.S.charAt(this.Cd);this.Cd+=1;return a}return null}; +gx.prototype.Sd=function(){return this.Cg>this.Cd?this.S.charAt(this.Cd):null};function hx(a){var b=Wg(1);this.vg=a;this.W=b;this.Nb=this.bf=1}hx.prototype.Oc=function(){var a=this.Nba?'..."':'"',d=b.length;return['"',u.a(b.substring(0,ad?"...}":"}")});xl(lx,Pr,function(a,b){return kx(a,b,"#{","}")});xl(lx,dp,function(a,b){return kx(a,b,"[","]")});xl(lx,vl,function(a,b){return Kk(M([Uc(b)]))}); +function sx(a){return lx.g?lx.g(!1,a):lx.call(null,!1,a)};function tx(a,b,c){b=new n(null,2,[Ao,gn,Sl,b],null);a=ix(a)?rf.s(b,Yn,fx(a),M([iq,dx(a),tq,ex(a)])):b;var d=Yn.a(a);b=iq.a(a);var e=tq.a(a);d=t(d)?[u.a(d)," "].join(""):null;b=t(b)?["[line ",u.a(b),", col ",u.a(e),"]"].join(""):null;c=jh(u,d,b,t(t(d)?d:b)?" ":null,c);throw new Cl(c,a,null);}function ux(a,b){return tx(a,Wl,M([S(u,b)]))}function vx(a,b){return tx(a,fp,M([S(u,b)]))}function wx(a,b){return tx(a,Yr,M([S(u,b)]))} +function xx(a,b,c,d){ux(a,M(["The map literal starting with ",sx(G(d)),t(b)?[" on line ",u.a(b)," column ",u.a(c)].join(""):null," contains ",K(d)," form(s). Map literals must contain an even number of forms."]))}function yx(a,b,c){return ux(a,M(["Invalid ",Ng(b),": ",c,"."]))}function zx(a,b,c){return ux(a,M(["Invalid character: ",c," found while reading ",Ng(b),"."]))} +function Ax(a,b){a:{var c=Zo instanceof A?Zo.cb:null;switch(c){case "regex":c='#"';break a;case "string":c='"';break a;default:throw Error(["No matching clause: ",u.a(c)].join(""));}}return wx(a,M(["Unexpected EOF reading ",Ng(Zo)," starting ",hh(u,c,b),"."]))}function Bx(a,b){return vx(a,M(["Invalid digit ",b," in unicode character."]))}function Cx(a){return ux(a,M(["Octal escape sequence must be in range [0, 377]."]))} +function Dx(a,b){b=function(a){return function f(a){return new Og(null,function(){for(var b=a;;)if(b=D(b)){if(Hf(b)){var c=he(b),e=K(c),p=Sg(e);a:for(var q=0;;)if(qc?(b=c.toString(16),a=ux(a,M(["Invalid character literal \\u",b,"."]))):a=b,a;if(0==b.lastIndexOf("o",0)){--c;if(3a.yc.length)a=a.append("0");else{a=a.toString();break a}a=zy(a);return t(a)?a:0}();p=(I.g(p,"-")?-1:1)*(60*function(){var a=zy(q);return t(a)?a:0}()+function(){var a=zy(r);return t(a)?a:0}());return new T(null,8,5,U,[w,Ay(1,x,12,"timestamp month field must be in range 1..12"),Ay(1,a,function(){var a=0===(w%4+4)%4&&(0!==(w%100+100)%100||0===(w%400+400)%400);return xy.g?xy.g(x,a):xy.call(null,x,a)}(),"timestamp day field must be in range 1..last day in month"),Ay(0,b, +23,"timestamp hour field must be in range 0..23"),Ay(0,c,59,"timestamp minute field must be in range 0..59"),Ay(0,C,I.g(c,59)?60:59,"timestamp second field must be in range 0..60"),Ay(0,B,999,"timestamp millisecond field must be in range 0..999"),p],null)} +var Cy=Qh(null),Dy=Qh(Yj.s(M([new n(null,4,[zo,function(a){if("string"===typeof a){var b=By(a);if(t(b)){a=N(b,0);var c=N(b,1),d=N(b,2),e=N(b,3),f=N(b,4),g=N(b,5),k=N(b,6);b=N(b,7);b=new Date(Date.UTC(a,c-1,d,e,f,g,k)-6E4*b)}else throw Error(["Unrecognized date/time syntax: ",u.a(a)].join(""));return b}throw Error("Instance literal expects a string for its timestamp.");},Ml,function(a){if("string"===typeof a)return zl(a);throw Error("UUID literal expects a string as its representation.");},$o,function(a){if(Gf(a))return hi.g(Ri, +a);throw Error("Queue literal expects a vector for its elements.");},co,function(a){if(Gf(a)){var b=[];a=D(a);for(var c=null,d=0,e=0;;)if(e>=8);b[c++]=e}if(!Rw)for(Rw={},a=0;65>a;a++)Rw[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(a);a=Rw;c=[];for(d=0;d>2;f=(f&3)<<4|g>>4;g=(g&15)<<2|l>>6;l&=63;k||(l=64,e||(g=64));c.push(a[p],a[f],a[g],a[l])}b=c.join("")}else b=null;return b} +function Gy(a){for(var b=[],c=arguments.length,d=0;;)if(d>2)}var Py={},Qy=0; +function Ry(a){var b=0;if(null!=a.forEach)a.forEach(function(a,c){b=(b+(Sy(c)^Sy(a)))%4503599627370496});else for(var c=Jy(a),d=0;da.size)return!1;a.Hf++;return 32=a.length){if(b){var d=a;a=[];for(b=0;b>(-2*b&6)):0)d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".indexOf(d); +c=f}a=c.length;b=new Uint8Array(a);for(d=0;dd;d+=2,c-=8)b|=parseInt(a.substring(d,d+2),16)<d;d+=2,c-=8)e|=parseInt(a.substring(d,d+2),16)<d;d+=2,c-=8)b|=parseInt(a.substring(d, +d+2),16)<d;d+=2,c-=8)e|=parseInt(a.substring(d,d+2),16)<a.length&&this.Mb.Sc){d=[];for(c=1;cc.length&&this.Mb.Sc){var f=[];for(d=0;d=b.length&&a.hd.Sc){f=[];for(e=0;e>8-d%1*8)){c=a.charCodeAt(d+=.75);if(255this.head?(OA(this.l,this.ka,a,0,this.l.length-this.ka),OA(this.l,0,a,this.l.length-this.ka,this.head),this.ka=0,this.head=this.length,this.l=a):this.ka===this.head?(this.head=this.ka=0,this.l=a):null};function RA(a,b){for(var c=a.length,d=0;;)if(da)){a+=1;continue}break}XA=!1;return 0d.ic.length))throw Error(["Assert failed: ", +["No more than ",u.a(1024)," pending puts are allowed on a single channel. Consider using a windowed buffer."].join(""),"\n(\x3c (.-length puts) impl/MAX-QUEUE-SIZE)"].join(""));QA(d.ic,new fB(c,b))}return null}; +hB.prototype.mf=function(a,b){var c=this;if(b.qb(null)){if(null!=c.W&&0c.cd.length))throw Error(["Assert failed: ",["No more than ",u.a(1024)," pending takes are allowed on a single channel."].join(""),"\n(\x3c (.-length takes) impl/MAX-QUEUE-SIZE)"].join(""));QA(c.cd,b)}}return null}; +hB.prototype.Od=function(){var a=this;if(!a.closed)for(a.closed=!0,t(function(){var b=a.W;return t(b)?0===a.ic.length:b}())&&(a.Gb.a?a.Gb.a(a.W):a.Gb.call(null,a.W));;){var b=a.cd.pop();if(null!=b){if(b.qb(null)){var c=b.lb(null),d=t(function(){var b=a.W;return t(b)?0c)return a;a:for(;;){var e=cMath.random()&&15>d)d+=1;else break a;if(d>this.level){for(var e=this.level+1;;)if(e<=d+1)c[e]=this.Ec,e+=1;else break;this.level=d}for(a=xB(a,b,Array(d));;)return 0<=this.level?(c=c[0].forward,a.forward[0]=c[0],c[0]=a):null}; +zB.prototype.remove=function(a){var b=Array(15),c=yB(this.Ec,a,this.level,b);c=0===c.forward.length?null:c.forward[0];if(null!=c&&c.key===a){for(a=0;;)if(a<=this.level){var d=b[a].forward;c===(ad)return c===b.Ec?null:c;var e;a:for(e=c;;){e=d=a)break a}null!=e?(--d,c=e):--d}}zB.prototype.Z=function(){return function c(b){return new Og(null,function(){return null==b?null:gf(new T(null,2,5,U,[b.key,b.v],null),c(b.forward[0]))},null,null)}(this.Ec.forward[0])};zB.prototype.T=function(a,b,c){return vk(b,function(a){return vk(b,Dk,""," ","",c,a)},"{",", ","}",c,this)}; +var BB=new zB;function CB(a){var b=(new Date).valueOf()+a,c=AB(b);c=t(t(c)?c.key=e?Ge:new lk(null,0,e,1,null,null,null)),p=Y(1);aB(function(){var b=function(){function b(b){var f=b[1];if(7===f)return b[2]=null,b[1]=8,V;if(1===f)return b[2]=null,b[1]=2,V;if(4===f){var q=b[7];b[1]=t(qim.a(a)&&Zf(ek(c),d)}function iG(a,b){return rf.h(a,b,function(){var c=z.g(a,b);return t(c)?c:0}()+1)} +function jG(a,b,c,d){if(t(a)){var e=TF(a);if(t(e))return ZF(e,b);if(Rf(a))return t(d)?a.a?a.a(b):a.call(null,b):t(a.a?a.a(b):a.call(null,b))?b:Mp;throw Error([Kk(M([c]))," is not a fn, expected predicate fn"].join(""));}return b}function kG(a,b,c,d,e,f){b=RF(b);t(NF(b))?(a=QF(b),d=t(a)?mf.g(d,a):d,c=HF(b,c,d,e,f)):c=new T(null,1,5,U,[new n(null,5,[Nl,c,Vm,a,Rk,f,zn,d,ft,e],null)],null);return c} +function lG(a){return a instanceof A?VE(M([a])):I.g(zp,G(a))?mG(1,Fe(a)):I.g(Ts,G(a))?S(TE,Uh.g(lG,Fe(a))):null}function mG(a,b){return LE(M([TE.s(M([NE(M([a,K(b)])),ZE(M([Uh.g(lG,b)]))])),function(a){var b=N(a,0);a=N(a,1);return S(TE,Vh.g(b,a))}]))} +var nG=function nG(a){var c=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,d=z.g(c,kt),e=z.g(c,Ql),f=z.g(c,Rl),g=z.g(c,hm),k=z.g(c,om),l=z.g(c,vm),p=z.g(c,Om),q=z.g(c,Rn),r=z.g(c,Op),w=z.g(c,Nq),x=z.g(c,$q),C=z.g(c,wr),B=ik(Zg.g(w,p),Zg.g(q,x)),F=Al();if("undefined"===typeof uc||"undefined"===typeof lE||"undefined"===typeof AF||"undefined"===typeof BF)BF=function(a,c,d,e,f,g,k,l,p,q,r,w,x,F,C,B,Fa,Wa,Cb){this.nb=a;this.mg=c;this.zg=d;this.pg=e;this.sa=f;this.rg=g;this.He=k;this.Kf=l;this.ng=p;this.yg=q;this.Gh= +r;this.Xh=w;this.wg=x;this.id=F;this.xg=C;this.og=B;this.zh=Fa;this.sg=Wa;this.Oh=Cb;this.o=393216;this.I=0},BF.prototype.U=function(a,c){return new BF(this.nb,this.mg,this.zg,this.pg,this.sa,this.rg,this.He,this.Kf,this.ng,this.yg,this.Gh,this.Xh,this.wg,this.id,this.xg,this.og,this.zh,this.sg,c)},BF.prototype.R=function(){return this.Oh},BF.prototype.dc=function(){return this},BF.prototype.ec=function(){return this},BF.prototype.Rd=m,BF.prototype.pd=function(a,c){if(t(this.He.a?this.He.a(c):this.He.call(null, +c))){a=v(KF);var d=D(c),e=G(d);H(d);N(e,0);N(e,1);for(e=d=c;;){c=d;var f=D(e);d=G(f);var g=H(f);f=d;d=N(f,0);f=N(f,1);if(t(e))if(e=this.nb.a?this.nb.a(d):this.nb.call(null,d),e=z.g(a,e),t(e)){e=ZF(e,f);if(YF(e))return Mp;c=e===f?c:rf.h(c,d,e);e=g;d=c}else e=g,d=c;else return c}}else return Mp},BF.prototype.qd=function(a,c,d,e,f){var g=this;if(Ef(f)){var k=v(KF);return hh(Zg,function(){var a=D(Oh(mg,Uh.h(function(a,c){return t(a.a?a.a(f):a.call(null,f))?null:c},g.rg,g.sg)));return a?Uh.g(function(a){return new n(null, +5,[Nl,c,Vm,a,Rk,f,zn,d,ft,e],null)},a):null}(),Uh.g(function(a){var f=N(a,0);a=N(a,1);var l;(l=!Zf(k,g.nb.a?g.nb.a(f):g.nb.call(null,f)))||(l=g.nb.a?g.nb.a(f):g.nb.call(null,f),l=!YF(jG(l,a,f,null)));return l?null:kG(g.nb.a?g.nb.a(f):g.nb.call(null,f),g.nb.a?g.nb.a(f):g.nb.call(null,f),mf.g(c,f),d,mf.g(e,f),a)},D(f)))}return new T(null,1,5,U,[new n(null,5,[Nl,c,Vm,Vo,Rk,f,zn,d,ft,e],null)],null)},BF.prototype.rd=function(a,c,d,e){var f=this;if(t(f.sa))return f.sa.j?f.sa.j():f.sa.call(null);var g= +iG(e,f.id),k=Uh.h(function(a,e){return new T(null,2,5,U,[a,eG(e,c,mf.g(d,a),g,a)],null)},f.xg,f.yg),l=ei(Lc,Uh.h(function(a,e){return hG(g,f.id,d,a)?null:new T(null,2,5,U,[a,vE(new Tk(function(){return eG(e,c,mf.g(d,a),g,a)}))],null)},f.ng,f.og));return Fh(mg,Zg.g(Uh.g(kf,k),Uh.g(kf,l)))?LE(M([TE.s(M([S(TE,Uh.g(lG,f.wg)),mG(0,f.mg),S(TE,Uh.g(lG,f.zg)),mG(0,f.pg)])),function(a){var c=N(a,0),d=N(a,1),e=N(a,2);a=N(a,3);var f=gi(Zg.g(c,d)),g=Uh.g(Kh.g(Mg,Ng),gi(Zg.g(e,a)));return S(xE,S(Zg,di(function(a){a= +G(a);var c=ek(Zg.g(f,g));return c.a?c.a(a):c.call(null,a)},hi.g(k,l))))}])):null},BF.prototype.sd=function(a,c){a=rf.h(this.Kf,hm,c);return nG.a?nG.a(a):nG.call(null,a)},BF.fc=function(){return new T(null,19,5,U,[Rm,dn,qn,rn,Un,bo,eo,qo,Bo,xp,er,or,xr,Vr,is,xs,$s,pt,Jo],null)},BF.Ib=!0,BF.rb="cljs.spec.alpha/t_cljs$spec$alpha21050",BF.Pb=function(a){return Yd(a,"cljs.spec.alpha/t_cljs$spec$alpha21050")};return new BF(function(a){var c=B.a?B.a(a):B.call(null,a);return t(c)?c:a},d,e,f,g,k,l,c,p,q,c, +a,r,F,w,x,B,C,oh)};function WF(a,b){return oG(a,b,null,null,null)} +function oG(a,b,c,d,e){if(t(NF(b)))return t(c)?aG(b,c):b;if(t(OF(b)))return SF(b,c);if(Fg(b))return a=TF(b),t(c)?aG(a,c):a;if("undefined"===typeof uc||"undefined"===typeof lE||"undefined"===typeof AF||"undefined"===typeof CF)CF=function(a,b,c,d,e,q){this.form=a;this.Zc=b;this.sa=c;this.we=d;this.Gg=e;this.Ph=q;this.o=393216;this.I=0},CF.prototype.U=function(a,b){return new CF(this.form,this.Zc,this.sa,this.we,this.Gg,b)},CF.prototype.R=function(){return this.Ph},CF.prototype.dc=function(){return this}, +CF.prototype.ec=function(){return this},CF.prototype.Rd=m,CF.prototype.pd=function(a,b){a=this.Zc.a?this.Zc.a(b):this.Zc.call(null,b);return t(this.we)?a:t(a)?b:Mp},CF.prototype.qd=function(a,b,c,d,e){return YF(jG(this.Zc,e,this.form,this.we))?new T(null,1,5,U,[new n(null,5,[Nl,b,Vm,this.form,Rk,e,zn,c,ft,d],null)],null):null},CF.prototype.rd=function(){if(t(this.sa))var a=this.sa.j?this.sa.j():this.sa.call(null);else a=this.Zc,a=Bf(a)?JE(M([a])):z.g(v(zF),a);return a},CF.prototype.sd=function(a, +b){return oG(this.form,this.Zc,b,this.we,this.Gg)},CF.fc=function(){return new T(null,6,5,U,[Il,No,Un,mo,Ul,Fr],null)},CF.Ib=!0,CF.rb="cljs.spec.alpha/t_cljs$spec$alpha21109",CF.Pb=function(a){return Yd(a,"cljs.spec.alpha/t_cljs$spec$alpha21109")};return new CF(a,b,c,d,e,oh)}function pG(a,b){return new ag(a,b,null)} +function qG(a,b,c){var d=D(b);G(d);H(d);d=D(c);G(d);H(d);for(d=c;;){c=a;b=D(b);a=G(b);b=H(b);var e=D(d);d=G(e);e=H(e);var f=d;d=e;if(t(a)){c=jG(a,c,f,null);if(YF(c))return Mp;a=c}else return c}}function rG(a,b,c,d,e,f){var g=D(a);G(g);H(g);g=D(b);G(g);H(g);for(g=b;;){b=f;a=D(a);f=G(a);a=H(a);var k=D(g);g=G(k);var l=H(k);k=g;if(t(k)){g=jG(k,b,f,null);if(YF(g))return kG(f,k,c,d,e,b);b=a;k=l;f=g;a=b;g=k}else return null}}function sG(a){return new n(null,2,[yo,en,bm,a],null)} +function tG(a){a=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a;a=z.g(a,yo);return I.g(en,a)}var uG=function uG(a){var c=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,d=z.g(c,Vs);a=D(d);var e=G(a);a=H(a);var f=z.g(c,nn),g=D(f),k=G(g);g=H(g);var l=z.g(c,Os),p=D(l);G(p);p=H(p);var q=z.g(c,bm);c=z.g(c,Dm);return Fh(mg,d)?tG(e)?(d=bm.a(e),d=mf.g(q,t(f)?sf([k,d]):d),a?(a=new n(null,4,[Vs,a,nn,g,Os,p,bm,d],null),uG.a?uG.a(a):uG.call(null,a)):sG(d)):new n(null,6,[yo,nt,Vs,d,bm,q,nn,f,Os,l,Dm,c],null):null}; +function vG(a,b,c){return uG(new n(null,4,[nn,a,Vs,b,Os,c,bm,oh],null))}function wG(a,b,c,d,e){return t(a)?(d=new n(null,5,[yo,Um,Yl,b,an,d,Os,e,uq,Al()],null),tG(a)?rf.s(d,ap,b,M([bm,mf.g(c,bm.a(a))])):rf.s(d,ap,a,M([bm,c]))):null} +function xG(a,b,c,d){return t(t(b)?b:c)?(a=di(function(a){a=G(a);return d.a?d.a(a):d.call(null,a)},Uh.H(Hi,a,function(){var a=D(b);return a?a:Zh(null)}(),function(){var a=D(c);return a?a:Zh(null)}())),new T(null,3,5,U,[D(Uh.g(G,a)),t(b)?D(Uh.g(kf,a)):null,t(c)?D(Uh.g(function(a){return bf(a,2)},a)):null],null)):new T(null,3,5,U,[D(di(d,a)),b,c],null)} +function yG(a,b,c){var d=xG(a,b,c,mg);b=N(d,0);c=D(b);a=G(c);c=H(c);var e=N(d,1),f=N(e,0);d=N(d,2);return t(b)?(b=new n(null,4,[yo,Ds,Vs,b,nn,e,Os,d],null),null==c?t(f)?tG(a)?sG(pG(f,bm.a(a))):b:a:b):null}function zG(a,b){return t(t(a)?b:a)?yG(M([a,b]),null,null):t(a)?a:b} +var AG=function AG(a){a=MF(a);var c=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,d=z.g(c,yo),e=z.g(c,Vs);a=z.g(c,ap);var f=z.g(c,Yl);c=z.g(c,Os);if(I.g(en,d))return!0;if(I.g(null,d))return null;if(I.g(sq,d))return d=AG.a?AG.a(a):AG.call(null,a),t(d)?(a=qG(BG(a),e,H(c)),!YF(a)):d;if(I.g(Um,d))return(e=a===f)?e:AG.a?AG.a(a):AG.call(null,a);if(I.g(nt,d))return Fh(AG,e);if(I.g(Ds,d))return Gh(AG,e);throw Error(["No matching clause: ",u.a(d)].join(""));},BG=function BG(a){a=MF(a);var c=null!=a&&(a.o&64||m===a.K)? +S(Tj,a):a;a=z.g(c,Vs);var d=D(a),e=G(d);H(d);var f=z.g(c,nn),g=N(f,0),k=z.g(c,yo);d=z.g(c,ap);var l=z.g(c,bm);c=z.g(c,Os);if(I.g(en,k))return l;if(I.g(null,k))return null;if(I.g(sq,k))return e=BG.a?BG.a(d):BG.call(null,d),(f=I.g(e,Us))?d=f:(d=yo.a(MF(d)),f=new ak(null,new n(null,2,[Um,null,nt,null],null),null),d=f.a?f.a(d):f.call(null,d),d=t(d)?zf(e):d,d=t(d)?d:null),t(d)?Us:qG(e,a,c);if(I.g(Um,k))return CG(d,l,g);if(I.g(nt,k))return CG(e,l,g);if(I.g(Ds,k))return c=xG(a,f,c,AG),a=N(c,0),a=N(a,0), +c=N(c,1),c=N(c,0),a=null==a?Us:BG.a?BG.a(a):BG.call(null,a),t(c)?pG(c,a):a;throw Error(["No matching clause: ",u.a(k)].join(""));}; +function CG(a,b,c){a=MF(a);var d=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,e=z.g(d,yo);z.g(d,Vs);a=z.g(d,an);if(I.g(null,e))return b;if(I.g(Ds,e)||I.g(en,e)||I.g(sq,e))return a=BG(d),I.g(a,Us)?b:mf.g(b,t(c)?sf([c,a]):a);if(I.g(Um,e)||I.g(nt,e))return d=BG(d),zf(d)||(c=t(c)?sf([c,d]):d,a=t(a)?hi:mf,b=a.g?a.g(b,c):a.call(null,b,c)),b;throw Error(["No matching clause: ",u.a(e)].join(""));} +var DG=function DG(a,b){a=MF(a);var d=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a;a=z.g(d,Vs);var e=D(a),f=G(e),g=H(e);e=z.g(d,nn);var k=D(e),l=G(k),p=H(k),q=z.g(d,yo),r=z.g(d,ap),w=z.g(d,Yl),x=z.g(d,bm),C=z.g(d,an),B=z.g(d,Os);k=z.g(d,to);if(t(d)){if(I.g(en,q))return null;if(I.g(null,q))return a=jG(d,b,d,null),YF(a)?null:sG(a);if(I.g(sq,q))return d=DG.g?DG.g(r,b):DG.call(null,r,b),t(d)?I.g(en,yo.a(d))?(a=qG(BG(d),a,H(B)),YF(a)?null:sG(a)):new n(null,5,[yo,sq,ap,d,to,k,Vs,a,Os,B],null):null;if(I.g(nt,q))return zG(uG(new n(null, +4,[Vs,gf(DG.g?DG.g(f,b):DG.call(null,f,b),g),nn,e,Os,B,bm,x],null)),t(AG(f))?function(){var a=uG(new n(null,4,[Vs,g,nn,p,Os,H(B),bm,CG(f,x,l)],null));return DG.g?DG.g(a,b):DG.call(null,a,b)}():null);if(I.g(Ds,q))return yG(Uh.g(function(a){return DG.g?DG.g(a,b):DG.call(null,a,b)},a),e,B);if(I.g(Um,q))return zG(wG(DG.g?DG.g(r,b):DG.call(null,r,b),w,x,C,B),t(AG(r))?function(){var a=wG(w,w,CG(r,x,null),C,B);return DG.g?DG.g(a,b):DG.call(null,a,b)}():null);throw Error(["No matching clause: ",u.a(q)].join("")); +}return null}; +function EG(a){a=MF(a);var b=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,c=z.g(b,yo);z.g(b,Vs);var d=z.g(b,nn);a=z.g(b,Os);var e=z.g(b,an);z.g(b,ap);var f=z.g(b,Dm),g=z.g(b,yn),k=z.g(b,to);if(t(b)){if(I.g(en,c))return null;if(I.g(null,c))return b;if(I.g(sq,c))return gf(jt,gf(k,a));if(I.g(nt,c))return t(f)?a=new of(null,Xl,new of(null,f,null,1,null),2,null):(b=D(d),a=gf(un,ci(Hi,M([b?b:Zh(vn),a])))),a;if(I.g(Ds,c))return t(g)?new of(null,rt,new of(null,g,null,1,null),2,null):gf(Am,ci(Hi,M([d,a])));if(I.g(Um, +c))return new of(null,t(e)?Xl:Ll,new of(null,a,null,1,null),2,null);throw Error(["No matching clause: ",u.a(c)].join(""));}return null} +var FG=function FG(a,b,c,d,e,f){function k(a,b){return new T(null,1,5,U,[new n(null,6,[Nl,a,Lp,"Insufficient input",Vm,b,Rk,Ge,zn,B,ft,e],null)],null)}var l=N(f,0);b=MF(b);var p=null!=b&&(b.o&64||m===b.K)?S(Tj,b):b,q=z.g(p,yo),r=z.g(p,Vs),w=z.g(p,nn),x=z.g(p,Os);z.g(p,an);b=z.g(p,ap);var C=z.g(p,Yl),B=function(){var a=QF(p);return t(a)?mf.g(d,a):d}();if(t(p)){if(I.g(en,q))return null;if(I.g(null,q))return zf(f)?k(c,a):kG(a,p,c,B,e,l);if(I.g(sq,q)){if(zf(f))return t(AG(b))?rG(x,r,c,B,e,BG(b)):k(c, +to.a(p));a=DG(b,l);if(t(a))return rG(x,r,c,B,e,BG(a));a=to.a(p);return FG.la?FG.la(a,b,c,B,e,f):FG.call(null,a,b,c,B,e,f)}if(I.g(nt,q))return b=Uh.H(Hi,r,function(){var a=D(w);return a?a:Zh(null)}(),function(){var a=D(x);return a?a:Zh(null)}()),l=I.g(1,K(b))?G(b):G(ei(function(a){a=N(a,0);return AG(a)},b)),b=N(l,0),a=N(l,1),l=N(l,2),a=t(a)?mf.g(c,a):c,l=t(l)?l:EG(b),zf(f)&&Oc(b)?k(a,l):FG.la?FG.la(l,b,a,B,e,f):FG.call(null,l,b,a,B,e,f);if(I.g(Ds,q))return zf(f)?k(c,EG(p)):S(Zg,Uh.H(function(a,b,d){b= +t(b)?b:EG(d);a=t(a)?mf.g(c,a):c;return FG.la?FG.la(b,d,a,B,e,f):FG.call(null,b,d,a,B,e,f)},function(){var a=D(w);return a?a:Zh(null)}(),function(){var a=D(x);return a?a:Zh(null)}(),r));if(I.g(Um,q))return a=b===C?x:EG(b),FG.la?FG.la(a,b,c,B,e,f):FG.call(null,a,b,c,B,e,f);throw Error(["No matching clause: ",u.a(q)].join(""));}return null},GG=function GG(a,b,c,d,e){function g(a,d,e){return Uh.H(function(a,d,e){if(t(t(F)?t(B)?t(d)?hG(F,B,c,d):d:B:F))return null;if(t(B))return vE(new Tk(function(){var g= +t(d)?mf.g(c,d):c,k=t(e)?e:a;return GG.P?GG.P(a,b,g,F,k):GG.call(null,a,b,g,F,k)}));var g=t(d)?mf.g(c,d):c,k=t(e)?e:a;return GG.P?GG.P(a,b,g,F,k):GG.call(null,a,b,g,F,k)},a,function(){var a=D(d);return a?a:Zh(null)}(),function(){var a=D(e);return a?a:Zh(null)}())}a=MF(a);var k=null!=a&&(a.o&64||m===a.K)?S(Tj,a):a,l=z.g(k,Vs),p=z.g(k,Os),q=z.g(k,Yl),r=z.g(k,bm),w=z.g(k,Vn),x=z.g(k,yo);z.g(k,an);var C=z.g(k,nn);a=z.g(k,ap);var B=z.g(k,uq),F=t(B)?iG(d,B):d;d=function(){var a=z.g(b,c);return t(a)?I.g(it, +x)?HE(M([Hi,a])):I.g(null,x)?HE(M([Hi,a])):a:null}();if(t(d))return d;d=t(w)?w.j?w.j():w.call(null):null;if(t(d))return d;if(t(k)){if(I.g(en,x))return I.g(r,Us)?VE(M([nf])):VE(M([new T(null,1,5,U,[r],null)]));if(I.g(null,x))return e=eG(k,b,c,F,e),t(e)?HE(M([Hi,e])):null;if(I.g(sq,x))return e=EG(a),GG.P?GG.P(a,b,c,F,e):GG.call(null,a,b,c,F,e);if(I.g(nt,x))return e=g(l,C,p),Fh(mg,e)?S(xF,e):null;if(I.g(Ds,x))return e=ei(Lc,g(l,C,p)),zf(e)?null:PE(M([e]));if(I.g(Um,x)){if(hG(F,B,new T(null,1,5,U,[B], +null),B))return VE(M([nf]));e=GG.P?GG.P(q,b,c,F,p):GG.call(null,q,b,c,F,p);return t(e)?HE(M([function(a){return S(Zg,a)},FE(M([e]))])):null}throw Error(["No matching clause: ",u.a(x)].join(""));}return null};function HG(a,b){for(;;){var c=D(b),d=G(c);c=H(c);if(zf(b))return t(AG(a))?(a=BG(a),I.g(a,Us)?null:a):Mp;a=DG(a,d);if(t(a))b=c;else return Mp}} +var SF=function SF(a,b){if("undefined"===typeof uc||"undefined"===typeof lE||"undefined"===typeof AF||"undefined"===typeof EF)EF=function(a,b,f){this.ad=a;this.sa=b;this.Rh=f;this.o=393216;this.I=0},EF.prototype.U=function(a,b){return new EF(this.ad,this.sa,b)},EF.prototype.R=function(){return this.Rh},EF.prototype.dc=function(){return this},EF.prototype.ec=function(){return this},EF.prototype.Rd=m,EF.prototype.pd=function(a,b){return null==b||Df(b)?HG(this.ad,D(b)):Mp},EF.prototype.qd=function(a, +b,f,g,k){if(null==k||Df(k))a:{a=this.ad;var d=D(k);k=D(d);G(k);H(k);k=a;var e=d;for(d=0;;){var q=D(e),r=G(q);q=H(q);if(zf(e)){b=t(AG(k))?null:FG(EG(k),k,b,f,g,null);break a}r=DG(k,r);if(t(r))e=q,d+=1,k=r;else{if(tG(k)){b=I.g(yo.a(k),nt)?FG(EG(k),k,b,f,mf.g(g,d),D(e)):new T(null,1,5,U,[new n(null,6,[Nl,b,Lp,"Extra input",Vm,EG(a),Rk,e,zn,f,ft,mf.g(g,d)],null)],null);break a}a=FG(EG(k),k,b,f,mf.g(g,d),D(e));b=t(a)?a:new T(null,1,5,U,[new n(null,6,[Nl,b,Lp,"Extra input",Vm,EG(k),Rk,e,zn,f,ft,mf.g(g, +d)],null)],null);break a}}}else b=new T(null,1,5,U,[new n(null,5,[Nl,b,Vm,Eh(D(Zg.s(new of(null,Tq,null,1,null),new of(null,Fi(Eh(D(Zg.a(new of(null,kp,null,1,null))))),null,1,null),M([new of(null,Eh(D(Zg.s(new of(null,Fs,null,1,null),new of(null,Eh(D(Zg.g(new of(null,Lq,null,1,null),new of(null,kp,null,1,null)))),null,1,null),M([new of(null,Eh(D(Zg.g(new of(null,dm,null,1,null),new of(null,kp,null,1,null)))),null,1,null)])))),null,1,null)])))),Rk,k,zn,f,ft,g],null)],null);return b},EF.prototype.rd= +function(a,b,f,g){return t(this.sa)?this.sa.j?this.sa.j():this.sa.call(null):GG(this.ad,b,f,g,EG(this.ad))},EF.prototype.sd=function(a,b){return SF.g?SF.g(this.ad,b):SF.call(null,this.ad,b)},EF.fc=function(){return new T(null,3,5,U,[Gp,Un,Yp],null)},EF.Ib=!0,EF.rb="cljs.spec.alpha/t_cljs$spec$alpha21475",EF.Pb=function(a){return Yd(a,"cljs.spec.alpha/t_cljs$spec$alpha21475")};return new EF(a,b,oh)}; +function IG(a,b,c){var d=fG(Kl.a(b),null);d=qE(M([new T(null,1,5,U,[d],null),function(c){var d=ZF(Kl.a(b),c);if(YF(d))d=null;else if(c=S(a,c),c=ZF(bm.a(b),c),YF(c))d=!1;else if(t(zm.a(b))){var e=zm.a(b);d=jG(e,new n(null,2,[Kl,d,bm,c],null),cm,null);d=!YF(d)}else d=!0;return d}]));c=oE(M([c,d]));c=Gq.a(ym.a(c));return t(c)?N(c,0):a} +var JG=function JG(a,b,c,d,e,f,g){var l=new n(null,3,[Kl,a,bm,c,zm,e],null);if("undefined"===typeof uc||"undefined"===typeof lE||"undefined"===typeof AF||"undefined"===typeof FF)FF=function(a,b,c,d,e,f,g,l,L){this.gd=a;this.Ze=b;this.Bd=c;this.je=d;this.Vd=e;this.Ae=f;this.sa=g;this.bd=l;this.Sh=L;this.o=393472;this.I=0},FF.prototype.U=function(a,b){return new FF(this.gd,this.Ze,this.Bd,this.je,this.Vd,this.Ae,this.sa,this.bd,b)},FF.prototype.R=function(){return this.Sh},FF.prototype.Y=function(a, +b){return z.g(this.bd,b)},FF.prototype.N=function(a,b,c){return z.h(this.bd,b,c)},FF.prototype.dc=function(){return this},FF.prototype.ec=function(){return this},FF.prototype.Rd=m,FF.prototype.pd=function(a,b){return Rf(b)?b===IG(b,this.bd,21)?b:Mp:Mp},FF.prototype.qd=function(a,b,c,d,e){if(Rf(e)){a=IG(e,this.bd,100);if(e===a)return null;try{var f=S(e,a)}catch(B){if(B instanceof Error)f=B;else throw B;}if(f instanceof Error)return new T(null,1,5,U,[new n(null,6,[Nl,b,Vm,zg(ks,ro),Rk,a,Lp,f.message, +zn,c,ft,d],null)],null);e=jG(this.Bd,f,this.je,null);return YF(e)?kG(this.je,this.Bd,mf.g(b,bm),c,d,f):t(this.Vd)?(f=ZF(this.gd,a),kG(this.Ae,this.Vd,mf.g(b,zm),c,d,new n(null,2,[Kl,f,bm,e],null))):null}return new T(null,1,5,U,[new n(null,5,[Nl,b,Vm,ur,Rk,e,zn,c,ft,d],null)],null)},FF.prototype.rd=function(a,b){var c=this;return t(c.sa)?c.sa.j?c.sa.j():c.sa.call(null):VE(M([function(){function a(a){var b=null;if(0b?c:b,Hm,a,Ip,f,io,e,Tl,d],null))} +function vH(a,b){if(t(a))return Ps;switch(b){case "code-mirror":return Jl;case "dom":return Ps;case "html":return ht;default:return Jl}} +function wH(a,b){var c=Y(1);aB(function(){var d=function(){function c(c){var d=c[1];if(1===d)return c[1]=t(b)?2:3,V;if(2===d)return c[2]=new T(null,2,5,U,[xq,xq],null),c[1]=4,V;if(3===d)return d=LC.a?LC.a(a):LC.call(null,a),qB(c,5,d);if(4===d)return sB(c,c[2]);if(5===d){var e=c[2],f=N(e,0);d=N(e,1);e=N(e,2);f=I.g(xq,f);c[7]=e;c[8]=d;c[1]=f?6:7;return V}return 6===d?(c[2]=new T(null,2,5,U,[xq,xq],null),c[1]=8,V):7===d?(e=c[7],d=c[8],f=U,d=["Cannot load script: ",u.a(e),"\nError: ",u.a(d)].join(""), +c[2]=new T(null,2,5,f,[yr,d],null),c[1]=8,V):8===d?(c[2]=c[2],c[1]=4,V):null}return function(){function a(a){for(;;){a:try{for(;;){var b=c(a);if(!O(b,V)){var d=b;break a}}}catch(w){if(w instanceof Object)a[5]=w,vB(a),d=V;else throw w;}if(!O(d,V))return d}}function b(){var a=[null,null,null,null,null,null,null,null,null];a[0]=d;a[1]=1;return a}var d=null;d=function(c){switch(arguments.length){case 0:return b.call(this);case 1:return a.call(this,c)}throw Error("Invalid arity: "+arguments.length);}; +d.j=b;d.a=a;return d}()}(),e=function(){var a=d.j?d.j():d.call(null);a[6]=c;return a}();return pB(e)});return c} +function xH(a,b,c,d){b=null!=b&&(b.o&64||m===b.K)?S(Tj,b):b;var e=z.g(b,cs),f=z.h(b,Ks,20),g=z.h(b,gp,!1),k=z.g(b,oo),l=z.h(b,pn,1E3),p=z.h(b,Xp,!1),q=z.g(b,zr),r=z.h(b,qs,oh),w=z.h(b,em,oh);c=null!=c&&(c.o&64||m===c.K)?S(Tj,c):c;var x=z.g(c,Rr),C=z.h(c,rs,!0),B=z.g(c,ys),F=z.g(c,st),L=z.g(c,hn),P=z.h(c,fo,!0),R=z.h(c,Ko,0),da=z.g(c,To),wa=z.g(c,Vq),Q=z.h(c,gr,nf),Ua=Y(1);aB(function(){var b=function(){function b(b){var c=b[1];if(7===c)return b[2]=!1,b[1]=8,V;if(20===c){var X=b[7];b[2]=X;b[1]=21; +return V}if(27===c){c=b[8];var oa=b[2];c=I.g(xq,c);b[9]=oa;b[1]=c?28:29;return V}if(1===c)return b[1]=t(a)?2:3,V;if(24===c){c=b[10];var na=b[12];X=b[13];var ta=b[14];X=b[7];c=b[8];var Fa=b[17],Wa=b[18],Ua=b[19],tb=b[2],ub=function(){return function(a){var b=Y(1);aB(function(){var c=function(){return function(){function b(b){for(;;){a:try{for(;;){var c=b,d=c[1];var e=1===d?rB(c,2,rH,a):2===d?sB(c,c[2]):null;if(!O(e,V)){var f=e;break a}}}catch(ri){if(ri instanceof Object)b[5]=ri,vB(b),f=V;else throw ri; +}if(!O(f,V))return f}}function c(){var a=[null,null,null,null,null,null,null];a[0]=d;a[1]=1;return a}var d=null;d=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return b.call(this,a)}throw Error("Invalid arity: "+arguments.length);};d.j=c;d.a=b;return d}()}(),d=function(){var a=c.j?c.j():c.call(null);a[6]=b;return a}();return pB(d)});return b}}(),Sb=tH();c=I.g(xq,c);b[20]=tb;b[21]=ub;b[22]=Sb;b[1]=c?25:26;return V}if(4===c)return sB(b,b[2]);if(15===c)return c=b[23],b[2]=c, +b[1]=17,V;if(21===c){c=b[8];var hc=b[2];c=I.g(xq,c);b[24]=hc;b[1]=c?22:23;return V}if(13===c)return c=b[25],b[2]=c,b[1]=14,V;if(22===c)return b[2]=P,b[1]=24,V;if(29===c)return b[2]=!1,b[1]=30,V;if(6===c)return c=b[25],X=m===c.K,b[1]=t(c.o&64||X)?9:10,V;if(28===c)return b[2]=C,b[1]=30,V;if(25===c)return c=b[10],b[2]=c,b[1]=27,V;if(17===c)return X=vH(g,b[2]),c=Gt(Q),c=wH(c,e),b[13]=X,qB(b,18,c);if(3===c)return b[2]=null,b[1]=4,V;if(12===c)return c=b[25],c=S(Tj,c),b[2]=c,b[1]=14,V;if(2===c){c=Bj([Js, +Hc,Pn],[q,l,p]);var Jc=kE(a,c);c=function(){return function(a,b){b=Yj.s(M([Jc,b]));return x.g?x.g(a,b):x.call(null,a,b)}}();X=jE(a,da);b[10]=c;b[16]=Jc;return qB(b,5,X)}return 23===c?(b[2]=!1,b[1]=24,V):19===c?(b[2]="the evaluation will appear here (soon)...",b[1]=21,V):11===c?(b[2]=b[2],b[1]=8,V):9===c?(b[2]=!0,b[1]=11,V):5===c?(c=b[25],Wa=b[2],c=uH(a,f,R,k),X=Oc(null==c),b[25]=c,b[18]=Wa,b[1]=X?6:7,V):14===c?(c=b[23],c=b[2],Ua=z.g(c,Em),X=z.g(c,Tl),na=z.g(c,Hm),Fa=z.g(c,io),ta=z.g(c,Ip),b[11]=c, +b[12]=na,b[14]=ta,b[23]=X,b[17]=Fa,b[19]=Ua,b[1]=t(X)?15:16,V):26===c?(c=b[10],na=b[12],X=b[13],ta=b[14],X=b[7],c=b[8],Fa=b[17],Wa=b[18],Ua=b[19],b[2]=function(){return function(){return Y(null)}}(),b[1]=27,V):16===c?(b[2]=F,b[1]=17,V):30===c?(na=b[12],X=b[13],c=b[26],ta=b[14],hc=b[24],tb=b[20],oa=b[9],ub=b[21],Sb=b[22],Fa=b[17],Wa=b[18],Ua=b[19],c=Bj(c,[hc,tb,Ua,na,a,L,ub,Fa,d,Wa,ta,w,wa,Sb,oa,B,r,b[2]]),c=mH.g?mH.g(X,c):mH.call(null,X,c),b[2]=c,b[1]=4,V):10===c?(b[2]=!1,b[1]=11,V):18===c?(c=b[8], +Fa=b[2],Wa=N(Fa,0),X=N(Fa,1),c=[gm,sm,Em,Hm,Xm,hn,on,io,jo,mp,Ip,yq,Vq,ar,Rr,ys,at,ct],Ua=I.g(xq,Wa),b[26]=c,b[15]=Fa,b[7]=X,b[8]=Wa,b[1]=Ua?19:20,V):8===c?(b[1]=t(b[2])?12:13,V):null}return function(){function a(a){for(;;){a:try{for(;;){var c=b(a);if(!O(c,V)){var d=c;break a}}}catch(Fa){if(Fa instanceof Object)a[5]=Fa,vB(a),d=V;else throw Fa;}if(!O(d,V))return d}}function c(){var a=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, +null,null,null,null];a[0]=d;a[1]=1;return a}var d=null;d=function(b){switch(arguments.length){case 0:return c.call(this);case 1:return a.call(this,b)}throw Error("Invalid arity: "+arguments.length);};d.j=c;d.a=a;return d}()}(),c=function(){var a=b.j?b.j():b.call(null);a[6]=Ua;return a}();return pB(c)});return Ua}gG(gt,lo,function(a){return ka(a)&&1==a.nodeType});gG(ss,Nn,Qc);gG(vs,Nn,Qc);gG(rm,sp,uf); +gG(Ar,zg(Tn,zm,sp,fq,Nn),function yH(a,b,c,d){var f=Al(),g=ik(a,c),k=new Tk(function(){return hi.g(nf,Uh.h(XF,c,b))}),l=function(){switch(K(c)){case 2:return function(b){var c=v(k),d=GF(c.a?c.a(0):c.call(null,0),b);return YF(d)?(b=GF(c.a?c.a(1):c.call(null,1),b),YF(b)?Mp:pG(a.a?a.a(1):a.call(null,1),b)):pG(a.a?a.a(0):a.call(null,0),d)};case 3:return function(b){var c=v(k),d=GF(c.a?c.a(0):c.call(null,0),b);return YF(d)?(d=GF(c.a?c.a(1):c.call(null,1),b),YF(d)?(b=GF(c.a?c.a(2):c.call(null,2),b),YF(b)? +Mp:pG(a.a?a.a(2):a.call(null,2),b)):pG(a.a?a.a(1):a.call(null,1),d)):pG(a.a?a.a(0):a.call(null,0),d)};default:return function(b){for(var c=v(k),d=0;;)if(d