s)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:1
d){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 $jscomp=$jscomp||{};$jscomp.scope={};var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};
+goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};
+goog.define=function(a,b){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?b=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(b=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,b)};goog.DEBUG=!0;goog.LOCALE="en";
+goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};
+goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(".")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+goog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a];if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.moduleLoaderState_=null;
+goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
+goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0});
+goog.getObjectByName=function(a,b){a=a.split(".");b=b||goog.global;for(var c;c=a.shift();)if(goog.isDefAndNotNull(b[c]))b=b[c];else return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};
+goog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e;a=a.replace(/\\/g,"/");var f=goog.dependencies_;d&&"boolean"!==typeof d||(d=d?{module:"goog"}:{});for(var g=0;e=b[g];g++)f.nameToPath[e]=a,f.loadFlags[a]=d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]={}),f.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};
+goog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)goog.writeScripts_(b);else throw a="goog.require could not find: "+a,goog.logToConsole_(a),Error(a);}return null}};goog.basePath="";goog.nullFunction=function(){};
+goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE="detect";
+goog.TRANSPILER="transpile.js";
+goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&"write"in a},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-
+1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(a,b)&&(goog.dependencies_.written[a]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.oldIeWaiting_=!1,goog.importProcessedScript_=function(a,b,c){goog.importScript_("",'goog.retrieveAndExec_("'+a+'", '+b+", "+c+");")},goog.queuedModules_=
+[],goog.wrapModule_=function(a,b){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(b+"\n//# sourceURL\x3d"+a+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+b+"\n;return exports});\n//# sourceURL\x3d"+a+"\n"},goog.loadQueuedModules_=function(){var a=goog.queuedModules_.length;if(0>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;
+goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2Number(a[1])?!1:b('(()\x3d\x3e{"use strict";class X{constructor(){if(new.target!\x3dString)throw 1;this.x\x3d42}}let q\x3dReflect.construct(X,[],String);if(q.x!\x3d42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a\x3d\x3d2)continue;function f(z\x3d{a}){let a\x3d0;return z.a}{function f(){return 0;}}return f()\x3d\x3d3}})()')});
+a("es6-impl",function(){return!0});a("es7",function(){return b("2 ** 2 \x3d\x3d 4")});a("es8",function(){return b("async () \x3d\x3e 1, true")});return c};goog.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:" "};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};
+goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1=a||""<=a&&"�">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};
+goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};
+goog.string.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a/g;goog.string.QUOT_RE_=/"/g;goog.string.SINGLE_QUOTE_RE_=/'/g;goog.string.NULL_RE_=/\x00/g;goog.string.E_RE_=/e/g;goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"\x26")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};
+goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"\x26")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"\x26amp;":"\x26","\x26lt;":"\x3c","\x26gt;":"\x3e","\x26quot;":'"'};var d=b?b.createElement("div"):goog.global.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;"#"==b.charAt(0)&&(b=Number("0"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(d.innerHTML=a+" ",e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"\x26";case "lt":return"\x3c";case "gt":return"\x3e";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," \x26#160;"),b)};
+goog.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;db&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","\x3c":"\x3c"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);for(var b=['"'],c=0;ce?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;cb)var c=a;else{if(256>b){if(c="\\x",16>b||256b&&(c+="0");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=function(a,b){return-1!=a.indexOf(b)};
+goog.string.caseInsensitiveContains=function(a,b){return goog.string.contains(a.toLowerCase(),b.toLowerCase())};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&bb?1:0};goog.string.hashCode=function(a){for(var b=0,c=0;c>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){b=goog.isString(b)?goog.string.regExpEscape(b):"\\s";return a.replace(new RegExp("(^"+(b?"|["+b+"]+":"")+")([a-z])","g"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};
+goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0c&&(c=e)}return-1==c?a:a.slice(c+1)};
+goog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;ec?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;cc&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(""):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};
+goog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};
+goog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};
+goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?"o"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f>1;var l=c?b.call(e,a[k],k,a):b(d,a[k]);0b?1:ac?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};
+goog.array.bucket=function(a,b,c){for(var d={},e=0;ec*(f-e))return[];if(0f;a+=c)d.push(a);return d};
+goog.array.repeat=function(a,b){for(var c=[],d=0;db&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&ba*b?a+b:a};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
+goog.math.standardAngleInRadians=function(a){return goog.math.modulo(a,2*Math.PI)};goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};
+goog.math.angleDifference=function(a,b){a=goog.math.standardAngle(b)-goog.math.standardAngle(a);180=a&&(a=360+a);return a};goog.math.sign=function(a){return 0a?-1:a};
+goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b,c){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;hg[h][k-1]?h--:k--;return l};
+goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};
+goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)};goog.math.isNegativeZero=function(a){return 0==a&&0>1/a};goog.math.log10Floor=function(a){if(0a?1:0)}return 0==a?-Infinity:NaN};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");};
+goog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(d){if(d!==goog.iter.StopIteration)throw d;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a};
+goog.iter.filterFalse=function(a,b,c){return goog.iter.filter(a,goog.functions.not(b),c)};goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};
+goog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();return b.call(c,a,void 0,d)};return a};goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};
+goog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0};goog.iter.chain=function(a){return goog.iter.chainFromIterable(arguments)};
+goog.iter.chainFromIterable=function(a){var b=goog.iter.toIterator(a);a=new goog.iter.Iterator;var c=null;a.next=function(){for(;;){if(null==c){var a=b.next();c=goog.iter.toIterator(a)}try{return c.next()}catch(e){if(e!==goog.iter.StopIteration)throw e;c=null}}};return a};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a};
+goog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();if(b.call(c,a,void 0,d))return a;throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);a=goog.iter.toIterator(a);var b=[];goog.iter.forEach(a,function(a){b.push(a)});return b};
+goog.iter.equals=function(a,b,c){a=goog.iter.zipLongest({},a,b);var d=c||goog.array.defaultCompareEquality;return goog.iter.every(a,function(a){return d(a[0],a[1])})};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}};
+goog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){goog.asserts.assert(d);if(d[b]=b),a=goog.iter.limit(a,c-b));return a};goog.iter.hasDuplicates_=function(a){var b=[];goog.array.removeDuplicates(a,b);return a.length!=b.length};goog.iter.permutations=function(a,b){a=goog.iter.toArray(a);b=goog.isNumber(b)?b:a.length;b=goog.array.repeat(a,b);b=goog.iter.product.apply(void 0,b);return goog.iter.filter(b,function(a){return!goog.iter.hasDuplicates_(a)})};
+goog.iter.combinations=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.iter.range(d.length);b=goog.iter.permutations(a,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};
+goog.iter.combinationsWithReplacement=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.array.range(d.length);b=goog.array.repeat(a,b);b=goog.iter.product.apply(void 0,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};goog.structs.Map=function(a,b){this.map_={};this.keys_=[];this.version_=this.count_=0;var c=arguments.length;if(12*this.count_&&this.cleanupKeysArray_(),!0):!1};
+goog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a=d.keys_.length)throw goog.iter.StopIteration;var e=d.keys_[b++];return a?e:d.map_[e]};return e};goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};goog.uri.utils.buildFromEncodedParts=function(a,b,c,d,e,f,g){var h="";a&&(h+=a+":");c&&(h+="//",b&&(h+=b+"@"),h+=c,d&&(h+=":"+d));e&&(h+=e);f&&(h+="?"+f);g&&(h+="#"+g);return h};goog.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;
+goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(a){return a.match(goog.uri.utils.splitRe_)};goog.uri.utils.decodeIfPossible_=function(a,b){return a?b?decodeURI(a):decodeURIComponent(a):a};goog.uri.utils.getComponentByIndex_=function(a,b){return goog.uri.utils.split(b)[a]||null};goog.uri.utils.getScheme=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,a)};
+goog.uri.utils.getEffectiveScheme=function(a){a=goog.uri.utils.getScheme(a);!a&&goog.global.self&&goog.global.self.location&&(a=goog.global.self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};goog.uri.utils.getUserInfoEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,a)};goog.uri.utils.getUserInfo=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(a))};
+goog.uri.utils.getDomainEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,a)};goog.uri.utils.getDomain=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a),!0)};goog.uri.utils.getPort=function(a){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,a))||null};goog.uri.utils.getPathEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,a)};
+goog.uri.utils.getPath=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a),!0)};goog.uri.utils.getQueryData=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,a)};goog.uri.utils.getFragmentEncoded=function(a){var b=a.indexOf("#");return 0>b?null:a.substr(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))};
+goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getOrigin=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],null,a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};
+goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.substr(0,b)};
+goog.uri.utils.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.SCHEME]==b[goog.uri.utils.ComponentIndex.SCHEME]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};
+goog.uri.utils.assertNoFragmentsOrQueries_=function(a){goog.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};goog.uri.utils.parseQueryData=function(a,b){if(a){a=a.split("\x26");for(var c=0;cb&&(b=a.length);var c=a.indexOf("?");if(0>c||c>b){c=b;var d=""}else d=a.substring(c+1,b);return[a.substr(0,c),d,a.substr(b)]};goog.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};goog.uri.utils.appendQueryData_=function(a,b){return b?a?a+"\x26"+b:b:a};goog.uri.utils.appendQueryDataToUri_=function(a,b){if(!b)return a;a=goog.uri.utils.splitQueryData_(a);a[1]=goog.uri.utils.appendQueryData_(a[1],b);return goog.uri.utils.joinQueryData_(a)};
+goog.uri.utils.appendKeyValuePairs_=function(a,b,c){goog.asserts.assertString(a);if(goog.isArray(b)){goog.asserts.assertArray(b);for(var d=0;dd)return null;var e=a.indexOf("\x26",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.substr(d,e-d))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("\x26",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.substr(e,d-e)))}return f};
+goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("\x26",e)+1||c,c);f.push(a.substr(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)};
+goog.uri.utils.setParamsFromMap=function(a,b){a=goog.uri.utils.splitQueryData_(a);var c=a[1],d=[];c&&goog.array.forEach(c.split("\x26"),function(a){var c=a.indexOf("\x3d");c=0<=c?a.substr(0,c):a;b.hasOwnProperty(c)||d.push(a)});a[1]=goog.uri.utils.appendQueryData_(d.join("\x26"),goog.uri.utils.buildQueryDataFromMap(b));return goog.uri.utils.joinQueryData_(a)};
+goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));goog.string.startsWith(b,"/")&&(b=b.substr(1));return goog.string.buildString(a,"/",b)};
+goog.uri.utils.setPath=function(a,b){goog.string.startsWith(b,"/")||(b="/"+b);a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT],b,a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};
+goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};goog.Uri=function(a,b){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var c;a instanceof goog.Uri?(this.ignoreCase_=goog.isDef(b)?b:a.getIgnoreCase(),this.setScheme(a.getScheme()),this.setUserInfo(a.getUserInfo()),this.setDomain(a.getDomain()),this.setPort(a.getPort()),this.setPath(a.getPath()),this.setQueryData(a.getQueryData().clone()),this.setFragment(a.getFragment())):a&&(c=goog.uri.utils.split(String(a)))?(this.ignoreCase_=
+!!b,this.setScheme(c[goog.uri.utils.ComponentIndex.SCHEME]||"",!0),this.setUserInfo(c[goog.uri.utils.ComponentIndex.USER_INFO]||"",!0),this.setDomain(c[goog.uri.utils.ComponentIndex.DOMAIN]||"",!0),this.setPort(c[goog.uri.utils.ComponentIndex.PORT]),this.setPath(c[goog.uri.utils.ComponentIndex.PATH]||"",!0),this.setQueryData(c[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),this.setFragment(c[goog.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!b,this.queryData_=new goog.Uri.QueryData(null,
+null,this.ignoreCase_))};goog.Uri.preserveParameterTypesCompatibilityFlag=!1;goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM;
+goog.Uri.prototype.toString=function(){var a=[],b=this.getScheme();b&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var c=this.getDomain();if(c||"file"==b)a.push("//"),(b=this.getUserInfo())&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(goog.Uri.removeDoubleEncoding_(goog.string.urlEncode(c))),c=this.getPort(),null!=c&&a.push(":",String(c));if(c=this.getPath())this.hasDomain()&&"/"!=c.charAt(0)&&a.push("/"),
+a.push(goog.Uri.encodeSpecialChars_(c,"/"==c.charAt(0)?goog.Uri.reDisallowedInAbsolutePath_:goog.Uri.reDisallowedInRelativePath_,!0));(c=this.getEncodedQuery())&&a.push("?",c);(c=this.getFragment())&&a.push("#",goog.Uri.encodeSpecialChars_(c,goog.Uri.reDisallowedInFragment_));return a.join("")};
+goog.Uri.prototype.resolve=function(a){var b=this.clone(),c=a.hasScheme();c?b.setScheme(a.getScheme()):c=a.hasUserInfo();c?b.setUserInfo(a.getUserInfo()):c=a.hasDomain();c?b.setDomain(a.getDomain()):c=a.hasPort();var d=a.getPath();if(c)b.setPort(a.getPort());else if(c=a.hasPath()){if("/"!=d.charAt(0))if(this.hasDomain()&&!this.hasPath())d="/"+d;else{var e=b.getPath().lastIndexOf("/");-1!=e&&(d=b.getPath().substr(0,e+1)+d)}d=goog.Uri.removeDotSegments(d)}c?b.setPath(d):c=a.hasQuery();c?b.setQueryData(a.getQueryData().clone()):
+c=a.hasFragment();c&&b.setFragment(a.getFragment());return b};goog.Uri.prototype.clone=function(){return new goog.Uri(this)};goog.Uri.prototype.getScheme=function(){return this.scheme_};goog.Uri.prototype.setScheme=function(a,b){this.enforceReadOnly();if(this.scheme_=b?goog.Uri.decodeOrEmpty_(a,!0):a)this.scheme_=this.scheme_.replace(/:$/,"");return this};goog.Uri.prototype.hasScheme=function(){return!!this.scheme_};goog.Uri.prototype.getUserInfo=function(){return this.userInfo_};
+goog.Uri.prototype.setUserInfo=function(a,b){this.enforceReadOnly();this.userInfo_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasUserInfo=function(){return!!this.userInfo_};goog.Uri.prototype.getDomain=function(){return this.domain_};goog.Uri.prototype.setDomain=function(a,b){this.enforceReadOnly();this.domain_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasDomain=function(){return!!this.domain_};goog.Uri.prototype.getPort=function(){return this.port_};
+goog.Uri.prototype.setPort=function(a){this.enforceReadOnly();if(a){a=Number(a);if(isNaN(a)||0>a)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_};
+goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)};
+goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this};
+goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this};
+goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this};
+goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_};
+goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)};
+goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(goog.string.contains(a,"./")||goog.string.contains(a,"/.")){var b=goog.string.startsWith(a,"/");a=a.split("/");for(var c=[],d=0;d>4&15).toString(16)+(a&15).toString(16)};goog.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
+goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c};
+goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_)){var a=this;goog.uri.utils.parseQueryData(this.encodedQuery_,function(b,c){a.add(goog.string.urlDecode(b),c)})}};
+goog.Uri.QueryData.createFromMap=function(a,b,c){b=goog.structs.getKeys(a);if("undefined"==typeof b)throw Error("Keys are undefined");c=new goog.Uri.QueryData(null,null,c);a=goog.structs.getValues(a);for(var d=0;da){var b=goog.math.Integer.IntCache_[a];if(b)return b}b=new goog.math.Integer([a|0],0>a?-1:0);-128<=a&&128>a&&(goog.math.Integer.IntCache_[a]=b);return b};
+goog.math.Integer.fromNumber=function(a){if(isNaN(a)||!isFinite(a))return goog.math.Integer.ZERO;if(0>a)return goog.math.Integer.fromNumber(-a).negate();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=goog.math.Integer.TWO_PWR_32_DBL_;return new goog.math.Integer(b,0)};goog.math.Integer.fromBits=function(a){return new goog.math.Integer(a,a[a.length-1]&-2147483648?-1:0)};
+goog.math.Integer.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=goog.math.Integer.fromNumber(Math.pow(b,
+f)),d=d.multiply(f).add(goog.math.Integer.fromNumber(g))):(d=d.multiply(c),d=d.add(goog.math.Integer.fromNumber(g)))}return d};goog.math.Integer.TWO_PWR_32_DBL_=4294967296;goog.math.Integer.ZERO=goog.math.Integer.fromInt(0);goog.math.Integer.ONE=goog.math.Integer.fromInt(1);goog.math.Integer.TWO_PWR_24_=goog.math.Integer.fromInt(16777216);goog.math.Integer.prototype.toInt=function(){return 0a||36>>0).toString(a);c=e;if(c.isZero())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};goog.math.Integer.prototype.getBits=function(a){return 0>a?0:athis.compare(a)};goog.math.Integer.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};goog.math.Integer.prototype.compare=function(a){a=this.subtract(a);return a.isNegative()?-1:a.isZero()?0:1};
+goog.math.Integer.prototype.shorten=function(a){var b=a-1>>5;a=(a-1)%32;for(var c=[],d=0;d>>16,g=this.getBits(e)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;g=d+g+k;f=(g>>>16)+f+h;d=f>>>16;g&=65535;f&=65535;c[e]=f<<16|g}return goog.math.Integer.fromBits(c)};goog.math.Integer.prototype.subtract=function(a){return this.add(a.negate())};
+goog.math.Integer.prototype.multiply=function(a){if(this.isZero()||a.isZero())return goog.math.Integer.ZERO;if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();if(this.lessThan(goog.math.Integer.TWO_PWR_24_)&&a.lessThan(goog.math.Integer.TWO_PWR_24_))return goog.math.Integer.fromNumber(this.toNumber()*a.toNumber());for(var b=this.bits_.length+a.bits_.length,c=[],d=0;d<2*b;d++)c[d]=
+0;for(d=0;d>>16,g=this.getBits(d)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;c[2*d+2*e]+=g*k;goog.math.Integer.carry16_(c,2*d+2*e);c[2*d+2*e+1]+=f*k;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+1]+=g*h;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+2]+=f*h;goog.math.Integer.carry16_(c,2*d+2*e+2)}for(d=0;d>>16,a[b]&=65535,b++};
+goog.math.Integer.prototype.slowDivide_=function(a){if(this.isNegative()||a.isNegative())throw Error("slowDivide_ only works with positive integers.");for(var b=goog.math.Integer.ONE;a.lessThanOrEqual(this);)b=b.shiftLeft(1),a=a.shiftLeft(1);var c=b.shiftRight(1),d=a.shiftRight(1);a=a.shiftRight(2);for(b=b.shiftRight(2);!a.isZero();){var e=d.add(a);e.lessThanOrEqual(this)&&(c=c.add(b),d=e);a=a.shiftRight(1);b=b.shiftRight(1)}return c};
+goog.math.Integer.prototype.divide=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Integer.ZERO;if(this.isNegative())return a.isNegative()?this.negate().divide(a.negate()):this.negate().divide(a).negate();if(a.isNegative())return this.divide(a.negate()).negate();if(30=e?1:Math.pow(2,e-48);for(var f=goog.math.Integer.fromNumber(d),g=f.multiply(a);g.isNegative()||g.greaterThan(c);)d-=e,f=goog.math.Integer.fromNumber(d),g=f.multiply(a);f.isZero()&&(f=goog.math.Integer.ONE);b=b.add(f);c=c.subtract(g)}return b};goog.math.Integer.prototype.modulo=function(a){return this.subtract(this.divide(a).multiply(a))};goog.math.Integer.prototype.not=function(){for(var a=this.bits_.length,b=[],c=0;c>5;a%=32;for(var c=this.bits_.length+b+(0>>32-a:this.getBits(e-b);return new goog.math.Integer(d,this.sign_)};
+goog.math.Integer.prototype.shiftRight=function(a){var b=a>>5;a%=32;for(var c=this.bits_.length-b,d=[],e=0;e>>a|this.getBits(e+b+1)<<32-a:this.getBits(e+b);return new goog.math.Integer(d,this.sign_)};goog.string.StringBuffer=function(a,b){null!=a&&this.append.apply(this,arguments)};goog.string.StringBuffer.prototype.buffer_="";goog.string.StringBuffer.prototype.set=function(a){this.buffer_=""+a};goog.string.StringBuffer.prototype.append=function(a,b,c){this.buffer_+=String(a);if(null!=b)for(var d=1;da?-1:0)})};goog.math.Long.MAX_VALUE_FOR_RADIX_=" 111111111111111111111111111111111111111111111111111111111111111 2021110011022210012102010021220101220221 13333333333333333333333333333333 1104332401304422434310311212 1540241003031030222122211 22341010611245052052300 777777777777777777777 67404283172107811827 9223372036854775807 1728002635214590697 41a792678515120367 10b269549075433c37 4340724c6c71dc7a7 160e2ad3246366807 7fffffffffffffff 33d3d8307b214008 16agh595df825fa7 ba643dci0ffeehh 5cbfjia3fh26ja7 2heiciiie82dh97 1adaibb21dckfa7 i6k448cf4192c2 acd772jnc9l0l7 64ie1focnn5g77 3igoecjbmca687 27c48l5b37oaop 1bk39f3ah3dmq7 q1se8f0m04isb hajppbc1fc207 bm03i95hia437 7vvvvvvvvvvvv 5hg4ck9jd4u37 3tdtk1v8j6tpp 2pijmikexrxp7 1y2p0ij32e8e7".split(" ");
+goog.math.Long.MIN_VALUE_FOR_RADIX_=" -1000000000000000000000000000000000000000000000000000000000000000 -2021110011022210012102010021220101220222 -20000000000000000000000000000000 -1104332401304422434310311213 -1540241003031030222122212 -22341010611245052052301 -1000000000000000000000 -67404283172107811828 -9223372036854775808 -1728002635214590698 -41a792678515120368 -10b269549075433c38 -4340724c6c71dc7a8 -160e2ad3246366808 -8000000000000000 -33d3d8307b214009 -16agh595df825fa8 -ba643dci0ffeehi -5cbfjia3fh26ja8 -2heiciiie82dh98 -1adaibb21dckfa8 -i6k448cf4192c3 -acd772jnc9l0l8 -64ie1focnn5g78 -3igoecjbmca688 -27c48l5b37oaoq -1bk39f3ah3dmq8 -q1se8f0m04isc -hajppbc1fc208 -bm03i95hia438 -8000000000000 -5hg4ck9jd4u38 -3tdtk1v8j6tpq -2pijmikexrxp8 -1y2p0ij32e8e8".split(" ");
+goog.math.Long.fromInt=function(a){var b=a|0;goog.asserts.assert(a===b,"value should be a 32-bit integer");return-128<=b&&128>b?goog.math.Long.getCachedIntValue_(b):new goog.math.Long(b,0>b?-1:0)};
+goog.math.Long.fromNumber=function(a){return isNaN(a)?goog.math.Long.getZero():a<=-goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.getMinValue():a+1>=goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.getMaxValue():0>a?goog.math.Long.fromNumber(-a).negate():new goog.math.Long(a%goog.math.Long.TWO_PWR_32_DBL_|0,a/goog.math.Long.TWO_PWR_32_DBL_|0)};goog.math.Long.fromBits=function(a,b){return new goog.math.Long(a,b)};
+goog.math.Long.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=goog.math.Long.fromNumber(Math.pow(b,
+f)),d=d.multiply(f).add(goog.math.Long.fromNumber(g))):(d=d.multiply(c),d=d.add(goog.math.Long.fromNumber(g)))}return d};goog.math.Long.isStringInRange=function(a,b){b=b||10;if(2>b||36a||36>>0).toString(a);b=e;if(b.isZero())return f+
+d;for(;6>f.length;)f="0"+f;d=""+f+d}};goog.math.Long.prototype.getHighBits=function(){return this.high_};goog.math.Long.prototype.getLowBits=function(){return this.low_};goog.math.Long.prototype.getLowBitsUnsigned=function(){return 0<=this.low_?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_};
+goog.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(goog.math.Long.getMinValue())?64:this.negate().getNumBitsAbs();for(var a=0!=this.high_?this.high_:this.low_,b=31;0this.high_};goog.math.Long.prototype.isOdd=function(){return 1==(this.low_&1)};
+goog.math.Long.prototype.equals=function(a){return this.high_==a.high_&&this.low_==a.low_};goog.math.Long.prototype.notEquals=function(a){return this.high_!=a.high_||this.low_!=a.low_};goog.math.Long.prototype.lessThan=function(a){return 0>this.compare(a)};goog.math.Long.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};goog.math.Long.prototype.greaterThan=function(a){return 0>>16,c=this.high_&65535,d=this.low_>>>16,e=a.high_>>>16,f=a.high_&65535,g=a.low_>>>16;a=(this.low_&65535)+(a.low_&65535);g=(a>>>16)+(d+g);d=g>>>16;d+=c+f;b=(d>>>16)+(b+e)&65535;return goog.math.Long.fromBits((g&65535)<<16|a&65535,b<<16|d&65535)};goog.math.Long.prototype.subtract=function(a){return this.add(a.negate())};
+goog.math.Long.prototype.multiply=function(a){if(this.isZero()||a.isZero())return goog.math.Long.getZero();if(this.equals(goog.math.Long.getMinValue()))return a.isOdd()?goog.math.Long.getMinValue():goog.math.Long.getZero();if(a.equals(goog.math.Long.getMinValue()))return this.isOdd()?goog.math.Long.getMinValue():goog.math.Long.getZero();if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();
+if(this.lessThan(goog.math.Long.getTwoPwr24())&&a.lessThan(goog.math.Long.getTwoPwr24()))return goog.math.Long.fromNumber(this.toNumber()*a.toNumber());var b=this.high_>>>16,c=this.high_&65535,d=this.low_>>>16,e=this.low_&65535,f=a.high_>>>16,g=a.high_&65535,h=a.low_>>>16;a=a.low_&65535;var k=e*a;var l=(k>>>16)+d*a;var m=l>>>16;l=(l&65535)+e*h;m+=l>>>16;m+=c*a;var n=m>>>16;m=(m&65535)+d*h;n+=m>>>16;m=(m&65535)+e*g;n=n+(m>>>16)+(b*a+c*h+d*g+e*f)&65535;return goog.math.Long.fromBits((l&65535)<<16|k&
+65535,n<<16|m&65535)};
+goog.math.Long.prototype.div=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Long.getZero();if(this.equals(goog.math.Long.getMinValue())){if(a.equals(goog.math.Long.getOne())||a.equals(goog.math.Long.getNegOne()))return goog.math.Long.getMinValue();if(a.equals(goog.math.Long.getMinValue()))return goog.math.Long.getOne();var b=this.shiftRight(1).div(a).shiftLeft(1);if(b.equals(goog.math.Long.getZero()))return a.isNegative()?goog.math.Long.getOne():goog.math.Long.getNegOne();
+var c=this.subtract(a.multiply(b));return b.add(c.div(a))}if(a.equals(goog.math.Long.getMinValue()))return goog.math.Long.getZero();if(this.isNegative())return a.isNegative()?this.negate().div(a.negate()):this.negate().div(a).negate();if(a.isNegative())return this.div(a.negate()).negate();var d=goog.math.Long.getZero();for(c=this;c.greaterThanOrEqual(a);){b=Math.max(1,Math.floor(c.toNumber()/a.toNumber()));var e=Math.ceil(Math.log(b)/Math.LN2);e=48>=e?1:Math.pow(2,e-48);for(var f=goog.math.Long.fromNumber(b),
+g=f.multiply(a);g.isNegative()||g.greaterThan(c);)b-=e,f=goog.math.Long.fromNumber(b),g=f.multiply(a);f.isZero()&&(f=goog.math.Long.getOne());d=d.add(f);c=c.subtract(g)}return d};goog.math.Long.prototype.modulo=function(a){return this.subtract(this.div(a).multiply(a))};goog.math.Long.prototype.not=function(){return goog.math.Long.fromBits(~this.low_,~this.high_)};goog.math.Long.prototype.and=function(a){return goog.math.Long.fromBits(this.low_&a.low_,this.high_&a.high_)};
+goog.math.Long.prototype.or=function(a){return goog.math.Long.fromBits(this.low_|a.low_,this.high_|a.high_)};goog.math.Long.prototype.xor=function(a){return goog.math.Long.fromBits(this.low_^a.low_,this.high_^a.high_)};goog.math.Long.prototype.shiftLeft=function(a){a&=63;if(0==a)return this;var b=this.low_;return 32>a?goog.math.Long.fromBits(b<>>32-a):goog.math.Long.fromBits(0,b<a?goog.math.Long.fromBits(this.low_>>>a|b<<32-a,b>>a):goog.math.Long.fromBits(b>>a-32,0<=b?0:-1)};goog.math.Long.prototype.shiftRightUnsigned=function(a){a&=63;if(0==a)return this;var b=this.high_;return 32>a?goog.math.Long.fromBits(this.low_>>>a|b<<32-a,b>>>a):32==a?goog.math.Long.fromBits(b,0):goog.math.Long.fromBits(b>>>a-32,0)};goog.math.Long.ValueCacheId_={MAX_VALUE:1,MIN_VALUE:2,TWO_PWR_24:6};var cljs={core:{}};cljs.core._STAR_clojurescript_version_STAR_="1.10.597";cljs.core._STAR_unchecked_if_STAR_=!1;cljs.core._STAR_unchecked_arrays_STAR_=!1;cljs.core._STAR_warn_on_infer_STAR_=!1;if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core.PROTOCOL_SENTINEL)cljs.core.PROTOCOL_SENTINEL={};cljs.core.MODULE_URIS=null;cljs.core.MODULE_INFOS=null;cljs.core._STAR_target_STAR_="default";cljs.core._STAR_ns_STAR_=null;cljs.core._STAR_out_STAR_=null;
+cljs.core._STAR_assert_STAR_=!0;if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core._STAR_print_fn_STAR_)cljs.core._STAR_print_fn_STAR_=null;cljs.core._STAR_exec_tap_fn_STAR_=function(a){return"undefined"!==typeof setTimeout?(a=setTimeout(a,0),cljs.core.truth_(a)?!0:a):!1};if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core._STAR_print_err_fn_STAR_)cljs.core._STAR_print_err_fn_STAR_=null;
+cljs.core.set_print_fn_BANG_=function(a){return cljs.core._STAR_print_fn_STAR_=a};cljs.core.set_print_err_fn_BANG_=function(a){return cljs.core._STAR_print_err_fn_STAR_=a};cljs.core._STAR_flush_on_newline_STAR_=!0;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_readably_STAR_=!0;cljs.core._STAR_print_meta_STAR_=!1;cljs.core._STAR_print_dup_STAR_=!1;cljs.core._STAR_print_namespace_maps_STAR_=!1;cljs.core._STAR_print_length_STAR_=null;cljs.core._STAR_print_level_STAR_=null;
+cljs.core._STAR_print_fn_bodies_STAR_=!1;if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core._STAR_loaded_libs_STAR_)cljs.core._STAR_loaded_libs_STAR_=null;
+cljs.core.pr_opts=function(){return new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$flush_DASH_on_DASH_newline,cljs.core._STAR_flush_on_newline_STAR_,cljs.core.cst$kw$readably,cljs.core._STAR_print_readably_STAR_,cljs.core.cst$kw$meta,cljs.core._STAR_print_meta_STAR_,cljs.core.cst$kw$dup,cljs.core._STAR_print_dup_STAR_,cljs.core.cst$kw$print_DASH_length,cljs.core._STAR_print_length_STAR_],null)};
+cljs.core.enable_console_print_BANG_=function(){cljs.core._STAR_print_newline_STAR_=!1;cljs.core.set_print_fn_BANG_.call(null,function(){return console.log.apply(console,goog.array.clone(arguments))});cljs.core.set_print_err_fn_BANG_.call(null,function(){return console.error.apply(console,goog.array.clone(arguments))});return null};cljs.core.truth_=function(a){return null!=a&&!1!==a};cljs.core.not_native=null;cljs.core.identical_QMARK_=function(a,b){return a===b};
+cljs.core.nil_QMARK_=function(a){return null==a};cljs.core.array_QMARK_=function(a){return"nodejs"===cljs.core._STAR_target_STAR_?Array.isArray(a):a instanceof Array};cljs.core.number_QMARK_=function(a){return"number"===typeof a};cljs.core.not=function(a){return null==a?!0:!1===a?!0:!1};cljs.core.some_QMARK_=function(a){return null!=a};cljs.core.object_QMARK_=function(a){return null!=a?a.constructor===Object:!1};cljs.core.string_QMARK_=function(a){return goog.isString(a)};
+cljs.core.char_QMARK_=function(a){return"string"===typeof a&&1===a.length};cljs.core.any_QMARK_=function(a){return!0};cljs.core.native_satisfies_QMARK_=function(a,b){return a[goog.typeOf(null==b?null:b)]?!0:a._?!0:!1};cljs.core.is_proto_=function(a){return a.constructor.prototype===a};cljs.core._STAR_main_cli_fn_STAR_=null;cljs.core._STAR_command_line_args_STAR_=null;cljs.core.type=function(a){return null==a?null:a.constructor};
+cljs.core.missing_protocol=function(a,b){var c=cljs.core.type.call(null,b);c=cljs.core.truth_(cljs.core.truth_(c)?c.cljs$lang$type:c)?c.cljs$lang$ctorStr:goog.typeOf(b);return Error(["No protocol method ",a," defined for type ",c,": ",b].join(""))};cljs.core.type__GT_str=function(a){var b=a.cljs$lang$ctorStr;return cljs.core.truth_(b)?b:cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.load_file=function(a){return cljs.core.truth_(COMPILED)?null:goog.nodeGlobalRequire(a)};
+"undefined"!==typeof Symbol&&"function"===goog.typeOf(Symbol)?cljs.core.ITER_SYMBOL=Symbol.iterator:cljs.core.ITER_SYMBOL="@@iterator";cljs.core.CHAR_MAP={"]":"_RBRACK_","'":"_SINGLEQUOTE_","\x3d":"_EQ_",'"':"_DOUBLEQUOTE_","!":"_BANG_","*":"_STAR_","%":"_PERCENT_","|":"_BAR_","~":"_TILDE_","/":"_SLASH_","\\":"_BSLASH_","-":"_","?":"_QMARK_","\x26":"_AMPERSAND_",":":"_COLON_","\x3c":"_LT_","{":"_LBRACE_","}":"_RBRACE_","[":"_LBRACK_","#":"_SHARP_","^":"_CARET_","+":"_PLUS_","@":"_CIRCA_","\x3e":"_GT_"};
+cljs.core.DEMUNGE_MAP={_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_:"*"};cljs.core.DEMUNGE_PATTERN=null;
+cljs.core.system_time=function(){if("undefined"!==typeof performance&&null!=performance.now)return performance.now();if("undefined"!==typeof process&&null!=process.hrtime){var a=process.hrtime();return(1E9*a[0]+a[1])/1E6}return(new Date).getTime()};
+cljs.core.make_array=function(a){switch(arguments.length){case 1:return cljs.core.make_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.make_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(db)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(b>>-b};"undefined"!==typeof Math&&"undefined"!==typeof Math.imul&&0!==Math.imul(4294967295,5)?cljs.core.imul=function(a,b){return Math.imul(a,b)}:cljs.core.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16&65535)*d+c*(b>>>16&65535)<<16>>>0)|0};cljs.core.m3_seed=0;cljs.core.m3_C1=-862048943;cljs.core.m3_C2=461845907;
+cljs.core.m3_mix_K1=function(a){return cljs.core.imul.call(null,cljs.core.int_rotate_left.call(null,cljs.core.imul.call(null,a|0,cljs.core.m3_C1),15),cljs.core.m3_C2)};cljs.core.m3_mix_H1=function(a,b){return cljs.core.imul.call(null,cljs.core.int_rotate_left.call(null,(a|0)^(b|0),13),5)+-430675100|0};cljs.core.m3_fmix=function(a,b){a=(a|0)^b;a=cljs.core.imul.call(null,a^a>>>16,-2048144789);a=cljs.core.imul.call(null,a^a>>>13,-1028477387);return a^a>>>16};
+cljs.core.m3_hash_int=function(a){if(0===a)return a;a=cljs.core.m3_mix_K1.call(null,a);a=cljs.core.m3_mix_H1.call(null,cljs.core.m3_seed,a);return cljs.core.m3_fmix.call(null,a,4)};
+cljs.core.m3_hash_unencoded_chars=function(a){a:{var b=1;for(var c=cljs.core.m3_seed;;)if(b>2)};cljs.core.instance_QMARK_=function(a,b){return b instanceof a};cljs.core.symbol_QMARK_=function(a){return a instanceof cljs.core.Symbol};cljs.core.hash_symbol=function(a){return cljs.core.hash_combine.call(null,cljs.core.m3_hash_unencoded_chars.call(null,a.name),cljs.core.hash_string.call(null,a.ns))};
+cljs.core.compare_symbols=function(a,b){if(a.str===b.str)return 0;if(cljs.core.truth_(cljs.core.not.call(null,a.ns)?b.ns:!1))return-1;if(cljs.core.truth_(a.ns)){if(cljs.core.not.call(null,b.ns))return 1;var c=goog.array.defaultCompare(a.ns,b.ns);return 0===c?goog.array.defaultCompare(a.name,b.name):c}return goog.array.defaultCompare(a.name,b.name)};
+cljs.core.Symbol=function(a,b,c,d,e){this.ns=a;this.name=b;this.str=c;this._hash=d;this._meta=e;this.cljs$lang$protocol_mask$partition0$=2154168321;this.cljs$lang$protocol_mask$partition1$=4096};cljs.core.Symbol.prototype.toString=function(){return this.str};cljs.core.Symbol.prototype.equiv=function(a){return cljs.core._equiv.call(null,this,a)};cljs.core.Symbol.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Symbol?this.str===b.str:!1};
+cljs.core.Symbol.prototype.call=function(){var a=null,b=function(a,b){return cljs.core.get.call(null,b,this)},c=function(a,b,c){return cljs.core.get.call(null,b,this,c)};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
+cljs.core.Symbol.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone.call(null,b)))};cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.get.call(null,a,this)};cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.get.call(null,a,this,b)};cljs.core.Symbol.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};
+cljs.core.Symbol.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Symbol(this.ns,this.name,this.str,this._hash,b)};cljs.core.Symbol.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this._hash;return null!=a?a:this._hash=a=cljs.core.hash_symbol.call(null,this)};cljs.core.Symbol.prototype.cljs$core$INamed$_name$arity$1=function(a){return this.name};cljs.core.Symbol.prototype.cljs$core$INamed$_namespace$arity$1=function(a){return this.ns};
+cljs.core.Symbol.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write.call(null,b,this.str)};cljs.core.Symbol.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$ns,cljs.core.cst$sym$name,cljs.core.cst$sym$str,cljs.core.with_meta(cljs.core.cst$sym$_hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.cst$sym$_meta],null)};
+cljs.core.Symbol.cljs$lang$type=!0;cljs.core.Symbol.cljs$lang$ctorStr="cljs.core/Symbol";cljs.core.Symbol.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/Symbol")};cljs.core.__GT_Symbol=function(a,b,c,d,e){return new cljs.core.Symbol(a,b,c,d,e)};cljs.core.var_QMARK_=function(a){return a instanceof cljs.core.Var};
+cljs.core.symbol=function(a){switch(arguments.length){case 1:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.symbol.cljs$core$IFn$_invoke$arity$1=function(a){for(;;){if(a instanceof cljs.core.Symbol)return a;if("string"===typeof a){var b=a.indexOf("/");return 1>b?cljs.core.symbol.call(null,null,a):cljs.core.symbol.call(null,a.substring(0,b),a.substring(b+1,a.length))}if(cljs.core.var_QMARK_.call(null,a))return a.sym;if(a instanceof cljs.core.Keyword)a=a.fqn;else throw Error("no conversion to symbol");}};
+cljs.core.symbol.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=null!=a?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""):b;return new cljs.core.Symbol(a,b,c,null,null)};cljs.core.symbol.cljs$lang$maxFixedArity=2;cljs.core.Var=function(a,b,c){this.val=a;this.sym=b;this._meta=c;this.cljs$lang$protocol_mask$partition0$=6717441;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.Var.prototype.isMacro=function(){return this.val.call(null).cljs$lang$macro};
+cljs.core.Var.prototype.toString=function(){return["#'",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.sym)].join("")};cljs.core.Var.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.val.call(null)};cljs.core.Var.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};cljs.core.Var.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Var(this.val,this.sym,b)};
+cljs.core.Var.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Var?cljs.core._EQ_.call(null,this.sym,b.sym):!1};cljs.core.Var.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_symbol.call(null,this.sym)};cljs.core.Var.prototype.cljs$core$Fn$=cljs.core.PROTOCOL_SENTINEL;
+cljs.core.Var.prototype.call=function(){var a=null,b=function(a){return this.val.call(null).call(null)},c=function(a,b){return this.val.call(null).call(null,b)},d=function(a,b,c){return this.val.call(null).call(null,b,c)},e=function(a,b,c,d){return this.val.call(null).call(null,b,c,d)},f=function(a,b,c,d,e){return this.val.call(null).call(null,b,c,d,e)},g=function(a,b,c,d,e,f){return this.val.call(null).call(null,b,c,d,e,f)},h=function(a,b,c,d,e,f,g){return this.val.call(null).call(null,b,c,d,e,f,
+g)},k=function(a,b,c,d,e,f,g,h){return this.val.call(null).call(null,b,c,d,e,f,g,h)},l=function(a,b,c,d,e,f,g,h,k){return this.val.call(null).call(null,b,c,d,e,f,g,h,k)},m=function(a,b,c,d,e,f,g,h,k,l){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l)},n=function(a,b,c,d,e,f,g,h,k,l,m){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m)},p=function(a,b,c,d,e,f,g,h,k,l,m,n){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n)},q=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return this.val.call(null).call(null,
+b,c,d,e,f,g,h,k,l,m,n,p)},r=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q)},t=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r)},u=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t)},v=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u)},w=function(a,b,c,d,e,f,g,h,k,l,
+m,n,p,q,r,t,u,w){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w)},x=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v)},y=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x)},z=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y){return this.val.call(null).call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y)},F=function(a,b,c,d,e,f,g,
+h,k,l,m,n,p,q,r,t,u,w,v,x,y,z){return cljs.core.apply.call(null,this.val.call(null),b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,z)};a=function(a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R,S,U,T,X,W){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,D);case 3:return d.call(this,a,D,A);case 4:return e.call(this,a,D,A,B);case 5:return f.call(this,a,D,A,B,C);case 6:return g.call(this,a,D,A,B,C,E);case 7:return h.call(this,a,D,A,B,C,E,K);case 8:return k.call(this,a,D,A,B,C,E,K,L);case 9:return l.call(this,
+a,D,A,B,C,E,K,L,G);case 10:return m.call(this,a,D,A,B,C,E,K,L,G,J);case 11:return n.call(this,a,D,A,B,C,E,K,L,G,J,I);case 12:return p.call(this,a,D,A,B,C,E,K,L,G,J,I,H);case 13:return q.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O);case 14:return r.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N);case 15:return t.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M);case 16:return u.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q);case 17:return v.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R);case 18:return w.call(this,a,D,A,B,C,E,K,L,
+G,J,I,H,O,N,M,Q,R,S);case 19:return x.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R,S,U);case 20:return y.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R,S,U,T);case 21:return z.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R,S,U,T,X);case 22:return F.call(this,a,D,A,B,C,E,K,L,G,J,I,H,O,N,M,Q,R,S,U,T,X,W)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;a.cljs$core$IFn$_invoke$arity$3=d;a.cljs$core$IFn$_invoke$arity$4=e;a.cljs$core$IFn$_invoke$arity$5=
+f;a.cljs$core$IFn$_invoke$arity$6=g;a.cljs$core$IFn$_invoke$arity$7=h;a.cljs$core$IFn$_invoke$arity$8=k;a.cljs$core$IFn$_invoke$arity$9=l;a.cljs$core$IFn$_invoke$arity$10=m;a.cljs$core$IFn$_invoke$arity$11=n;a.cljs$core$IFn$_invoke$arity$12=p;a.cljs$core$IFn$_invoke$arity$13=q;a.cljs$core$IFn$_invoke$arity$14=r;a.cljs$core$IFn$_invoke$arity$15=t;a.cljs$core$IFn$_invoke$arity$16=u;a.cljs$core$IFn$_invoke$arity$17=v;a.cljs$core$IFn$_invoke$arity$18=w;a.cljs$core$IFn$_invoke$arity$19=x;a.cljs$core$IFn$_invoke$arity$20=
+y;a.cljs$core$IFn$_invoke$arity$21=z;a.cljs$core$IFn$_invoke$arity$22=F;return a}();cljs.core.Var.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone.call(null,b)))};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$0=function(){return this.val.call(null).call(null)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.val.call(null).call(null,a)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.val.call(null).call(null,a,b)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return this.val.call(null).call(null,a,b,c)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return this.val.call(null).call(null,a,b,c,d)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return this.val.call(null).call(null,a,b,c,d,e)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){return this.val.call(null).call(null,a,b,c,d,e,f)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){return this.val.call(null).call(null,a,b,c,d,e,f,g)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){return this.val.call(null).call(null,a,b,c,d,e,f,g,h)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w)};
+cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x){return this.val.call(null).call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x)};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y){return cljs.core.apply.call(null,this.val.call(null),a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y)};
+cljs.core.Var.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$val,cljs.core.cst$sym$sym,cljs.core.cst$sym$_meta],null)};cljs.core.Var.cljs$lang$type=!0;cljs.core.Var.cljs$lang$ctorStr="cljs.core/Var";cljs.core.Var.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/Var")};cljs.core.__GT_Var=function(a,b,c){return new cljs.core.Var(a,b,c)};
+cljs.core.iterable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIterable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IIterable,a):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IIterable,a)};cljs.core.clone=function(a){return cljs.core._clone.call(null,a)};
+cljs.core.cloneable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&8192||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICloneable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ICloneable,a):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ICloneable,a)};
+cljs.core.seq=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&8388608||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeqable$))return cljs.core._seq.call(null,a);if(cljs.core.array_QMARK_.call(null,a)||"string"===typeof a)return 0===a.length?null:new cljs.core.IndexedSeq(a,0,null);if(cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ISeqable,a))return cljs.core._seq.call(null,a);throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," is not ISeqable"].join(""));
+};cljs.core.first=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$))return cljs.core._first.call(null,a);a=cljs.core.seq.call(null,a);return null==a?null:cljs.core._first.call(null,a)};
+cljs.core.rest=function(a){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core._rest.call(null,a):(a=cljs.core.seq.call(null,a))?cljs.core._rest.call(null,a):cljs.core.List.EMPTY:cljs.core.List.EMPTY};
+cljs.core.next=function(a){return null==a?null:null!=a&&(a.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INext$)?cljs.core._next.call(null,a):cljs.core.seq.call(null,cljs.core.rest.call(null,a))};
+cljs.core._EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d=d)return-1;!(0c&&(c+=d,c=0>c?0:c);for(;;)if(cc?d+c:c;for(;;)if(0<=c){if(cljs.core._EQ_.call(null,cljs.core.nth.call(null,a,c),b))return c;--c}else return-1};cljs.core._lastIndexOf.cljs$lang$maxFixedArity=3;
+cljs.core.IndexedSeqIterator=function(a,b){this.arr=a;this.i=b};cljs.core.IndexedSeqIterator.prototype.hasNext=function(){return this.ia?0:a};cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){a=cljs.core._count.call(null,this);return 0b)throw Error("Index out of bounds");return cljs.core.linear_traversal_nth.call(null,a,b)}if(cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IIndexed,a))return cljs.core._nth.call(null,a,b);throw Error(["nth not supported on this type ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str.call(null,
+cljs.core.type.call(null,a)))].join(""));};
+cljs.core.nth.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if("number"!==typeof b)throw Error("Index argument to nth must be a number.");if(null==a)return c;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&16||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIndexed$))return cljs.core._nth.call(null,a,b,c);if(cljs.core.array_QMARK_.call(null,a))return-1b?c:cljs.core.linear_traversal_nth.call(null,a,b,c);if(cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IIndexed,a))return cljs.core._nth.call(null,a,b,c);throw Error(["nth not supported on this type ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str.call(null,cljs.core.type.call(null,a)))].join(""));};
+cljs.core.nth.cljs$lang$maxFixedArity=3;cljs.core.nthrest=function(a,b){for(var c=a;;)if(a=0a:a instanceof goog.math.Integer?a.isNegative():a instanceof goog.math.Long?a.isNegative():!1};cljs.core.nat_int_QMARK_=function(a){return cljs.core.integer_QMARK_.call(null,a)?!(0>a):a instanceof goog.math.Integer?cljs.core.not.call(null,a.isNegative()):a instanceof goog.math.Long?cljs.core.not.call(null,a.isNegative()):!1};cljs.core.float_QMARK_=function(a){return"number"===typeof a};
+cljs.core.double_QMARK_=function(a){return"number"===typeof a};cljs.core.infinite_QMARK_=function(a){return a===Number.POSITIVE_INFINITY||a===Number.NEGATIVE_INFINITY};cljs.core.contains_QMARK_=function(a,b){return cljs.core.get.call(null,a,b,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?!1:!0};
+cljs.core.find=function(a,b){return cljs.core.ifind_QMARK_.call(null,a)?cljs.core._find.call(null,a,b):null!=a&&cljs.core.associative_QMARK_.call(null,a)&&cljs.core.contains_QMARK_.call(null,a,b)?new cljs.core.MapEntry(b,cljs.core.get.call(null,a,b),null):null};
+cljs.core.distinct_QMARK_=function(a){switch(arguments.length){case 1:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(dd?1:0===c?0:cljs.core.compare_indexed.call(null,a,b,c,0)};cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){for(;;){var e=cljs.core.compare.call(null,cljs.core.nth.call(null,a,d),cljs.core.nth.call(null,b,d));if(0===e&&d+1b};cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>b)if(cljs.core.next.call(null,c))a=b,b=cljs.core.first.call(null,c),c=cljs.core.next.call(null,c);else return b>cljs.core.first.call(null,c);else return!1};
+cljs.core._GT_.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._GT_.cljs$lang$maxFixedArity=2;
+cljs.core._GT__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d=b};cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>=b)if(cljs.core.next.call(null,c))a=b,b=cljs.core.first.call(null,c),c=cljs.core.next.call(null,c);else return b>=cljs.core.first.call(null,c);else return!1};
+cljs.core._GT__EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._GT__EQ_.cljs$lang$maxFixedArity=2;cljs.core.dec=function(a){return a-1};
+cljs.core.max=function(a){switch(arguments.length){case 1:return cljs.core.max.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.max.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(db?a:b};cljs.core.max.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.call(null,cljs.core.max,a>b?a:b,c)};cljs.core.max.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.max.cljs$lang$maxFixedArity=2;
+cljs.core.min=function(a){switch(arguments.length){case 1:return cljs.core.min.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.min.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d>b};cljs.core.bit_shift_right_zero_fill=function(a,b){return a>>>b};cljs.core.unsigned_bit_shift_right=function(a,b){return a>>>b};
+cljs.core.bit_count=function(a){a-=a>>1&1431655765;a=(a&858993459)+(a>>2&858993459);return 16843009*(a+(a>>4)&252645135)>>24};
+cljs.core._EQ__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(da};
+cljs.core.nthnext=function(a,b){for(a=cljs.core.seq.call(null,a);;)if(a&&0c:b}()))b[c]=a.next(),c+=1;else return cljs.core.chunk_cons.call(null,cljs.core.array_chunk.call(null,b,0,c),cljs.core.chunkIteratorSeq.call(null,a));else return null},null,null)};
+cljs.core.TransformerIterator=function(a,b,c,d,e,f){this.buffer=a;this._next=b;this.completed=c;this.xf=d;this.sourceIter=e;this.multi=f};
+cljs.core.TransformerIterator.prototype.step=function(){if(this._next!==cljs.core.NONE)return!0;for(;;)if(this._next===cljs.core.NONE)if(this.buffer.isEmpty()){if(this.completed)return!1;if(this.sourceIter.hasNext()){var a=this.multi?cljs.core.apply.call(null,this.xf,cljs.core.cons.call(null,null,this.sourceIter.next())):this.xf.call(null,null,this.sourceIter.next());cljs.core.reduced_QMARK_.call(null,a)&&(this.xf.call(null,null),this.completed=!0)}else this.xf.call(null,null),this.completed=!0}else this._next=
+this.buffer.remove();else return!0};cljs.core.TransformerIterator.prototype.hasNext=function(){return this.step()};cljs.core.TransformerIterator.prototype.next=function(){if(this.hasNext()){var a=this._next;this._next=cljs.core.NONE;return a}throw Error("No such element");};cljs.core.TransformerIterator.prototype.remove=function(){return Error("Unsupported operation")};
+cljs.core.TransformerIterator.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs.core.cst$sym$buffer,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$_next,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$completed,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),
+cljs.core.with_meta(cljs.core.cst$sym$xf,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.cst$sym$sourceIter,cljs.core.cst$sym$multi],null)};cljs.core.TransformerIterator.cljs$lang$type=!0;cljs.core.TransformerIterator.cljs$lang$ctorStr="cljs.core/TransformerIterator";cljs.core.TransformerIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/TransformerIterator")};
+cljs.core.__GT_TransformerIterator=function(a,b,c,d,e,f){return new cljs.core.TransformerIterator(a,b,c,d,e,f)};goog.object.set(cljs.core.TransformerIterator.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.transformer_iterator=function(a,b,c){var d=new cljs.core.TransformerIterator(cljs.core.EMPTY,cljs.core.NONE,!1,null,b,c);d.xf=a.call(null,function(){var a=null,b=function(a,b){d.buffer=d.buffer.add(b);return a};a=function(a,c){switch(arguments.length){case 0:return null;case 1:return a;case 2:return b.call(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=function(){return null};a.cljs$core$IFn$_invoke$arity$1=function(a){return a};a.cljs$core$IFn$_invoke$arity$2=
+b;return a}());return d};cljs.core.TransformerIterator.create=function(a,b){return cljs.core.transformer_iterator.call(null,a,b,!1)};cljs.core.TransformerIterator.createMulti=function(a,b){return cljs.core.transformer_iterator.call(null,a,new cljs.core.MultiIterator(cljs.core.to_array.call(null,b)),!0)};
+cljs.core.sequence=function(a){switch(arguments.length){case 1:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(da?0:a-1>>>5<<5};cljs.core.new_path=function(a,b,c){for(;;){if(0===b)return c;var d=cljs.core.pv_fresh_node.call(null,a);cljs.core.pv_aset.call(null,d,0,c);c=d;b-=5}};
+cljs.core.push_tail=function(a,b,c,d){var e=cljs.core.pv_clone_node.call(null,c),f=a.cnt-1>>>b&31;5===b?cljs.core.pv_aset.call(null,e,f,d):(c=cljs.core.pv_aget.call(null,c,f),a=null!=c?cljs.core.push_tail.call(null,a,b-5,c,d):cljs.core.new_path.call(null,null,b-5,d),cljs.core.pv_aset.call(null,e,f,a));return e};
+cljs.core.vector_index_out_of_bounds=function(a,b){throw Error(["No item ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," in vector of length ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.first_array_for_longvec=function(a){var b=a.root;for(a=a.shift;;)if(0=cljs.core.tail_off.call(null,a))return a.tail;var c=a.root;for(a=a.shift;;)if(0>>a&31),a-=5;else return c.arr};cljs.core.array_for=function(a,b){return 0<=b&&b>>b&31;cljs.core.pv_aset.call(null,f,g,cljs.core.do_assoc.call(null,a,b-5,cljs.core.pv_aget.call(null,c,g),d,e))}return f};
+cljs.core.pop_tail=function(a,b,c){var d=a.cnt-2>>>b&31;if(5=this.cnt?new cljs.core.IndexedSeq(this.tail,0,null):cljs.core.chunked_seq.call(null,this,cljs.core.first_array_for_longvec.call(null,this),0,0)};cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentVector(b,this.cnt,this.shift,this.root,this.tail,this.__hash)};
+cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(32>this.cnt-cljs.core.tail_off.call(null,this)){a=this.tail.length;for(var c=Array(a+1),d=0;;)if(d>>5>1<c)return new cljs.core.PersistentVector(null,c,5,cljs.core.PersistentVector.EMPTY_NODE,a,null);b=a.slice(0,32);var d=new cljs.core.PersistentVector(null,32,5,cljs.core.PersistentVector.EMPTY_NODE,b,null);b=32;for(var e=cljs.core._as_transient.call(null,d);;)if(bb)return null;a=this.start+b;return ab||this.end<=this.start+b?cljs.core.vector_index_out_of_bounds.call(null,b,this.end-this.start):cljs.core._nth.call(null,this.v,this.start+b)};cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0>b||this.end<=this.start+b?c:cljs.core._nth.call(null,this.v,this.start+b,c)};
+cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){var d=this,e=d.start+b;if(0>b||d.end+1<=e)throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds [0,",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core._count.call(null,this)),"]"].join(""));return cljs.core.build_subvec.call(null,d.meta,cljs.core.assoc.call(null,d.v,e,c),d.start,function(){var a=d.end,b=e+1;return a>b?a:b}(),null)};
+cljs.core.Subvec.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.ranged_iterator.call(null,this.v,this.start,this.end):cljs.core.seq_iter.call(null,this)};cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Subvec.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Subvec(this.meta,this.v,this.start,this.end,this.__hash)};
+cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.end-this.start};cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.start===this.end?null:cljs.core._nth.call(null,this.v,this.end-1)};cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1=function(a){if(this.start===this.end)throw Error("Can't pop empty vector");return cljs.core.build_subvec.call(null,this.meta,this.v,this.start,this.end-1,null)};
+cljs.core.Subvec.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return this.start!==this.end?new cljs.core.RSeq(this,this.end-this.start-1,null):null};cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};
+cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta.call(null,cljs.core.PersistentVector.EMPTY,this.meta)};cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.call(null,this.v,b,this.start,this.end):cljs.core.ci_reduce.call(null,this,b)};
+cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.call(null,this.v,b,c,this.start,this.end):cljs.core.ci_reduce.call(null,this,b,c)};cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if("number"===typeof b)return cljs.core._assoc_n.call(null,this,b,c);throw Error("Subvec's key for assoc must be a number.");};
+cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return function e(a){return a===b.end?null:cljs.core.cons.call(null,cljs.core._nth.call(null,b.v,a),new cljs.core.LazySeq(null,function(){return e.call(null,a+1)},null,null))}.call(null,b.start)};cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:cljs.core.build_subvec.call(null,b,this.v,this.start,this.end,this.__hash)};
+cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.build_subvec.call(null,this.meta,cljs.core._assoc_n.call(null,this.v,this.end,b),this.start,this.end+1,null)};
+cljs.core.Subvec.prototype.call=function(){var a=null,b=function(a,b){return cljs.core._nth.call(null,this,b)},c=function(a,b,c){return cljs.core._nth.call(null,this,b,c)};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
+cljs.core.Subvec.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone.call(null,b)))};cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core._nth.call(null,this,a)};cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._nth.call(null,this,a,b)};
+cljs.core.Subvec.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$meta,cljs.core.cst$sym$v,cljs.core.cst$sym$start,cljs.core.cst$sym$end,cljs.core.with_meta(cljs.core.cst$sym$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.Subvec.cljs$lang$type=!0;cljs.core.Subvec.cljs$lang$ctorStr="cljs.core/Subvec";
+cljs.core.Subvec.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/Subvec")};cljs.core.__GT_Subvec=function(a,b,c,d,e){return new cljs.core.Subvec(a,b,c,d,e)};goog.object.set(cljs.core.Subvec.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.build_subvec=function(a,b,c,d,e){for(;;)if(b instanceof cljs.core.Subvec)c=b.start+c,d=b.start+d,b=b.v;else{if(!cljs.core.vector_QMARK_.call(null,b))throw Error("v must satisfy IVector");if(0>c||dcljs.core.count.call(null,b))throw Error("Index out of bounds");return new cljs.core.Subvec(a,b,c,d,e)}};
+cljs.core.subvec=function(a){switch(arguments.length){case 2:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.subvec.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.subvec.call(null,a,b,cljs.core.count.call(null,a))};
+cljs.core.subvec.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==b||null==c)throw Error("Assert failed: (and (not (nil? start)) (not (nil? end)))");return cljs.core.build_subvec.call(null,null,a,b|0,c|0,null)};cljs.core.subvec.cljs$lang$maxFixedArity=3;cljs.core.tv_ensure_editable=function(a,b){return a===b.edit?b:new cljs.core.VectorNode(a,cljs.core.aclone.call(null,b.arr))};cljs.core.tv_editable_root=function(a){return new cljs.core.VectorNode({},cljs.core.aclone.call(null,a.arr))};
+cljs.core.tv_editable_tail=function(a){var b=[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];cljs.core.array_copy.call(null,a,0,b,0,a.length);return b};
+cljs.core.tv_push_tail=function(a,b,c,d){var e=cljs.core.tv_ensure_editable.call(null,a.root.edit,c),f=a.cnt-1>>>b&31;cljs.core.pv_aset.call(null,e,f,5===b?d:function(){var c=cljs.core.pv_aget.call(null,e,f);return null!=c?cljs.core.tv_push_tail.call(null,a,b-5,c,d):cljs.core.new_path.call(null,a.root.edit,b-5,d)}());return e};
+cljs.core.tv_pop_tail=function(a,b,c){c=cljs.core.tv_ensure_editable.call(null,a.root.edit,c);var d=a.cnt-2>>>b&31;if(5=cljs.core.tail_off.call(null,a))return a.tail;var c=a.root,d=c;for(a=a.shift;;)if(0>>a&31)),a-=5;else return d.arr};cljs.core.TransientVector=function(a,b,c,d){this.cnt=a;this.shift=b;this.root=c;this.tail=d;this.cljs$lang$protocol_mask$partition1$=88;this.cljs$lang$protocol_mask$partition0$=275};
+cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){if(this.root.edit){if(32>this.cnt-cljs.core.tail_off.call(null,this))this.tail[this.cnt&31]=b;else{a=new cljs.core.VectorNode(this.root.edit,this.tail);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.tail=c;this.cnt>>>5>1<>>a&31;cljs.core.pv_aset.call(null,g,f,h.call(null,a-5,cljs.core.pv_aget.call(null,g,f)))}return g}.call(null,d.shift,d.root),d.root=a),this;if(b===d.cnt)return cljs.core._conj_BANG_.call(null,
+this,c);throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds for TransientVector of length",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d.cnt)].join(""));}throw Error("assoc! after persistent!");};
+cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1=function(a){if(this.root.edit){if(0===this.cnt)throw Error("Can't pop empty vector");if(1===this.cnt)this.cnt=0;else if(0<(this.cnt-1&31))--this.cnt;else{a=cljs.core.unchecked_editable_array_for.call(null,this,this.cnt-2);var b=cljs.core.tv_pop_tail.call(null,this,this.shift,this.root);b=null!=b?b:new cljs.core.VectorNode(this.root.edit,[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]);5b?1:0};
+cljs.core.obj_map__GT_hash_map=function(a,b,c){var d=a.keys,e=d.length,f=a.strobj;a=cljs.core.meta.call(null,a);for(var g=0,h=cljs.core.transient$.call(null,cljs.core.PersistentHashMap.EMPTY);;)if(gcljs.core.ObjMap.HASHMAP_THRESHOLD||this.keys.length>=cljs.core.ObjMap.HASHMAP_THRESHOLD)return cljs.core.obj_map__GT_hash_map.call(null,this,b,c);if(null!=cljs.core.scan_array.call(null,1,b,this.keys))return a=cljs.core.obj_clone.call(null,this.strobj,this.keys),goog.object.set(a,b,c),new cljs.core.ObjMap(this.meta,this.keys,a,this.update_count+1,null);a=cljs.core.obj_clone.call(null,
+this.strobj,this.keys);var d=cljs.core.aclone.call(null,this.keys);goog.object.set(a,b,c);d.push(b);return new cljs.core.ObjMap(this.meta,d,a,this.update_count+1,null)}return cljs.core.obj_map__GT_hash_map.call(null,this,b,c)};cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return goog.isString(b)&&null!=cljs.core.scan_array.call(null,1,b,this.keys)?!0:!1};
+cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return 0=a)return new cljs.core.PersistentArrayMap(this.meta,this.cnt-1,c,null);cljs.core._EQ_.call(null,b,this.arr[d])?d+=2:(c[e]=this.arr[d],c[e+1]=this.arr[d+1],e+=2,d+=2)}}else return this};
+cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.array_map_index_of.call(null,this,b);if(-1===a)return this.cnt>>b&31};
+cljs.core.clone_and_set=function(a){switch(arguments.length){case 3:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 5:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.core.aclone.call(null,a);a[b]=c;return a};cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){a=cljs.core.aclone.call(null,a);a[b]=c;a[d]=e;return a};cljs.core.clone_and_set.cljs$lang$maxFixedArity=5;cljs.core.remove_pair=function(a,b){var c=Array(a.length-2);cljs.core.array_copy.call(null,a,0,c,0,2*b);cljs.core.array_copy.call(null,a,2*(b+1),c,2*b,c.length-2*b);return c};
+cljs.core.bitmap_indexed_node_index=function(a,b){return cljs.core.bit_count.call(null,a&b-1)};cljs.core.bitpos=function(a,b){return 1<<(a>>>b&31)};
+cljs.core.edit_and_set=function(a){switch(arguments.length){case 4:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 6:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){a=a.ensure_editable(b);a.arr[c]=d;return a};cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){a=a.ensure_editable(b);a.arr[c]=d;a.arr[e]=f;return a};cljs.core.edit_and_set.cljs$lang$maxFixedArity=6;
+cljs.core.inode_kv_reduce=function(a,b,c){for(var d=a.length,e=0;;)if(eb?4:2*(b+1));cljs.core.array_copy.call(null,this.arr,0,c,0,2*b);return new cljs.core.BitmapIndexedNode(a,this.bitmap,c)};
+cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_=function(a,b,c,d,e){var f=1<<(c>>>b&31);if(0===(this.bitmap&f))return this;var g=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,f),h=this.arr[2*g],k=this.arr[2*g+1];return null==h?(b=k.inode_without_BANG_(a,b+5,c,d,e),b===k?this:null!=b?cljs.core.edit_and_set.call(null,this,a,2*g+1,b):this.bitmap===f?null:this.edit_and_remove_pair(a,f,g)):cljs.core.key_test.call(null,d,h)?(e.val=!0,this.edit_and_remove_pair(a,f,g)):this};
+cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair=function(a,b,c){if(this.bitmap===b)return null;a=this.ensure_editable(a);var d=a.arr,e=d.length;a.bitmap^=b;cljs.core.array_copy.call(null,d,2*(c+1),d,2*c,e-2*(c+1));d[e-2]=null;d[e-1]=null;return a};cljs.core.BitmapIndexedNode.prototype.inode_seq=function(){return cljs.core.create_inode_seq.call(null,this.arr)};cljs.core.BitmapIndexedNode.prototype.kv_reduce=function(a,b){return cljs.core.inode_kv_reduce.call(null,this.arr,a,b)};
+cljs.core.BitmapIndexedNode.prototype.inode_lookup=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_lookup(a+5,b,c,d):cljs.core.key_test.call(null,c,e)?f:d};
+cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=1<<(c>>>b&31),h=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,g);if(0===(this.bitmap&g)){var k=cljs.core.bit_count.call(null,this.bitmap);if(2*k>>b&31]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f);for(e=d=0;;)if(32>d)0===(this.bitmap>>>d&1)?d+=1:(h[d]=null!=this.arr[e]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,cljs.core.hash.call(null,this.arr[e]),this.arr[e],this.arr[e+1],f):this.arr[e+1],e+=2,d+=1);else break;return new cljs.core.ArrayNode(a,k+1,h)}b=Array(2*(k+4));cljs.core.array_copy.call(null,this.arr,0,b,0,2*h);b[2*
+h]=d;b[2*h+1]=e;cljs.core.array_copy.call(null,this.arr,2*h,b,2*(h+1),2*(k-h));f.val=!0;a=this.ensure_editable(a);a.arr=b;a.bitmap|=g;return a}k=this.arr[2*h];g=this.arr[2*h+1];if(null==k)return k=g.inode_assoc_BANG_(a,b+5,c,d,e,f),k===g?this:cljs.core.edit_and_set.call(null,this,a,2*h+1,k);if(cljs.core.key_test.call(null,d,k))return e===g?this:cljs.core.edit_and_set.call(null,this,a,2*h+1,e);f.val=!0;return cljs.core.edit_and_set.call(null,this,a,2*h,null,2*h+1,cljs.core.create_node.call(null,a,
+b+5,k,g,c,d,e))};
+cljs.core.BitmapIndexedNode.prototype.inode_assoc=function(a,b,c,d,e){var f=1<<(b>>>a&31),g=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,f);if(0===(this.bitmap&f)){var h=cljs.core.bit_count.call(null,this.bitmap);if(16<=h){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]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e);for(d=c=0;;)if(32>c)0===(this.bitmap>>>
+c&1)?c+=1:(g[c]=null!=this.arr[d]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,cljs.core.hash.call(null,this.arr[d]),this.arr[d],this.arr[d+1],e):this.arr[d+1],d+=2,c+=1);else break;return new cljs.core.ArrayNode(null,h+1,g)}a=Array(2*(h+1));cljs.core.array_copy.call(null,this.arr,0,a,0,2*g);a[2*g]=c;a[2*g+1]=d;cljs.core.array_copy.call(null,this.arr,2*g,a,2*(g+1),2*(h-g));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap|f,a)}h=this.arr[2*g];f=this.arr[2*g+1];if(null==h)return h=
+f.inode_assoc(a+5,b,c,d,e),h===f?this:new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.call(null,this.arr,2*g+1,h));if(cljs.core.key_test.call(null,c,h))return d===f?this:new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.call(null,this.arr,2*g+1,d));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.call(null,this.arr,2*g,null,2*g+1,cljs.core.create_node.call(null,a+5,h,f,b,c,d)))};
+cljs.core.BitmapIndexedNode.prototype.inode_find=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_find(a+5,b,c,d):cljs.core.key_test.call(null,c,e)?new cljs.core.MapEntry(e,f,null):d};
+cljs.core.BitmapIndexedNode.prototype.inode_without=function(a,b,c){var d=1<<(b>>>a&31);if(0===(this.bitmap&d))return this;var e=cljs.core.bitmap_indexed_node_index.call(null,this.bitmap,d),f=this.arr[2*e],g=this.arr[2*e+1];return null==f?(a=g.inode_without(a+5,b,c),a===g?this:null!=a?new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.call(null,this.arr,2*e+1,a)):this.bitmap===d?null:new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair.call(null,this.arr,
+e))):cljs.core.key_test.call(null,c,f)?new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair.call(null,this.arr,e)):this};cljs.core.BitmapIndexedNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
+cljs.core.BitmapIndexedNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$edit,cljs.core.with_meta(cljs.core.cst$sym$bitmap,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$arr,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.BitmapIndexedNode.cljs$lang$type=!0;cljs.core.BitmapIndexedNode.cljs$lang$ctorStr="cljs.core/BitmapIndexedNode";
+cljs.core.BitmapIndexedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/BitmapIndexedNode")};cljs.core.__GT_BitmapIndexedNode=function(a,b,c){return new cljs.core.BitmapIndexedNode(a,b,c)};cljs.core.BitmapIndexedNode.EMPTY=new cljs.core.BitmapIndexedNode(null,0,[]);
+cljs.core.pack_array_node=function(a,b,c){var d=a.arr,e=d.length;a=Array(2*(a.cnt-1));for(var f=0,g=1,h=0;;)if(f>>b&31,g=this.arr[f];if(null==g)return this;b=g.inode_without_BANG_(a,b+5,c,d,e);if(b===g)return this;if(null==b){if(8>=this.cnt)return cljs.core.pack_array_node.call(null,this,a,f);a=cljs.core.edit_and_set.call(null,this,a,f,b);--a.cnt;return a}return cljs.core.edit_and_set.call(null,this,a,f,b)};cljs.core.ArrayNode.prototype.inode_seq=function(){return cljs.core.create_array_node_seq.call(null,this.arr)};
+cljs.core.ArrayNode.prototype.kv_reduce=function(a,b){for(var c=this.arr.length,d=0;;)if(d>>a&31];return null!=e?e.inode_lookup(a+5,b,c,d):d};
+cljs.core.ArrayNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=c>>>b&31,h=this.arr[g];if(null==h)return a=cljs.core.edit_and_set.call(null,this,a,g,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f)),a.cnt+=1,a;b=h.inode_assoc_BANG_(a,b+5,c,d,e,f);return b===h?this:cljs.core.edit_and_set.call(null,this,a,g,b)};
+cljs.core.ArrayNode.prototype.inode_assoc=function(a,b,c,d,e){var f=b>>>a&31,g=this.arr[f];if(null==g)return new cljs.core.ArrayNode(null,this.cnt+1,cljs.core.clone_and_set.call(null,this.arr,f,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e)));a=g.inode_assoc(a+5,b,c,d,e);return a===g?this:new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.call(null,this.arr,f,a))};
+cljs.core.ArrayNode.prototype.inode_find=function(a,b,c,d){var e=this.arr[b>>>a&31];return null!=e?e.inode_find(a+5,b,c,d):d};
+cljs.core.ArrayNode.prototype.inode_without=function(a,b,c){var d=b>>>a&31,e=this.arr[d];return null!=e?(a=e.inode_without(a+5,b,c),a===e?this:null==a?8>=this.cnt?cljs.core.pack_array_node.call(null,this,null,d):new cljs.core.ArrayNode(null,this.cnt-1,cljs.core.clone_and_set.call(null,this.arr,d,a)):new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.call(null,this.arr,d,a))):this};
+cljs.core.ArrayNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.ArrayNodeIterator(this.arr,0,null)};
+cljs.core.ArrayNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$edit,cljs.core.with_meta(cljs.core.cst$sym$cnt,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$arr,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.ArrayNode.cljs$lang$type=!0;cljs.core.ArrayNode.cljs$lang$ctorStr="cljs.core/ArrayNode";
+cljs.core.ArrayNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/ArrayNode")};cljs.core.__GT_ArrayNode=function(a,b,c){return new cljs.core.ArrayNode(a,b,c)};cljs.core.hash_collision_node_find_index=function(a,b,c){b*=2;for(var d=0;;)if(da?d:cljs.core.key_test.call(null,c,this.arr[a])?this.arr[a+1]:d};
+cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){if(c===this.collision_hash){b=cljs.core.hash_collision_node_find_index.call(null,this.arr,this.cnt,d);if(-1===b){if(this.arr.length>2*this.cnt)return a=cljs.core.edit_and_set.call(null,this,a,2*this.cnt,d,2*this.cnt+1,e),f.val=!0,a.cnt+=1,a;b=this.arr.length;c=Array(b+2);cljs.core.array_copy.call(null,this.arr,0,c,0,b);c[b]=d;c[b+1]=e;f.val=!0;return this.ensure_editable_array(a,this.cnt+1,c)}return this.arr[b+1]===e?this:
+cljs.core.edit_and_set.call(null,this,a,b+1,e)}return(new cljs.core.BitmapIndexedNode(a,1<<(this.collision_hash>>>b&31),[null,this,null,null])).inode_assoc_BANG_(a,b,c,d,e,f)};
+cljs.core.HashCollisionNode.prototype.inode_assoc=function(a,b,c,d,e){return b===this.collision_hash?(a=cljs.core.hash_collision_node_find_index.call(null,this.arr,this.cnt,c),-1===a?(a=2*this.cnt,b=Array(a+2),cljs.core.array_copy.call(null,this.arr,0,b,0,a),b[a]=c,b[a+1]=d,e.val=!0,new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt+1,b)):cljs.core._EQ_.call(null,this.arr[a+1],d)?this:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt,cljs.core.clone_and_set.call(null,
+this.arr,a+1,d))):(new cljs.core.BitmapIndexedNode(null,1<<(this.collision_hash>>>a&31),[null,this])).inode_assoc(a,b,c,d,e)};cljs.core.HashCollisionNode.prototype.ensure_editable_array=function(a,b,c){return a===this.edit?(this.arr=c,this.cnt=b,this):new cljs.core.HashCollisionNode(this.edit,this.collision_hash,b,c)};
+cljs.core.HashCollisionNode.prototype.inode_find=function(a,b,c,d){a=cljs.core.hash_collision_node_find_index.call(null,this.arr,this.cnt,c);return 0>a?d:cljs.core.key_test.call(null,c,this.arr[a])?new cljs.core.MapEntry(this.arr[a],this.arr[a+1],null):d};
+cljs.core.HashCollisionNode.prototype.inode_without=function(a,b,c){a=cljs.core.hash_collision_node_find_index.call(null,this.arr,this.cnt,c);return-1===a?this:1===this.cnt?null:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt-1,cljs.core.remove_pair.call(null,this.arr,cljs.core.quot.call(null,a,2)))};cljs.core.HashCollisionNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
+cljs.core.HashCollisionNode.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$edit,cljs.core.with_meta(cljs.core.cst$sym$collision_DASH_hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$cnt,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$arr,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,
+!0],null))],null)};cljs.core.HashCollisionNode.cljs$lang$type=!0;cljs.core.HashCollisionNode.cljs$lang$ctorStr="cljs.core/HashCollisionNode";cljs.core.HashCollisionNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/HashCollisionNode")};cljs.core.__GT_HashCollisionNode=function(a,b,c,d){return new cljs.core.HashCollisionNode(a,b,c,d)};
+cljs.core.create_node=function(a){switch(arguments.length){case 6:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);case 7:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.create_node.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=cljs.core.hash.call(null,b);if(g===d)return new cljs.core.HashCollisionNode(null,g,2,[b,c,e,f]);var h=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a,g,b,c,h).inode_assoc(a,d,e,f,h)};
+cljs.core.create_node.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=cljs.core.hash.call(null,c);if(h===e)return new cljs.core.HashCollisionNode(null,h,2,[c,d,f,g]);var k=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b,h,c,d,k).inode_assoc_BANG_(a,b,e,f,g,k)};cljs.core.create_node.cljs$lang$maxFixedArity=7;
+cljs.core.NodeSeq=function(a,b,c,d,e){this.meta=a;this.nodes=b;this.i=c;this.s=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.NodeSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_.call(null,this)};cljs.core.NodeSeq.prototype.equiv=function(a){return cljs.core._equiv.call(null,this,a)};
+cljs.core.NodeSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.call(null,this,a,0)},c=function(a,b){return cljs.core._indexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.NodeSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.call(null,this,a,cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.NodeSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return null==this.s?cljs.core.create_inode_seq.call(null,this.nodes,this.i+2,null):cljs.core.create_inode_seq.call(null,this.nodes,this.i,cljs.core.next.call(null,this.s))};cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};
+cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.call(null,b,this)};cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.call(null,b,c,this)};
+cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return null==this.s?new cljs.core.MapEntry(this.nodes[this.i],this.nodes[this.i+1],null):cljs.core.first.call(null,this.s)};cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=null==this.s?cljs.core.create_inode_seq.call(null,this.nodes,this.i+2,null):cljs.core.create_inode_seq.call(null,this.nodes,this.i,cljs.core.next.call(null,this.s));return null!=a?a:cljs.core.List.EMPTY};
+cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.NodeSeq(b,this.nodes,this.i,this.s,this.__hash)};cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons.call(null,b,this)};
+cljs.core.NodeSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$meta,cljs.core.cst$sym$nodes,cljs.core.cst$sym$i,cljs.core.cst$sym$s,cljs.core.with_meta(cljs.core.cst$sym$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.NodeSeq.cljs$lang$type=!0;cljs.core.NodeSeq.cljs$lang$ctorStr="cljs.core/NodeSeq";
+cljs.core.NodeSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/NodeSeq")};cljs.core.__GT_NodeSeq=function(a,b,c,d,e){return new cljs.core.NodeSeq(a,b,c,d,e)};goog.object.set(cljs.core.NodeSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.create_inode_seq=function(a){switch(arguments.length){case 1:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.create_inode_seq.call(null,a,0,null)};
+cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==c)for(c=a.length;;)if(bthis.cnt?cljs.core.count.call(null,cljs.core.next.call(null,this))+1:this.cnt};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};
+cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.call(null,b,this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.call(null,b,c,this)};
+cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.peek.call(null,this.stack)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=cljs.core.first.call(null,this.stack);a=cljs.core.tree_map_seq_push.call(null,this.ascending_QMARK_?a.right:a.left,cljs.core.next.call(null,this.stack),this.ascending_QMARK_);return null!=a?new cljs.core.PersistentTreeMapSeq(null,a,this.ascending_QMARK_,this.cnt-1,null):cljs.core.List.EMPTY};
+cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentTreeMapSeq(b,this.stack,this.ascending_QMARK_,this.cnt,this.__hash)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons.call(null,b,this)};
+cljs.core.PersistentTreeMapSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$meta,cljs.core.cst$sym$stack,cljs.core.with_meta(cljs.core.cst$sym$ascending_QMARK_,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$tag,cljs.core.cst$sym$boolean],null)),cljs.core.cst$sym$cnt,cljs.core.with_meta(cljs.core.cst$sym$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};
+cljs.core.PersistentTreeMapSeq.cljs$lang$type=!0;cljs.core.PersistentTreeMapSeq.cljs$lang$ctorStr="cljs.core/PersistentTreeMapSeq";cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/PersistentTreeMapSeq")};cljs.core.__GT_PersistentTreeMapSeq=function(a,b,c,d,e){return new cljs.core.PersistentTreeMapSeq(a,b,c,d,e)};
+goog.object.set(cljs.core.PersistentTreeMapSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});cljs.core.create_tree_map_seq=function(a,b,c){return new cljs.core.PersistentTreeMapSeq(null,cljs.core.tree_map_seq_push.call(null,a,null,b),b,c,null)};
+cljs.core.balance_left=function(a,b,c,d){return c instanceof cljs.core.RedNode?c.left instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,c.left.blacken(),new cljs.core.BlackNode(a,b,c.right,d,null),null):c.right instanceof cljs.core.RedNode?new cljs.core.RedNode(c.right.key,c.right.val,new cljs.core.BlackNode(c.key,c.val,c.left,c.right.left,null),new cljs.core.BlackNode(a,b,c.right.right,d,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
+cljs.core.balance_right=function(a,b,c,d){return d instanceof cljs.core.RedNode?d.right instanceof cljs.core.RedNode?new cljs.core.RedNode(d.key,d.val,new cljs.core.BlackNode(a,b,c,d.left,null),d.right.blacken(),null):d.left instanceof cljs.core.RedNode?new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),new cljs.core.BlackNode(d.key,d.val,d.left.right,d.right,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
+cljs.core.balance_left_del=function(a,b,c,d){if(c instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c.blacken(),d,null);if(d instanceof cljs.core.BlackNode)return cljs.core.balance_right.call(null,a,b,c,d.redden());if(d instanceof cljs.core.RedNode&&d.left instanceof cljs.core.BlackNode)return new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),cljs.core.balance_right.call(null,d.key,d.val,d.left.right,d.right.redden()),null);throw Error("red-black tree invariant violation");
+};
+cljs.core.balance_right_del=function(a,b,c,d){if(d instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c,d.blacken(),null);if(c instanceof cljs.core.BlackNode)return cljs.core.balance_left.call(null,a,b,c.redden(),d);if(c instanceof cljs.core.RedNode&&c.right instanceof cljs.core.BlackNode)return new cljs.core.RedNode(c.right.key,c.right.val,cljs.core.balance_left.call(null,c.key,c.val,c.left.redden(),c.right.left),new cljs.core.BlackNode(a,b,c.right.right,d,null),null);throw Error("red-black tree invariant violation");};
+cljs.core.tree_map_kv_reduce=function(a,b,c){c=null!=a.left?cljs.core.tree_map_kv_reduce.call(null,a.left,b,c):c;if(cljs.core.reduced_QMARK_.call(null,c))return c;c=b.call(null,c,a.key,a.val);return cljs.core.reduced_QMARK_.call(null,c)?c:null!=a.right?cljs.core.tree_map_kv_reduce.call(null,a.right,b,c):c};
+cljs.core.BlackNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.BlackNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.BlackNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
+cljs.core.BlackNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.call(null,this,a,cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.BlackNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.call(null,this,a,0)},c=function(a,b){return cljs.core._indexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.BlackNode.prototype.add_right=function(a){return a.balance_right(this)};
+cljs.core.BlackNode.prototype.redden=function(){return new cljs.core.RedNode(this.key,this.val,this.left,this.right,null)};cljs.core.BlackNode.prototype.blacken=function(){return this};cljs.core.BlackNode.prototype.add_left=function(a){return a.balance_left(this)};cljs.core.BlackNode.prototype.replace=function(a,b,c,d){return new cljs.core.BlackNode(a,b,c,d,null)};cljs.core.BlackNode.prototype.balance_left=function(a){return new cljs.core.BlackNode(a.key,a.val,this,a.right,null)};
+cljs.core.BlackNode.prototype.balance_right=function(a){return new cljs.core.BlackNode(a.key,a.val,a.left,this,null)};cljs.core.BlackNode.prototype.remove_left=function(a){return cljs.core.balance_left_del.call(null,this.key,this.val,a,this.right)};cljs.core.BlackNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce.call(null,this,a,b)};cljs.core.BlackNode.prototype.remove_right=function(a){return cljs.core.balance_right_del.call(null,this.key,this.val,this.left,a)};
+cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return cljs.core._nth.call(null,this,b,null)};cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return cljs.core._nth.call(null,this,b,c)};cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};
+cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return cljs.core._assoc_n.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};
+cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};
+cljs.core.BlackNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};
+cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.call(null,this,b)};cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.call(null,this,b,c)};
+cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};cljs.core.BlackNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};
+cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
+cljs.core.BlackNode.prototype.call=function(){var a=null,b=function(a,b){return cljs.core._nth.call(null,this,b)},c=function(a,b,c){return cljs.core._nth.call(null,this,b,c)};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
+cljs.core.BlackNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone.call(null,b)))};cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core._nth.call(null,this,a)};cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._nth.call(null,this,a,b)};
+cljs.core.BlackNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$key,cljs.core.cst$sym$val,cljs.core.cst$sym$left,cljs.core.cst$sym$right,cljs.core.with_meta(cljs.core.cst$sym$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.BlackNode.cljs$lang$type=!0;cljs.core.BlackNode.cljs$lang$ctorStr="cljs.core/BlackNode";
+cljs.core.BlackNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/BlackNode")};cljs.core.__GT_BlackNode=function(a,b,c,d,e){return new cljs.core.BlackNode(a,b,c,d,e)};goog.object.set(cljs.core.BlackNode.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.RedNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.RedNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RedNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
+cljs.core.RedNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.call(null,this,a,cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.RedNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.call(null,this,a,0)},c=function(a,b){return cljs.core._indexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.RedNode.prototype.add_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.redden=function(){throw Error("red-black tree invariant violation");};cljs.core.RedNode.prototype.blacken=function(){return new cljs.core.BlackNode(this.key,this.val,this.left,this.right,null)};cljs.core.RedNode.prototype.add_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};
+cljs.core.RedNode.prototype.replace=function(a,b,c,d){return new cljs.core.RedNode(a,b,c,d,null)};
+cljs.core.RedNode.prototype.balance_left=function(a){return this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,this.left.blacken(),new cljs.core.BlackNode(a.key,a.val,this.right,a.right,null),null):this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.right.key,this.right.val,new cljs.core.BlackNode(this.key,this.val,this.left,this.right.left,null),new cljs.core.BlackNode(a.key,a.val,this.right.right,a.right,null),null):new cljs.core.BlackNode(a.key,a.val,
+this,a.right,null)};
+cljs.core.RedNode.prototype.balance_right=function(a){return this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left,null),this.right.blacken(),null):this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.left.key,this.left.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left.left,null),new cljs.core.BlackNode(this.key,this.val,this.left.right,this.right,null),null):new cljs.core.BlackNode(a.key,a.val,a.left,
+this,null)};cljs.core.RedNode.prototype.remove_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};cljs.core.RedNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce.call(null,this,a,b)};cljs.core.RedNode.prototype.remove_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return cljs.core._nth.call(null,this,b,null)};
+cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return cljs.core._nth.call(null,this,b,c)};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};
+cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return cljs.core._assoc_n.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};
+cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.RedNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};
+cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};
+cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.call(null,this,b)};cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.call(null,this,b,c)};cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};
+cljs.core.RedNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};
+cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
+cljs.core.RedNode.prototype.call=function(){var a=null,b=function(a,b){return cljs.core._nth.call(null,this,b)},c=function(a,b,c){return cljs.core._nth.call(null,this,b,c)};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
+cljs.core.RedNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone.call(null,b)))};cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core._nth.call(null,this,a)};cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._nth.call(null,this,a,b)};
+cljs.core.RedNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$key,cljs.core.cst$sym$val,cljs.core.cst$sym$left,cljs.core.cst$sym$right,cljs.core.with_meta(cljs.core.cst$sym$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.RedNode.cljs$lang$type=!0;cljs.core.RedNode.cljs$lang$ctorStr="cljs.core/RedNode";
+cljs.core.RedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/RedNode")};cljs.core.__GT_RedNode=function(a,b,c,d,e){return new cljs.core.RedNode(a,b,c,d,e)};goog.object.set(cljs.core.RedNode.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.tree_map_add=function(a,b,c,d,e){if(null==b)return new cljs.core.RedNode(c,d,null,null,null);var f=a.call(null,c,b.key);if(0===f)return e[0]=b,null;if(0>f)return a=cljs.core.tree_map_add.call(null,a,b.left,c,d,e),null!=a?b.add_left(a):null;a=cljs.core.tree_map_add.call(null,a,b.right,c,d,e);return null!=a?b.add_right(a):null};
+cljs.core.tree_map_append=function(a,b){if(null==a)return b;if(null==b)return a;if(a instanceof cljs.core.RedNode){if(b instanceof cljs.core.RedNode){var c=cljs.core.tree_map_append.call(null,a.right,b.left);return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.RedNode(a.key,a.val,a.left,c.left,null),new cljs.core.RedNode(b.key,b.val,c.right,b.right,null),null):new cljs.core.RedNode(a.key,a.val,a.left,new cljs.core.RedNode(b.key,b.val,c,b.right,null),null)}return new cljs.core.RedNode(a.key,
+a.val,a.left,cljs.core.tree_map_append.call(null,a.right,b),null)}if(b instanceof cljs.core.RedNode)return new cljs.core.RedNode(b.key,b.val,cljs.core.tree_map_append.call(null,a,b.left),b.right,null);c=cljs.core.tree_map_append.call(null,a.right,b.left);return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.BlackNode(a.key,a.val,a.left,c.left,null),new cljs.core.BlackNode(b.key,b.val,c.right,b.right,null),null):cljs.core.balance_left_del.call(null,a.key,a.val,a.left,
+new cljs.core.BlackNode(b.key,b.val,c,b.right,null))};
+cljs.core.tree_map_remove=function(a,b,c,d){if(null!=b){var e=a.call(null,c,b.key);if(0===e)return d[0]=b,cljs.core.tree_map_append.call(null,b.left,b.right);if(0>e)return a=cljs.core.tree_map_remove.call(null,a,b.left,c,d),null!=a||null!=d[0]?b.left instanceof cljs.core.BlackNode?cljs.core.balance_left_del.call(null,b.key,b.val,a,b.right):new cljs.core.RedNode(b.key,b.val,a,b.right,null):null;a=cljs.core.tree_map_remove.call(null,a,b.right,c,d);return null!=a||null!=d[0]?b.right instanceof cljs.core.BlackNode?
+cljs.core.balance_right_del.call(null,b.key,b.val,b.left,a):new cljs.core.RedNode(b.key,b.val,b.left,a,null):null}return null};cljs.core.tree_map_replace=function(a,b,c,d){var e=b.key,f=a.call(null,c,e);return 0===f?b.replace(e,d,b.left,b.right):0>f?b.replace(e,b.val,cljs.core.tree_map_replace.call(null,a,b.left,c,d),b.right):b.replace(e,b.val,b.left,cljs.core.tree_map_replace.call(null,a,b.right,c,d))};
+cljs.core.PersistentTreeMap=function(a,b,c,d,e){this.comp=a;this.tree=b;this.cnt=c;this.meta=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=418776847;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return this.entry_at(b)};
+cljs.core.PersistentTreeMap.prototype.forEach=function(a){for(var b=cljs.core.seq.call(null,this),c=null,d=0,e=0;;)if(ec?b.left:b.right}else return null};cljs.core.PersistentTreeMap.prototype.has=function(a){return cljs.core.contains_QMARK_.call(null,this,a)};cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return cljs.core._lookup.call(null,this,b,null)};
+cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=this.entry_at(b);return null!=a?a.val:c};cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return null!=this.tree?cljs.core.unreduced.call(null,cljs.core.tree_map_kv_reduce.call(null,this.tree,b,c)):c};cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
+cljs.core.PersistentTreeMap.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentTreeMap(this.comp,this.tree,this.cnt,this.meta,this.__hash)};cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};cljs.core.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return 0e?(a=cljs.core.conj.call(null,a,d),d=d.left):d=d.right:0a.call(null,c)?b:c};cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){return cljs.core.reduce.call(null,function(b,c){return cljs.core.max_key.call(null,a,b,c)},cljs.core.max_key.call(null,a,b,c),d)};
+cljs.core.max_key.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);var d=cljs.core.next.call(null,c);c=cljs.core.first.call(null,d);d=cljs.core.next.call(null,d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.max_key.cljs$lang$maxFixedArity=3;
+cljs.core.min_key=function(a){switch(arguments.length){case 2:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d=this.count)throw Error("-drop-first of empty chunk");return new cljs.core.RangeChunk(this.start+this.step,this.step,this.count-1)};
+cljs.core.RangeChunk.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$start,cljs.core.cst$sym$step,cljs.core.cst$sym$count],null)};cljs.core.RangeChunk.cljs$lang$type=!0;cljs.core.RangeChunk.cljs$lang$ctorStr="cljs.core/RangeChunk";cljs.core.RangeChunk.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/RangeChunk")};
+cljs.core.__GT_RangeChunk=function(a,b,c){return new cljs.core.RangeChunk(a,b,c)};cljs.core.RangeIterator=function(a,b,c){this.i=a;this.end=b;this.step=c};cljs.core.RangeIterator.prototype.hasNext=function(){return 0this.end};cljs.core.RangeIterator.prototype.next=function(){var a=this.i;this.i+=this.step;return a};
+cljs.core.RangeIterator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs.core.cst$sym$i,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.cst$sym$end,cljs.core.cst$sym$step],null)};cljs.core.RangeIterator.cljs$lang$type=!0;cljs.core.RangeIterator.cljs$lang$ctorStr="cljs.core/RangeIterator";
+cljs.core.RangeIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/RangeIterator")};cljs.core.__GT_RangeIterator=function(a,b,c){return new cljs.core.RangeIterator(a,b,c)};cljs.core.Range=function(a,b,c,d,e,f,g){this.meta=a;this.start=b;this.end=c;this.step=d;this.chunk=e;this.chunk_next=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=32375006;this.cljs$lang$protocol_mask$partition1$=140800};
+cljs.core.Range.prototype.toString=function(){return cljs.core.pr_str_STAR_.call(null,this)};cljs.core.Range.prototype.equiv=function(a){return cljs.core._equiv.call(null,this,a)};
+cljs.core.Range.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.call(null,this,a,0)},c=function(a,b){return cljs.core._indexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.Range.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.call(null,this,a,cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.call(null,this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
+cljs.core.Range.prototype.forceChunk=function(){if(null==this.chunk){var a=cljs.core._count.call(null,this);return 32this.end&&0===this.step)return this.start;throw Error("Index out of bounds");};cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&bthis.end&&0===this.step?this.start:c};
+cljs.core.Range.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RangeIterator(this.start,this.end,this.step)};cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Range.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Range(this.meta,this.start,this.end,this.step,this.chunk,this.chunk_next,this.__hash)};
+cljs.core.Range.prototype.cljs$core$INext$_next$arity$1=function(a){return 0this.end?new cljs.core.Range(null,this.start+this.step,this.end,this.step,null,null,null):null};cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1=function(a){return Math.ceil((this.end-this.start)/this.step)};
+cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll.call(null,this)};cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.call(null,this,b)};cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
+cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.call(null,this,b)};cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){for(a=this.start;;)if(0this.end){c=b.call(null,c,a);if(cljs.core.reduced_QMARK_.call(null,c))return cljs.core.deref.call(null,c);a+=this.step}else return c};cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.start};
+cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=cljs.core._next.call(null,this);return null==a?cljs.core.List.EMPTY:a};cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1=function(a){this.forceChunk();return this.chunk};cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1=function(a){this.forceChunk();return null==this.chunk_next?cljs.core.List.EMPTY:this.chunk_next};
+cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Range(b,this.start,this.end,this.step,this.chunk,this.chunk_next,this.__hash)};cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons.call(null,b,this)};cljs.core.Range.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1=function(a){return cljs.core.seq.call(null,cljs.core._chunked_rest.call(null,this))};
+cljs.core.Range.getBasis=function(){return new cljs.core.PersistentVector(null,7,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$meta,cljs.core.cst$sym$start,cljs.core.cst$sym$end,cljs.core.cst$sym$step,cljs.core.with_meta(cljs.core.cst$sym$chunk,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$chunk_DASH_next,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null)),cljs.core.with_meta(cljs.core.cst$sym$__hash,
+new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.Range.cljs$lang$type=!0;cljs.core.Range.cljs$lang$ctorStr="cljs.core/Range";cljs.core.Range.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core/Range")};cljs.core.__GT_Range=function(a,b,c,d,e,f,g){return new cljs.core.Range(a,b,c,d,e,f,g)};goog.object.set(cljs.core.Range.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator.call(null,this)});
+cljs.core.range=function(a){switch(arguments.length){case 0:return cljs.core.range.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.range.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.range.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.range.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.range.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.range.call(null,0,Number.MAX_VALUE,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.range.call(null,0,a,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.range.call(null,a,b,1)};
+cljs.core.range.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return 0c?b>=a?cljs.core.List.EMPTY:new cljs.core.Range(null,a,b,c,null,null,null):b===a?cljs.core.List.EMPTY:cljs.core.repeat.call(null,a)};cljs.core.range.cljs$lang$maxFixedArity=3;
+cljs.core.take_nth=function(a){switch(arguments.length){case 1:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1=function(a){if("number"!==typeof a)throw Error("Assert failed: (number? n)");return function(b){var c=cljs.core.volatile_BANG_.call(null,-1);return function(){var d=null,e=function(){return b.call(null)},f=function(a){return b.call(null,a)},g=function(d,e){var f=cljs.core._vreset_BANG_.call(null,c,cljs.core._deref.call(null,c)+1);return 0===cljs.core.rem.call(null,f,a)?b.call(null,d,e):d};d=function(a,b){switch(arguments.length){case 0:return e.call(this);
+case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
+cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2=function(a,b){if("number"!==typeof a)throw Error("Assert failed: (number? n)");return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq.call(null,b);return c?cljs.core.cons.call(null,cljs.core.first.call(null,c),cljs.core.take_nth.call(null,a,cljs.core.drop.call(null,a,c))):null},null,null)};cljs.core.take_nth.cljs$lang$maxFixedArity=2;
+cljs.core.split_with=function(a,b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.take_while.call(null,a,b),cljs.core.drop_while.call(null,a,b)],null)};
+cljs.core.partition_by=function(a){switch(arguments.length){case 1:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.array_list.call(null),d=cljs.core.volatile_BANG_.call(null,cljs.core.cst$kw$cljs$core_SLASH_none);return function(){var e=null,f=function(){return b.call(null)},g=function(a){if(!cljs.core.truth_(c.isEmpty())){var d=cljs.core.vec.call(null,c.toArray());c.clear();a=cljs.core.unreduced.call(null,b.call(null,a,d))}return b.call(null,a)},h=function(e,f){var g=cljs.core.deref.call(null,d),h=a.call(null,
+f);cljs.core.vreset_BANG_.call(null,d,h);if(cljs.core.keyword_identical_QMARK_.call(null,g,cljs.core.cst$kw$cljs$core_SLASH_none)||cljs.core._EQ_.call(null,h,g))return c.add(f),e;g=cljs.core.vec.call(null,c.toArray());c.clear();e=b.call(null,e,g);cljs.core.reduced_QMARK_.call(null,e)||c.add(f);return e};e=function(a,b){switch(arguments.length){case 0:return f.call(this);case 1:return g.call(this,a);case 2:return h.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};e.cljs$core$IFn$_invoke$arity$0=
+f;e.cljs$core$IFn$_invoke$arity$1=g;e.cljs$core$IFn$_invoke$arity$2=h;return e}()}};
+cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq.call(null,b);if(c){var d=cljs.core.first.call(null,c),e=a.call(null,d),f=cljs.core.cons.call(null,d,cljs.core.take_while.call(null,function(b){return cljs.core._EQ_.call(null,e,a.call(null,b))},cljs.core.next.call(null,c)));return cljs.core.cons.call(null,f,cljs.core.partition_by.call(null,a,new cljs.core.LazySeq(null,function(){return cljs.core.drop.call(null,cljs.core.count.call(null,
+f),c)},null,null)))}return null},null,null)};cljs.core.partition_by.cljs$lang$maxFixedArity=2;cljs.core.frequencies=function(a){return cljs.core.persistent_BANG_.call(null,cljs.core.reduce.call(null,function(a,c){return cljs.core.assoc_BANG_.call(null,a,c,cljs.core.get.call(null,a,c,0)+1)},cljs.core.transient$.call(null,cljs.core.PersistentArrayMap.EMPTY),a))};
+cljs.core.reductions=function(a){switch(arguments.length){case 2:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.core.reductions.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq.call(null,b);return c?cljs.core.reductions.call(null,a,cljs.core.first.call(null,c),cljs.core.rest.call(null,c)):new cljs.core.List(null,a.call(null),null,1,null)},null,null)};
+cljs.core.reductions.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.reduced_QMARK_.call(null,b)?new cljs.core.List(null,cljs.core.deref.call(null,b),null,1,null):cljs.core.cons.call(null,b,new cljs.core.LazySeq(null,function(){var d=cljs.core.seq.call(null,c);return d?cljs.core.reductions.call(null,a,a.call(null,b,cljs.core.first.call(null,d)),cljs.core.rest.call(null,d)):null},null,null))};cljs.core.reductions.cljs$lang$maxFixedArity=3;
+cljs.core.juxt=function(a){switch(arguments.length){case 1:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(de?1:e);return e<=b.length?cljs.core.re_seq_STAR_.call(null,a,cljs.core.subs.call(null,b,e)):null},null,null))};cljs.core.re_seq=function(a,b){if("string"===typeof b)return cljs.core.re_seq_STAR_.call(null,a,b);throw new TypeError("re-seq must match against a string.");};
+cljs.core.re_pattern=function(a){if(a instanceof RegExp)return a;var b=cljs.core.re_find.call(null,/^\(\?([idmsux]*)\)/,a),c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);a=cljs.core.subs.call(null,a,cljs.core.count.call(null,c));c=RegExp;b=cljs.core.truth_(b)?b:"";return new c(a,b)};
+cljs.core.pr_sequential_writer=function(a,b,c,d,e,f,g){var h=cljs.core._STAR_print_level_STAR_;cljs.core._STAR_print_level_STAR_=null==cljs.core._STAR_print_level_STAR_?null:cljs.core._STAR_print_level_STAR_-1;try{if(null!=cljs.core._STAR_print_level_STAR_&&0>cljs.core._STAR_print_level_STAR_)return cljs.core._write.call(null,a,"#");cljs.core._write.call(null,a,c);if(0===cljs.core.cst$kw$print_DASH_length.cljs$core$IFn$_invoke$arity$1(f))cljs.core.seq.call(null,g)&&cljs.core._write.call(null,a,function(){var a=
+cljs.core.cst$kw$more_DASH_marker.cljs$core$IFn$_invoke$arity$1(f);return cljs.core.truth_(a)?a:"..."}());else{cljs.core.seq.call(null,g)&&b.call(null,cljs.core.first.call(null,g),a,f);for(var k=cljs.core.next.call(null,g),l=cljs.core.cst$kw$print_DASH_length.cljs$core$IFn$_invoke$arity$1(f)-1;;)if(!k||null!=l&&0===l){cljs.core.seq.call(null,k)&&0===l&&(cljs.core._write.call(null,a,d),cljs.core._write.call(null,a,function(){var a=cljs.core.cst$kw$more_DASH_marker.cljs$core$IFn$_invoke$arity$1(f);
+return cljs.core.truth_(a)?a:"..."}()));break}else{cljs.core._write.call(null,a,d);b.call(null,cljs.core.first.call(null,k),a,f);var m=cljs.core.next.call(null,k);c=l-1;k=m;l=c}}return cljs.core._write.call(null,a,e)}finally{cljs.core._STAR_print_level_STAR_=h}};
+cljs.core.write_all=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=cljs.core.count.call(null,b)&&cljs.core.every_QMARK_.call(null,function(b){return cljs.core.contains_QMARK_.call(null,a,b)},b)};clojure.string={};clojure.string.seq_reverse=function(a){return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.List.EMPTY,a)};clojure.string.re_surrogate_pair=/([\uD800-\uDBFF])([\uDC00-\uDFFF])/g;clojure.string.reverse=function(a){return a.replace(clojure.string.re_surrogate_pair,"$2$1").split("").reverse().join("")};
+clojure.string.replace_all=function(a,b,c){var d=RegExp,e=b.source;var f=cljs.core.truth_(b.ignoreCase)?"gi":"g";f=cljs.core.truth_(b.multiline)?[f,"m"].join(""):f;b=cljs.core.truth_(b.unicode)?[f,"u"].join(""):f;d=new d(e,b);return a.replace(d,c)};
+clojure.string.replace_with=function(a){return function(){var b=function(b){b=cljs.core.drop_last.call(null,2,b);return cljs.core._EQ_.call(null,cljs.core.count.call(null,b),1)?a.call(null,cljs.core.first.call(null,b)):a.call(null,cljs.core.vec.call(null,b))},c=function(a){var c=null;if(0=b||b>=2+cljs.core.count.call(null,a))return cljs.core.conj.call(null,cljs.core.vec.call(null,cljs.core.cons.call(null,"",cljs.core.map.call(null,cljs.core.str,cljs.core.seq.call(null,a)))),"");var c=cljs.core._EQ__EQ_;if(cljs.core.truth_(c.call(null,1,b)))return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null);if(cljs.core.truth_(c.call(null,2,b)))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+["",a],null);b-=2;return cljs.core.conj.call(null,cljs.core.vec.call(null,cljs.core.cons.call(null,"",cljs.core.subvec.call(null,cljs.core.vec.call(null,cljs.core.map.call(null,cljs.core.str,cljs.core.seq.call(null,a))),0,b))),cljs.core.subs.call(null,a,b))};
+clojure.string.split=function(a){switch(arguments.length){case 2:return clojure.string.split.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.split.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.split.cljs$core$IFn$_invoke$arity$2=function(a,b){return clojure.string.split.call(null,a,b,0)};
+clojure.string.split.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return clojure.string.discard_trailing_if_needed.call(null,c,"/(?:)/"===cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)?clojure.string.split_with_empty_regex.call(null,a,c):1>c?cljs.core.vec.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).split(b)):function(){for(var d=a,e=c,f=cljs.core.PersistentVector.EMPTY;;){if(1===e)return cljs.core.conj.call(null,f,d);var g=cljs.core.re_find.call(null,b,d);if(null!=g){var h=d.indexOf(g);
+g=d.substring(h+cljs.core.count.call(null,g));--e;f=cljs.core.conj.call(null,f,d.substring(0,h));d=g}else return cljs.core.conj.call(null,f,d)}}())};clojure.string.split.cljs$lang$maxFixedArity=3;clojure.string.split_lines=function(a){return clojure.string.split.call(null,a,/\n|\r\n/)};clojure.string.trim=function(a){return goog.string.trim(a)};clojure.string.triml=function(a){return goog.string.trimLeft(a)};clojure.string.trimr=function(a){return goog.string.trimRight(a)};
+clojure.string.trim_newline=function(a){for(var b=a.length;;){if(0===b)return"";var c=cljs.core.get.call(null,a,b-1);if("\n"===c||"\r"===c)--b;else return a.substring(0,b)}};clojure.string.blank_QMARK_=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};
+clojure.string.escape=function(a,b){for(var c=new goog.string.StringBuffer,d=a.length,e=0;;){if(d===e)return c.toString();var f=a.charAt(e),g=cljs.core.get.call(null,b,f);null!=g?c.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)):c.append(f);e+=1}};
+clojure.string.index_of=function(a){switch(arguments.length){case 2:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.indexOf(b);return 0>a?null:a};
+clojure.string.index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.indexOf(b,c);return 0>a?null:a};clojure.string.index_of.cljs$lang$maxFixedArity=3;
+clojure.string.last_index_of=function(a){switch(arguments.length){case 2:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.lastIndexOf(b);return 0>a?null:a};clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.lastIndexOf(b,c);return 0>a?null:a};clojure.string.last_index_of.cljs$lang$maxFixedArity=3;clojure.string.starts_with_QMARK_=function(a,b){return goog.string.startsWith(a,b)};clojure.string.ends_with_QMARK_=function(a,b){return goog.string.endsWith(a,b)};
+clojure.string.includes_QMARK_=function(a,b){return goog.string.contains(a,b)};clojure.walk={};
+clojure.walk.walk=function(a,b,c){return cljs.core.list_QMARK_.call(null,c)?b.call(null,cljs.core.apply.call(null,cljs.core.list,cljs.core.map.call(null,a,c))):cljs.core.map_entry_QMARK_.call(null,c)?b.call(null,new cljs.core.MapEntry(a.call(null,cljs.core.key.call(null,c)),a.call(null,cljs.core.val.call(null,c)),null)):cljs.core.seq_QMARK_.call(null,c)?b.call(null,cljs.core.doall.call(null,cljs.core.map.call(null,a,c))):cljs.core.record_QMARK_.call(null,c)?b.call(null,cljs.core.reduce.call(null,function(b,
+c){return cljs.core.conj.call(null,b,a.call(null,c))},c,c)):cljs.core.coll_QMARK_.call(null,c)?b.call(null,cljs.core.into.call(null,cljs.core.empty.call(null,c),cljs.core.map.call(null,a,c))):b.call(null,c)};clojure.walk.postwalk=function(a,b){return clojure.walk.walk.call(null,cljs.core.partial.call(null,clojure.walk.postwalk,a),a,b)};clojure.walk.prewalk=function(a,b){return clojure.walk.walk.call(null,cljs.core.partial.call(null,clojure.walk.prewalk,a),cljs.core.identity,a.call(null,b))};
+clojure.walk.keywordize_keys=function(a){var b=function(a){var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return"string"===typeof b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.keyword.call(null,b),a],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)};return clojure.walk.postwalk.call(null,function(a){return cljs.core.map_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,
+cljs.core.map.call(null,b,a)):a},a)};
+clojure.walk.stringify_keys=function(a){var b=function(a){var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return b instanceof cljs.core.Keyword?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.name.call(null,b),a],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)};return clojure.walk.postwalk.call(null,function(a){return cljs.core.map_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,
+cljs.core.map.call(null,b,a)):a},a)};clojure.walk.prewalk_replace=function(a,b){return clojure.walk.prewalk.call(null,function(b){return cljs.core.contains_QMARK_.call(null,a,b)?a.call(null,b):b},b)};clojure.walk.postwalk_replace=function(a,b){return clojure.walk.postwalk.call(null,function(b){return cljs.core.contains_QMARK_.call(null,a,b)?a.call(null,b):b},b)};var gadjett={collections:{}};gadjett.collections.infinity=Infinity;gadjett.collections.abs=function(a){var b=-a;return a>b?a:b};gadjett.collections.scale=function(a,b){return 0===a||0===b?1:gadjett.collections.abs.call(null,a)};
+gadjett.collections.almost_EQ_=function(a){switch(arguments.length){case 2:return gadjett.collections.almost_EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return gadjett.collections.almost_EQ_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+gadjett.collections.almost_EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return gadjett.collections.almost_EQ_.call(null,a,b,1E-5)};gadjett.collections.almost_EQ_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core._EQ_.call(null,a,b)||gadjett.collections.abs.call(null,a-b)<=gadjett.collections.scale.call(null,a,b)*c};gadjett.collections.almost_EQ_.cljs$lang$maxFixedArity=3;
+gadjett.collections._EQ_set=function(a,b){return cljs.core._EQ_.call(null,cljs.core.into.call(null,cljs.core.PersistentHashSet.EMPTY,a),cljs.core.into.call(null,cljs.core.PersistentHashSet.EMPTY,b))};gadjett.collections._EQ_without_keys_QMARK_=function(a,b,c){return cljs.core.apply.call(null,cljs.core._EQ_,cljs.core.map.call(null,function(a){return cljs.core.apply.call(null,cljs.core.dissoc,a,c)},new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null)))};
+gadjett.collections.vec__GT_map=function(a){return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,a)};gadjett.collections.map_2d_vec=function(a,b){return cljs.core.map.call(null,function(b){var c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,a.call(null,b)],null)},b)};
+gadjett.collections.map_2d_vec_kv=function(a,b,c){return cljs.core.map.call(null,function(c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.call(null,d),b.call(null,c)],null)},c)};gadjett.collections.map_object=function(a,b){return gadjett.collections.vec__GT_map.call(null,gadjett.collections.map_2d_vec.call(null,a,b))};
+gadjett.collections.map_object_with_key=function(a,b){return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,function(b){var c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,a.call(null,c,b)],null)},b))};gadjett.collections.map_object_kv=function(a,b,c){return gadjett.collections.vec__GT_map.call(null,gadjett.collections.map_2d_vec_kv.call(null,a,b,c))};
+gadjett.collections.map_reverse_hierarchy=function(a){var b=cljs.core.apply.call(null,cljs.core.merge_with,cljs.core.conj,function(){return function e(a){return new cljs.core.LazySeq(null,function(){for(var b=a;;){var d=cljs.core.seq.call(null,b);if(d){var h=d,k=cljs.core.first.call(null,h),l=cljs.core.nth.call(null,k,0,null),m=cljs.core.nth.call(null,k,1,null);d=function(a,b,d,e,f,g){return function x(h){return new cljs.core.LazySeq(null,function(a,b,d,e,f,g){return function(){for(;;){var a=cljs.core.seq.call(null,
+h);if(a){if(cljs.core.chunked_seq_QMARK_.call(null,a)){var b=cljs.core.chunk_first.call(null,a),e=cljs.core.count.call(null,b),f=cljs.core.chunk_buffer.call(null,e);a:for(var g=0;;)if(g=c&&cljs.core.every_QMARK_.call(null,b,a)},a);return cljs.core.map.call(null,function(a){return cljs.core.apply.call(null,cljs.core.concat,a)},a)};
+gadjett.collections.split_by_predicate_positions=function(a,b,c,d){b=cljs.core.map.call(null,function(a){return d*a},cljs.core.map.call(null,cljs.core.count,gadjett.collections.split_by_predicate.call(null,cljs.core.take_nth.call(null,d,a),b,c/d)));return gadjett.collections.positions.call(null,b,cljs.core.cst$kw$max_DASH_val,cljs.core.count.call(null,a))};gadjett.collections.submap_QMARK_=function(a,b){return cljs.core._EQ_.call(null,a,cljs.core.select_keys.call(null,b,cljs.core.keys.call(null,a)))};
+gadjett.collections.subsequence=function(a,b,c){return cljs.core.take.call(null,c-b,cljs.core.drop.call(null,b,a))};gadjett.collections.index_of=function(a,b){a=cljs.core.ffirst.call(null,cljs.core.filter.call(null,function(a){return cljs.core._EQ_.call(null,cljs.core.second.call(null,a),b)},cljs.core.map_indexed.call(null,function(a,b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null)},a)));return cljs.core.truth_(a)?a:-1};
+gadjett.collections.flatten_keys_STAR_=function(a,b,c){return cljs.core.map_QMARK_.call(null,c)?cljs.core.seq.call(null,c)?cljs.core.reduce.call(null,cljs.core.into,cljs.core.map.call(null,function(c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return gadjett.collections.flatten_keys_STAR_.call(null,a,cljs.core.conj.call(null,b,d),c)},cljs.core.seq.call(null,c))):cljs.core.PersistentArrayMap.EMPTY:cljs.core.assoc.call(null,a,b,c)};
+gadjett.collections.flatten_keys=function(a){return gadjett.collections.flatten_keys_STAR_.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentVector.EMPTY,a)};gadjett.collections.unflatten_keys=function(a){return cljs.core.reduce_kv.call(null,function(a,c,d){return cljs.core.assoc_in.call(null,a,c,d)},cljs.core.PersistentArrayMap.EMPTY,a)};
+gadjett.collections.take_from_map=function(a,b){return gadjett.collections.unflatten_keys.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.take.call(null,a,gadjett.collections.flatten_keys.call(null,b))))};gadjett.collections.deep_merge_STAR_=function(a){for(var b=[],c=arguments.length,d=0;;)if(db};
+gadjett.collections.partition_between=function(a,b){a=cljs.core.reductions.call(null,cljs.core.not_EQ_,!0,cljs.core.map.call(null,a,b,cljs.core.rest.call(null,b)));return cljs.core.map.call(null,cljs.core.partial.call(null,cljs.core.map,cljs.core.first),cljs.core.partition_by.call(null,cljs.core.second,cljs.core.map.call(null,cljs.core.list,b,a)))};gadjett.collections.collify=function(a){return cljs.core.coll_QMARK_.call(null,a)?a:new cljs.core.List(null,a,null,1,null)};
+gadjett.collections.edn_zip=function(a){return clojure.zip.zipper.call(null,function(a){return cljs.core.vector_QMARK_.call(null,a)||cljs.core.map_QMARK_.call(null,a)||cljs.core.seq_QMARK_.call(null,a)},function(a){return cljs.core.vector_QMARK_.call(null,a)?cljs.core.vec.call(null,a):cljs.core.map_QMARK_.call(null,a)?cljs.core.vec.call(null,a):cljs.core.seq_QMARK_.call(null,a)?cljs.core.seq.call(null,a):null},function(a,c){return cljs.core.with_meta.call(null,cljs.core.vector_QMARK_.call(null,a)?
+cljs.core.vec.call(null,c):cljs.core.map_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,c):cljs.core.seq_QMARK_.call(null,a)?c:null,cljs.core.meta.call(null,a))},a)};
+gadjett.collections.loc_my_replace=function(a,b){a=cljs.core.find.call(null,a,clojure.zip.node.call(null,b));if(cljs.core.truth_(a)){cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);var c=cljs.core.seq.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);b=clojure.zip.replace.call(null,b,a);return cljs.core.reduce.call(null,function(a,b){return clojure.zip.insert_right.call(null,a,b)},b,cljs.core.reverse.call(null,c))}return b};
+gadjett.collections.my_replace=function(a,b){if(!cljs.core.every_QMARK_.call(null,cljs.core.seq_QMARK_,cljs.core.vals.call(null,a)))throw Error("Assert failed: (every? seq? (vals smap))");for(b=gadjett.collections.edn_zip.call(null,b);;){if(clojure.zip.end_QMARK_.call(null,b))return clojure.zip.root.call(null,b);b=clojure.zip.next.call(null,gadjett.collections.loc_my_replace.call(null,a,b))}};gadjett.collections.comment_QMARK_=function(a){return cljs.core.re_matches.call(null,/\s*;.*/,a)};
+gadjett.collections.remove_ending_comments=function(a){return clojure.string.join.call(null,"\n",cljs.core.reverse.call(null,cljs.core.drop_while.call(null,gadjett.collections.comment_QMARK_,cljs.core.reverse.call(null,clojure.string.split_lines.call(null,a)))))};
+gadjett.collections.fix_blank_lines=function(a){return clojure.string.join.call(null,"\n",cljs.core.reverse.call(null,cljs.core.drop_while.call(null,clojure.string.blank_QMARK_,cljs.core.reverse.call(null,cljs.core.drop_while.call(null,clojure.string.blank_QMARK_,clojure.string.split_lines.call(null,a))))))};gadjett.collections.remove_blank_lines=function(a){return clojure.string.join.call(null,"\n",cljs.core.remove.call(null,clojure.string.blank_QMARK_,clojure.string.split_lines.call(null,a)))};
+gadjett.collections.compact=function(a){for(var b=[],c=arguments.length,d=0;;)if(dc?0:c}())};gadjett.collections.substr.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=function(){var c=cljs.core.count.call(null,a);c=bc?0:c}(),e=function(){var b=cljs.core.count.call(null,a);return ba-c},b))};
+gadjett.core_fn.add_event=function(a,b,c){return cljs.core.update.call(null,a,b,cljs.core.partial.call(null,gadjett.core_fn.add_event_and_filter,c))};gadjett.core_fn.record_function_call=function(a,b){cljs.core.swap_BANG_.call(null,gadjett.core_fn.history,gadjett.core_fn.add_event,a,(new Date).valueOf());return cljs.core.count.call(null,cljs.core.get.call(null,cljs.core.deref.call(null,gadjett.core_fn.history),a))<=cljs.core.cst$kw$max_DASH_function_DASH_calls.cljs$core$IFn$_invoke$arity$1(gadjett.core_fn.settings)};
+gadjett.core_fn.sort_history=function(a){return cljs.core.sort_by.call(null,cljs.core.second,gadjett.collections.map_object.call(null,cljs.core.count,a))};gadjett.core_fn.the_history=function(a){switch(arguments.length){case 1:return gadjett.core_fn.the_history.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 0:return gadjett.core_fn.the_history.cljs$core$IFn$_invoke$arity$0();default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+gadjett.core_fn.the_history.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.get.call(null,cljs.core.deref.call(null,gadjett.core_fn.history),a)};gadjett.core_fn.the_history.cljs$core$IFn$_invoke$arity$0=function(){return gadjett.core_fn.sort_history.call(null,cljs.core.deref.call(null,gadjett.core_fn.history))};gadjett.core_fn.the_history.cljs$lang$maxFixedArity=1;
+gadjett.core_fn.function_call_err_msg=function(a,b){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," was called too much over the last ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$timeslot_DASH_function_DASH_calls_DASH_msec.cljs$core$IFn$_invoke$arity$1(gadjett.core_fn.settings))," msec: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")};var klipse={core:{}};cljs.core.enable_console_print_BANG_.call(null);gadjett.core_fn.settings_BANG_.call(null,cljs.core.cst$kw$max_DASH_function_DASH_calls,100);klipse.core.version="7.11.4";console.info("Klipse ",klipse.core.version);console.info("Clojurescript ",cljs.core._STAR_clojurescript_version_STAR_);goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};
+goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.caseInsensitiveContains(b,a)};
+goog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")};
+goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))};goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")};
+goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")};
+goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdge_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};
+goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;
+goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")};
+goog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||""}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);b=goog.labs.userAgent.util.extractVersionTuples(b);var c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?a(["Edge"]):
+goog.labs.userAgent.browser.isChrome()?a(["Chrome","CriOS"]):(b=b[2])&&b[1]||""};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};
+goog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])return b[1];b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];return b};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};
+goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};
+goog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){a=goog.labs.userAgent.util.extractVersionTuples(a);var b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return"Gecko"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,"Firefox"):b[1];a=a[0];var c;if(a&&(c=a[2])&&(c=/Trident\/([^\s;]+)/.exec(c)))return c[1]}return""};
+goog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;bparseFloat(a))?String(b):a};
+goog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};
+goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;
+goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentModeOrHigher(9)||goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE,
+LEGACY_IE_RANGES:goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)};goog.dom.HtmlElement=function(){};goog.dom.TagName=function(a){this.tagName_=a};goog.dom.TagName.prototype.toString=function(){return this.tagName_};goog.dom.TagName.A=new goog.dom.TagName("A");goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR");goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM");goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS");goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET");goog.dom.TagName.AREA=new goog.dom.TagName("AREA");goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE");
+goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE");goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO");goog.dom.TagName.B=new goog.dom.TagName("B");goog.dom.TagName.BASE=new goog.dom.TagName("BASE");goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT");goog.dom.TagName.BDI=new goog.dom.TagName("BDI");goog.dom.TagName.BDO=new goog.dom.TagName("BDO");goog.dom.TagName.BIG=new goog.dom.TagName("BIG");goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE");goog.dom.TagName.BODY=new goog.dom.TagName("BODY");
+goog.dom.TagName.BR=new goog.dom.TagName("BR");goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON");goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS");goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION");goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER");goog.dom.TagName.CITE=new goog.dom.TagName("CITE");goog.dom.TagName.CODE=new goog.dom.TagName("CODE");goog.dom.TagName.COL=new goog.dom.TagName("COL");goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP");
+goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND");goog.dom.TagName.DATA=new goog.dom.TagName("DATA");goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST");goog.dom.TagName.DD=new goog.dom.TagName("DD");goog.dom.TagName.DEL=new goog.dom.TagName("DEL");goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS");goog.dom.TagName.DFN=new goog.dom.TagName("DFN");goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG");goog.dom.TagName.DIR=new goog.dom.TagName("DIR");goog.dom.TagName.DIV=new goog.dom.TagName("DIV");
+goog.dom.TagName.DL=new goog.dom.TagName("DL");goog.dom.TagName.DT=new goog.dom.TagName("DT");goog.dom.TagName.EM=new goog.dom.TagName("EM");goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED");goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET");goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION");goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE");goog.dom.TagName.FONT=new goog.dom.TagName("FONT");goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER");goog.dom.TagName.FORM=new goog.dom.TagName("FORM");
+goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME");goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET");goog.dom.TagName.H1=new goog.dom.TagName("H1");goog.dom.TagName.H2=new goog.dom.TagName("H2");goog.dom.TagName.H3=new goog.dom.TagName("H3");goog.dom.TagName.H4=new goog.dom.TagName("H4");goog.dom.TagName.H5=new goog.dom.TagName("H5");goog.dom.TagName.H6=new goog.dom.TagName("H6");goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD");goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER");
+goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP");goog.dom.TagName.HR=new goog.dom.TagName("HR");goog.dom.TagName.HTML=new goog.dom.TagName("HTML");goog.dom.TagName.I=new goog.dom.TagName("I");goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME");goog.dom.TagName.IMG=new goog.dom.TagName("IMG");goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT");goog.dom.TagName.INS=new goog.dom.TagName("INS");goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX");goog.dom.TagName.KBD=new goog.dom.TagName("KBD");
+goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN");goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL");goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND");goog.dom.TagName.LI=new goog.dom.TagName("LI");goog.dom.TagName.LINK=new goog.dom.TagName("LINK");goog.dom.TagName.MAP=new goog.dom.TagName("MAP");goog.dom.TagName.MARK=new goog.dom.TagName("MARK");goog.dom.TagName.MATH=new goog.dom.TagName("MATH");goog.dom.TagName.MENU=new goog.dom.TagName("MENU");goog.dom.TagName.META=new goog.dom.TagName("META");
+goog.dom.TagName.METER=new goog.dom.TagName("METER");goog.dom.TagName.NAV=new goog.dom.TagName("NAV");goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES");goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT");goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT");goog.dom.TagName.OL=new goog.dom.TagName("OL");goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP");goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION");goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT");
+goog.dom.TagName.P=new goog.dom.TagName("P");goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM");goog.dom.TagName.PRE=new goog.dom.TagName("PRE");goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS");goog.dom.TagName.Q=new goog.dom.TagName("Q");goog.dom.TagName.RP=new goog.dom.TagName("RP");goog.dom.TagName.RT=new goog.dom.TagName("RT");goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY");goog.dom.TagName.S=new goog.dom.TagName("S");goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP");
+goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT");goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION");goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT");goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL");goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE");goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN");goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE");goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG");goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE");
+goog.dom.TagName.SUB=new goog.dom.TagName("SUB");goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY");goog.dom.TagName.SUP=new goog.dom.TagName("SUP");goog.dom.TagName.SVG=new goog.dom.TagName("SVG");goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE");goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY");goog.dom.TagName.TD=new goog.dom.TagName("TD");goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE");goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA");goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT");
+goog.dom.TagName.TH=new goog.dom.TagName("TH");goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD");goog.dom.TagName.TIME=new goog.dom.TagName("TIME");goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE");goog.dom.TagName.TR=new goog.dom.TagName("TR");goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK");goog.dom.TagName.TT=new goog.dom.TagName("TT");goog.dom.TagName.U=new goog.dom.TagName("U");goog.dom.TagName.UL=new goog.dom.TagName("UL");goog.dom.TagName.VAR=new goog.dom.TagName("VAR");
+goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO");goog.dom.TagName.WBR=new goog.dom.TagName("WBR");goog.dom.asserts={};goog.dom.asserts.assertIsLocation=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.Location||!(a instanceof b.Element)),"Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLAnchorElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLAnchorElement&&"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLAnchorElement||!(a instanceof b.Location||a instanceof b.Element)),"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLLinkElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLLinkElement&&"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLLinkElement||!(a instanceof b.Location||a instanceof b.Element)),"Argument is not a HTMLLinkElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLImageElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLImageElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLImageElement||!(a instanceof b.Element)),"Argument is not a HTMLImageElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLEmbedElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLEmbedElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLEmbedElement||!(a instanceof b.Element)),"Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLFrameElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLFrameElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLFrameElement||!(a instanceof b.Element)),"Argument is not a HTMLFrameElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLIFrameElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLIFrameElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLIFrameElement||!(a instanceof b.Element)),"Argument is not a HTMLIFrameElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLObjectElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLObjectElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLObjectElement||!(a instanceof b.Element)),"Argument is not a HTMLObjectElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.assertIsHTMLScriptElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLScriptElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLScriptElement||!(a instanceof b.Element)),"Argument is not a HTMLScriptElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
+goog.dom.asserts.debugStringForType_=function(a){return goog.isObject(a)?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):void 0===a?"undefined":null===a?"null":typeof a};goog.dom.asserts.getWindow_=function(a){return(a=a&&a.ownerDocument)&&(a.defaultView||a.parentWindow)||goog.global};goog.dom.tags={};goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};goog.dom.tags.isVoidTag=function(a){return!0===goog.dom.tags.VOID_TAGS_[a]};goog.string.TypedString=function(){};goog.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_};goog.string.Const.prototype.implementsGoogStringTypedString=!0;goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
+goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};goog.string.Const.unwrap=function(a){if(a instanceof goog.string.Const&&a.constructor===goog.string.Const&&a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_)return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;goog.asserts.fail("expected object of type Const, got '"+a+"'");return"type_error:Const"};
+goog.string.Const.from=function(a){return goog.string.Const.create__googStringSecurityPrivate_(a)};goog.string.Const.TYPE_MARKER_={};goog.string.Const.create__googStringSecurityPrivate_=function(a){var b=new goog.string.Const;b.stringConstValueWithSecurityContract__googStringSecurityPrivate_=a;return b};goog.string.Const.EMPTY=goog.string.Const.from("");goog.html={};goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0;goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeScript.fromConstant=function(a){a=goog.string.Const.unwrap(a);return 0===a.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a)};
+goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});
+goog.html.SafeScript.unwrap=function(a){if(a instanceof goog.html.SafeScript&&a.constructor===goog.html.SafeScript&&a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;goog.asserts.fail("expected object of type SafeScript, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeScript"};goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a)};
+goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=a;return this};goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");goog.fs={};goog.fs.url={};goog.fs.url.createObjectUrl=function(a){return goog.fs.url.getUrlObject_().createObjectURL(a)};goog.fs.url.revokeObjectUrl=function(a){goog.fs.url.getUrlObject_().revokeObjectURL(a)};goog.fs.url.getUrlObject_=function(){var a=goog.fs.url.findUrlObject_();if(null!=a)return a;throw Error("This browser doesn't seem to support blob URLs");};
+goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null};goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()};goog.i18n={};goog.i18n.bidi={};goog.i18n.bidi.FORCE_RTL=!1;
+goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||
+"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4));goog.i18n.bidi.Format={LRE:"",RLE:"",PDF:"",LRM:"",RLM:""};goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};goog.i18n.bidi.RIGHT="right";goog.i18n.bidi.LEFT="left";goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT;
+goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT;goog.i18n.bidi.toDir=function(a,b){return"number"==typeof a?0a?goog.i18n.bidi.Dir.RTL:b?null:goog.i18n.bidi.Dir.NEUTRAL:null==a?null:a?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-ࠀ-Ⰰ-︀--";goog.i18n.bidi.rtlChars_="֑-ۯۺ-߿יִ-﷿ﹰ-ﻼ";goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
+goog.i18n.bidi.stripHtmlIfNeeded_=function(a,b){return b?a.replace(goog.i18n.bidi.htmlSkipReg_,""):a};goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.hasAnyRtl=function(a,b){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl;
+goog.i18n.bidi.hasAnyLtr=function(a,b){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.isRtlChar=function(a){return goog.i18n.bidi.rtlRe_.test(a)};goog.i18n.bidi.isLtrChar=function(a){return goog.i18n.bidi.ltrRe_.test(a)};goog.i18n.bidi.isNeutralChar=function(a){return!goog.i18n.bidi.isLtrChar(a)&&!goog.i18n.bidi.isRtlChar(a)};
+goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.startsWithRtl=function(a,b){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl;
+goog.i18n.bidi.startsWithLtr=function(a,b){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr;goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;goog.i18n.bidi.isNeutralText=function(a,b){a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b);return goog.i18n.bidi.isRequiredLtrRe_.test(a)||!goog.i18n.bidi.hasAnyLtr(a)&&!goog.i18n.bidi.hasAnyRtl(a)};
+goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$");goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$");goog.i18n.bidi.endsWithLtr=function(a,b){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr;
+goog.i18n.bidi.endsWithRtl=function(a,b){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl;goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;goog.i18n.bidi.isRtlLanguage=function(a){return goog.i18n.bidi.rtlLocalesRe_.test(a)};goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
+goog.i18n.bidi.guardBracketInText=function(a,b){b=(void 0===b?goog.i18n.bidi.hasAnyRtl(a):b)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return a.replace(goog.i18n.bidi.bracketGuardTextRe_,b+"$\x26"+b)};goog.i18n.bidi.enforceRtlInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3drtl"):"\n\x3cspan dir\x3drtl\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceRtlInText=function(a){return goog.i18n.bidi.Format.RLE+a+goog.i18n.bidi.Format.PDF};
+goog.i18n.bidi.enforceLtrInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3dltr"):"\n\x3cspan dir\x3dltr\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceLtrInText=function(a){return goog.i18n.bidi.Format.LRE+a+goog.i18n.bidi.Format.PDF};goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;goog.i18n.bidi.leftRe_=/left/gi;goog.i18n.bidi.rightRe_=/right/gi;goog.i18n.bidi.tempRe_=/%%%%/g;
+goog.i18n.bidi.mirrorCSS=function(a){return a.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)};goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;
+goog.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")};goog.i18n.bidi.wordSeparatorRe_=/\s+/;goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;goog.i18n.bidi.rtlDetectionThreshold_=.4;
+goog.i18n.bidi.estimateDirection=function(a,b){var c=0,d=0,e=!1;a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b).split(goog.i18n.bidi.wordSeparatorRe_);for(b=0;bgoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};
+goog.i18n.bidi.detectRtlDirectionality=function(a,b){return goog.i18n.bidi.estimateDirection(a,b)==goog.i18n.bidi.Dir.RTL};goog.i18n.bidi.setElementDirAndAlign=function(a,b){a&&(b=goog.i18n.bidi.toDir(b))&&(a.style.textAlign=b==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,a.dir=b==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")};
+goog.i18n.bidi.setElementDirByTextDirectionality=function(a,b){switch(goog.i18n.bidi.estimateDirection(b)){case goog.i18n.bidi.Dir.LTR:a.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:a.dir="rtl";break;default:a.removeAttribute("dir")}};goog.i18n.bidi.DirectionalString=function(){};goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};
+goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
+goog.html.TrustedResourceUrl.unwrap=function(a){if(a instanceof goog.html.TrustedResourceUrl&&a.constructor===goog.html.TrustedResourceUrl&&a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+a+"' of type "+goog.typeOf(a));return"type_error:TrustedResourceUrl"};
+goog.html.TrustedResourceUrl.format=function(a,b){a=goog.html.TrustedResourceUrl.format_(a,b);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};
+goog.html.TrustedResourceUrl.format_=function(a,b){var c=goog.string.Const.unwrap(a);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(c))throw Error("Invalid TrustedResourceUrl format: "+c);return c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(a,e){if(!Object.prototype.hasOwnProperty.call(b,e))throw Error('Found marker, "'+e+'", in format string, "'+c+'", but no valid label mapping found in args: '+JSON.stringify(b));a=b[e];return a instanceof goog.string.Const?goog.string.Const.unwrap(a):
+encodeURIComponent(String(a))})};goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;goog.html.TrustedResourceUrl.BASE_URL_=/^(?:https:)?\/\/[0-9a-z.:[\]-]+\/|^\/[^\/\\]|^about:blank(#|$)/i;goog.html.TrustedResourceUrl.formatWithParams=function(a,b,c){a=goog.html.TrustedResourceUrl.format_(a,b);b=/\?/.test(a)?"\x26":"?";for(var d in c)null!=c[d]&&(a+=b+encodeURIComponent(d)+"\x3d"+encodeURIComponent(String(c[d])),b="\x26");return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};
+goog.html.TrustedResourceUrl.fromConstant=function(a){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};goog.html.TrustedResourceUrl.fromConstants=function(a){for(var b="",c=0;c]/.test(a),"Forbidden characters in style string: "+a)};goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
+goog.html.SafeStyle.unwrap=function(a){if(a instanceof goog.html.SafeStyle&&a.constructor===goog.html.SafeStyle&&a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;goog.asserts.fail("expected object of type SafeStyle, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeStyle"};goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a)};
+goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=a;return this};goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
+goog.html.SafeStyle.create=function(a){var b="",c;for(c in a){if(!/^[-_a-zA-Z0-9]+$/.test(c))throw Error("Name allows only [-_a-zA-Z0-9], got: "+c);var d=a[c];null!=d&&(d=goog.isArray(d)?goog.array.map(d,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(d),b+=c+":"+d+";")}if(!b)return goog.html.SafeStyle.EMPTY;goog.html.SafeStyle.checkStyle_(b);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
+goog.html.SafeStyle.sanitizePropertyValue_=function(a){if(a instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(a).replace(/+~[\]()=^$|]+$/.test(c))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,\x3e+~[\\]()\x3d^$|] and strings, got: "+a);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(c))throw Error("() and [] in selector must be balanced, got: "+a);b instanceof goog.html.SafeStyle||(b=goog.html.SafeStyle.create(b));
+a=a+"{"+goog.html.SafeStyle.unwrap(b)+"}";return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.hasBalancedBrackets_=function(a){for(var b={"(":")","[":"]"},c=[],d=0;da.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.dom.ASSUME_QUIRKS_MODE=!1;goog.dom.ASSUME_STANDARDS_MODE=!1;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.getDomHelper=function(a){return a?new goog.dom.DomHelper(goog.dom.getOwnerDocument(a)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};goog.dom.getDocument=function(){return document};goog.dom.getElement=function(a){return goog.dom.getElementHelper_(document,a)};
+goog.dom.getElementHelper_=function(a,b){return goog.isString(b)?a.getElementById(b):b};goog.dom.getRequiredElement=function(a){return goog.dom.getRequiredElementHelper_(document,a)};goog.dom.getRequiredElementHelper_=function(a,b){goog.asserts.assertString(b);a=goog.dom.getElementHelper_(a,b);return a=goog.asserts.assertElement(a,"No element found with id: "+b)};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagName=function(a,b){return(b||document).getElementsByTagName(String(a))};
+goog.dom.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(document,a,b,c)};goog.dom.getElementByTagNameAndClass=function(a,b,c){return goog.dom.getElementByTagNameAndClass_(document,a,b,c)};goog.dom.getElementsByClass=function(a,b){var c=b||document;return goog.dom.canUseQuerySelector_(c)?c.querySelectorAll("."+a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)};
+goog.dom.getElementByClass=function(a,b){var c=b||document;return(c.getElementsByClassName?c.getElementsByClassName(a)[0]:goog.dom.getElementByTagNameAndClass_(document,"*",a,b))||null};goog.dom.getRequiredElementByClass=function(a,b){b=goog.dom.getElementByClass(a,b);return goog.asserts.assert(b,"No element found with className: "+a)};goog.dom.canUseQuerySelector_=function(a){return!(!a.querySelectorAll||!a.querySelector)};
+goog.dom.getElementsByTagNameAndClass_=function(a,b,c,d){a=d||a;b=b&&"*"!=b?String(b).toUpperCase():"";if(goog.dom.canUseQuerySelector_(a)&&(b||c))return a.querySelectorAll(b+(c?"."+c:""));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;return d}return a}a=a.getElementsByTagName(b||"*");if(c){d={};for(f=e=0;g=a[f];f++)b=g.className,"function"==typeof b.split&&goog.array.contains(b.split(/\s+/),c)&&(d[e++]=g);
+d.length=e;return d}return a};goog.dom.getElementByTagNameAndClass_=function(a,b,c,d){var e=d||a,f=b&&"*"!=b?String(b).toUpperCase():"";return goog.dom.canUseQuerySelector_(e)&&(f||c)?e.querySelector(f+(c?"."+c:"")):goog.dom.getElementsByTagNameAndClass_(a,b,c,d)[0]||null};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;
+goog.dom.setProperties=function(a,b){goog.object.forEach(b,function(b,d){b&&b.implementsGoogStringTypedString&&(b=b.getTypedStringValue());"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(d)?a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d],b):goog.string.startsWith(d,"aria-")||goog.string.startsWith(d,"data-")?a.setAttribute(d,b):a[d]=b})};
+goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};goog.dom.getViewportSize=function(a){return goog.dom.getViewportSize_(a||window)};goog.dom.getViewportSize_=function(a){a=a.document;a=goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body;return new goog.math.Size(a.clientWidth,a.clientHeight)};
+goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeightForWindow=function(a){return goog.dom.getDocumentHeight_(a)};
+goog.dom.getDocumentHeight_=function(a){var b=a.document,c=0;if(b){c=b.body;var d=b.documentElement;if(!d||!c)return 0;a=goog.dom.getViewportSize_(a).height;if(goog.dom.isCss1CompatMode_(b)&&d.scrollHeight)c=d.scrollHeight!=a?d.scrollHeight:d.offsetHeight;else{b=d.scrollHeight;var e=d.offsetHeight;d.clientHeight!=e&&(b=c.scrollHeight,e=c.offsetHeight);c=b>a?b>e?b:e:ba};goog.dom.nativelySupportsFocus_=function(a){return"A"==a.tagName||"INPUT"==a.tagName||"TEXTAREA"==a.tagName||"SELECT"==a.tagName||"BUTTON"==a.tagName};goog.dom.hasNonZeroBoundingRect_=function(a){a=!goog.isFunction(a.getBoundingClientRect)||goog.userAgent.IE&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect();return goog.isDefAndNotNull(a)&&0=this.branches_&&this.cancel()};goog.async.Deferred.prototype.continue_=function(a,b){this.blocked_=!1;this.updateResult_(a,b)};goog.async.Deferred.prototype.updateResult_=function(a,b){this.fired_=!0;this.result_=b;this.hadError_=!a;this.fire_()};goog.async.Deferred.prototype.check_=function(){if(this.hasFired()){if(!this.silentlyCanceled_)throw new goog.async.Deferred.AlreadyCalledError(this);this.silentlyCanceled_=!1}};
+goog.async.Deferred.prototype.callback=function(a){this.check_();this.assertNotDeferred_(a);this.updateResult_(!0,a)};goog.async.Deferred.prototype.errback=function(a){this.check_();this.assertNotDeferred_(a);this.makeStackTraceLong_(a);this.updateResult_(!1,a)};goog.async.Deferred.prototype.makeStackTraceLong_=function(a){goog.async.Deferred.LONG_STACK_TRACES&&this.constructorStack_&&goog.isObject(a)&&a.stack&&/^[^\n]+(\n [^\n]+)+/.test(a.stack)&&(a.stack=a.stack+"\nDEFERRED OPERATION:\n"+this.constructorStack_)};
+goog.async.Deferred.prototype.assertNotDeferred_=function(a){goog.asserts.assert(!(a instanceof goog.async.Deferred),"An execution sequence may not be initiated with a blocking Deferred.")};goog.async.Deferred.prototype.addCallback=function(a,b){return this.addCallbacks(a,null,b)};goog.async.Deferred.prototype.addErrback=function(a,b){return this.addCallbacks(null,a,b)};goog.async.Deferred.prototype.addBoth=function(a,b){return this.addCallbacks(a,a,b)};
+goog.async.Deferred.prototype.addFinally=function(a,b){return this.addCallbacks(a,function(b){var c=a.call(this,b);if(!goog.isDef(c))throw b;return c},b)};goog.async.Deferred.prototype.addCallbacks=function(a,b,c){goog.asserts.assert(!this.blocking_,"Blocking Deferreds can not be re-used");this.sequence_.push([a,b,c]);this.hasFired()&&this.fire_();return this};
+goog.async.Deferred.prototype.then=function(a,b,c){var d,e,f=new goog.Promise(function(a,b){d=a;e=b});this.addCallbacks(d,function(a){a instanceof goog.async.Deferred.CanceledError?f.cancel():e(a)});return f.then(a,b,c)};goog.Thenable.addImplementation(goog.async.Deferred);goog.async.Deferred.prototype.chainDeferred=function(a){this.addCallbacks(a.callback,a.errback,a);return this};
+goog.async.Deferred.prototype.awaitDeferred=function(a){return a instanceof goog.async.Deferred?this.addCallback(goog.bind(a.branch,a)):this.addCallback(function(){return a})};goog.async.Deferred.prototype.branch=function(a){var b=new goog.async.Deferred;this.chainDeferred(b);a&&(b.parent_=this,this.branches_++);return b};goog.async.Deferred.prototype.hasFired=function(){return this.fired_};goog.async.Deferred.prototype.isError=function(a){return a instanceof Error};
+goog.async.Deferred.prototype.hasErrback_=function(){return goog.array.some(this.sequence_,function(a){return goog.isFunction(a[1])})};
+goog.async.Deferred.prototype.fire_=function(){this.unhandledErrorId_&&this.hasFired()&&this.hasErrback_()&&(goog.async.Deferred.unscheduleError_(this.unhandledErrorId_),this.unhandledErrorId_=0);this.parent_&&(this.parent_.branches_--,delete this.parent_);for(var a=this.result_,b=!1,c=!1;this.sequence_.length&&!this.blocked_;){var d=this.sequence_.shift(),e=d[0],f=d[1];d=d[2];if(e=this.hadError_?f:e)try{var g=e.call(d||this.defaultScope_,a);goog.isDef(g)&&(this.hadError_=this.hadError_&&(g==a||this.isError(g)),
+this.result_=a=g);if(goog.Thenable.isImplementedBy(a)||"function"===typeof goog.global.Promise&&a instanceof goog.global.Promise)this.blocked_=c=!0}catch(h){a=h,this.hadError_=!0,this.makeStackTraceLong_(a),this.hasErrback_()||(b=!0)}}this.result_=a;c?(c=goog.bind(this.continue_,this,!0),g=goog.bind(this.continue_,this,!1),a instanceof goog.async.Deferred?(a.addCallbacks(c,g),a.blocking_=!0):a.then(c,g)):!goog.async.Deferred.STRICT_ERRORS||!this.isError(a)||a instanceof goog.async.Deferred.CanceledError||
+(b=this.hadError_=!0);b&&(this.unhandledErrorId_=goog.async.Deferred.scheduleError_(a))};goog.async.Deferred.succeed=function(a){var b=new goog.async.Deferred;b.callback(a);return b};goog.async.Deferred.fromPromise=function(a){var b=new goog.async.Deferred;b.callback();b.addCallback(function(){return a});return b};goog.async.Deferred.fail=function(a){var b=new goog.async.Deferred;b.errback(a);return b};goog.async.Deferred.canceled=function(){var a=new goog.async.Deferred;a.cancel();return a};
+goog.async.Deferred.when=function(a,b,c){return a instanceof goog.async.Deferred?a.branch(!0).addCallback(b,c):goog.async.Deferred.succeed(a).addCallback(b,c)};goog.async.Deferred.AlreadyCalledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.AlreadyCalledError,goog.debug.Error);goog.async.Deferred.AlreadyCalledError.prototype.message="Deferred has already fired";goog.async.Deferred.AlreadyCalledError.prototype.name="AlreadyCalledError";
+goog.async.Deferred.CanceledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.CanceledError,goog.debug.Error);goog.async.Deferred.CanceledError.prototype.message="Deferred was canceled";goog.async.Deferred.CanceledError.prototype.name="CanceledError";goog.async.Deferred.Error_=function(a){this.id_=goog.global.setTimeout(goog.bind(this.throwError,this),0);this.error_=a};
+goog.async.Deferred.Error_.prototype.throwError=function(){goog.asserts.assert(goog.async.Deferred.errorMap_[this.id_],"Cannot throw an error that is not scheduled.");delete goog.async.Deferred.errorMap_[this.id_];throw this.error_;};goog.async.Deferred.Error_.prototype.resetTimer=function(){goog.global.clearTimeout(this.id_)};goog.async.Deferred.errorMap_={};goog.async.Deferred.scheduleError_=function(a){a=new goog.async.Deferred.Error_(a);goog.async.Deferred.errorMap_[a.id_]=a;return a.id_};
+goog.async.Deferred.unscheduleError_=function(a){var b=goog.async.Deferred.errorMap_[a];b&&(b.resetTimer(),delete goog.async.Deferred.errorMap_[a])};goog.async.Deferred.assertNoErrors=function(){var a=goog.async.Deferred.errorMap_,b;for(b in a){var c=a[b];c.resetTimer();c.throwError()}};goog.net={};goog.net.jsloader={};goog.net.jsloader.GLOBAL_VERIFY_OBJS_="closure_verification";goog.net.jsloader.DEFAULT_TIMEOUT=5E3;goog.net.jsloader.scriptsToLoad_=[];
+goog.net.jsloader.safeLoadMany=function(a,b){if(!a.length)return goog.async.Deferred.succeed(null);var c=goog.net.jsloader.scriptsToLoad_.length;goog.array.extend(goog.net.jsloader.scriptsToLoad_,a);if(c)return goog.net.jsloader.scriptLoadingDeferred_;a=goog.net.jsloader.scriptsToLoad_;var d=function(){var c=a.shift();c=goog.net.jsloader.safeLoad(c,b);a.length&&c.addBoth(d);return c};goog.net.jsloader.scriptLoadingDeferred_=d();return goog.net.jsloader.scriptLoadingDeferred_};
+goog.net.jsloader.safeLoad=function(a,b){var c=b||{};b=c.document||document;var d=goog.html.TrustedResourceUrl.unwrap(a),e=goog.dom.createElement("SCRIPT"),f={script_:e,timeout_:void 0},g=new goog.async.Deferred(goog.net.jsloader.cancel_,f),h=null,k=goog.isDefAndNotNull(c.timeout)?c.timeout:goog.net.jsloader.DEFAULT_TIMEOUT;0=a.keyCode)a.keyCode=-1}catch(b){}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};goog.events.Listenable=function(){};goog.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);goog.events.Listenable.addImplementation=function(a){a.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP]=!0};goog.events.Listenable.isImplementedBy=function(a){return!(!a||!a[goog.events.Listenable.IMPLEMENTED_BY_PROP])};goog.events.ListenableKey=function(){};goog.events.ListenableKey.counter_=0;goog.events.ListenableKey.reserveKey=function(){return++goog.events.ListenableKey.counter_};goog.events.Listener=function(a,b,c,d,e,f){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack);this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=goog.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};goog.events.Listener.ENABLE_MONITORING=!1;goog.events.Listener.prototype.markAsRemoved=function(){this.removed=!0;this.handler=this.src=this.proxy=this.listener=null};goog.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};goog.events.ListenerMap.prototype.getTypeCount=function(){return this.typeCount_};goog.events.ListenerMap.prototype.getListenerCount=function(){var a=0,b;for(b in this.listeners)a+=this.listeners[b].length;return a};
+goog.events.ListenerMap.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.listeners[f];a||(a=this.listeners[f]=[],this.typeCount_++);var g=goog.events.ListenerMap.findListenerIndex_(a,b,d,e);-1a.keyCode||void 0!=a.returnValue};
+goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.events.getListenerMap_=function(a){a=a[goog.events.LISTENER_MAP_PROP_];return a instanceof goog.events.ListenerMap?a:null};goog.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
+goog.events.wrapListener=function(a){goog.asserts.assert(a,"Listener can not be null.");if(goog.isFunction(a))return a;goog.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[goog.events.LISTENER_WRAPPER_PROP_]||(a[goog.events.LISTENER_WRAPPER_PROP_]=function(b){return a.handleEvent(b)});return a[goog.events.LISTENER_WRAPPER_PROP_]};goog.debug.entryPointRegistry.register(function(a){goog.events.handleBrowserEvent_=a(goog.events.handleBrowserEvent_)});goog.events.EventTarget=function(){goog.Disposable.call(this);this.eventTargetListeners_=new goog.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};goog.inherits(goog.events.EventTarget,goog.Disposable);goog.events.Listenable.addImplementation(goog.events.EventTarget);goog.events.EventTarget.MAX_ANCESTORS_=1E3;goog.events.EventTarget.prototype.getParentEventTarget=function(){return this.parentEventTarget_};
+goog.events.EventTarget.prototype.setParentEventTarget=function(a){this.parentEventTarget_=a};goog.events.EventTarget.prototype.addEventListener=function(a,b,c,d){goog.events.listen(this,a,b,c,d)};goog.events.EventTarget.prototype.removeEventListener=function(a,b,c,d){goog.events.unlisten(this,a,b,c,d)};
+goog.events.EventTarget.prototype.dispatchEvent=function(a){this.assertInitialized_();var b=this.getParentEventTarget();if(b){var c=[];for(var d=1;b;b=b.getParentEventTarget())c.push(b),goog.asserts.assert(++dgoog.Timer.MAX_TIMEOUT_?goog.Timer.INVALID_TIMEOUT_ID_:goog.Timer.defaultTimerObject.setTimeout(a,b||0)};goog.Timer.clear=function(a){goog.Timer.defaultTimerObject.clearTimeout(a)};
+goog.Timer.promise=function(a,b){var c=null;return(new goog.Promise(function(d,e){c=goog.Timer.callOnce(function(){d(b)},a);c==goog.Timer.INVALID_TIMEOUT_ID_&&e(Error("Failed to schedule timer."))})).thenCatch(function(a){goog.Timer.clear(c);throw a;})};goog.json={};goog.json.USE_NATIVE_JSON=!1;goog.json.TRY_NATIVE_JSON=!1;goog.json.isValid=function(a){return/^\s*$/.test(a)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};goog.json.errorLogger_=goog.nullFunction;goog.json.setErrorLogger=function(a){goog.json.errorLogger_=a};
+goog.json.parse=goog.json.USE_NATIVE_JSON?goog.global.JSON.parse:function(a){if(goog.json.TRY_NATIVE_JSON)try{return goog.global.JSON.parse(a)}catch(d){var b=d}a=String(a);if(goog.json.isValid(a))try{var c=eval("("+a+")");b&&goog.json.errorLogger_("Invalid JSON: "+a,b);return c}catch(d){}throw Error("Invalid JSON string: "+a);};
+goog.json.unsafeParse=goog.json.USE_NATIVE_JSON?goog.global.JSON.parse:function(a){if(goog.json.TRY_NATIVE_JSON)try{return goog.global.JSON.parse(a)}catch(d){var b=d}var c=eval("("+a+")");b&&goog.json.errorLogger_("Invalid JSON: "+a,b);return c};goog.json.serialize=goog.json.USE_NATIVE_JSON?goog.global.JSON.stringify:function(a,b){return(new goog.json.Serializer(b)).serialize(a)};goog.json.Serializer=function(a){this.replacer_=a};
+goog.json.Serializer.prototype.serialize=function(a){var b=[];this.serializeInternal(a,b);return b.join("")};
+goog.json.Serializer.prototype.serializeInternal=function(a,b){if(null==a)b.push("null");else{if("object"==typeof a){if(goog.isArray(a)){this.serializeArray(a,b);return}if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();else{this.serializeObject_(a,b);return}}switch(typeof a){case "string":this.serializeString_(a,b);break;case "number":this.serializeNumber_(a,b);break;case "boolean":b.push(String(a));break;case "function":b.push("null");break;default:throw Error("Unknown type: "+
+typeof a);}}};goog.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};goog.json.Serializer.charsToReplace_=/\uffff/.test("")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;
+goog.json.Serializer.prototype.serializeString_=function(a,b){b.push('"',a.replace(goog.json.Serializer.charsToReplace_,function(a){var b=goog.json.Serializer.charToJsonCharCache_[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),goog.json.Serializer.charToJsonCharCache_[a]=b);return b}),'"')};goog.json.Serializer.prototype.serializeNumber_=function(a,b){b.push(isFinite(a)&&!isNaN(a)?String(a):"null")};
+goog.json.Serializer.prototype.serializeArray=function(a,b){var c=a.length;b.push("[");for(var d="",e=0;e=goog.debug.MAX_STACK_DEPTH){b.push("[...long stack...]");break}}a&&d>=a?b.push("[...reached max depth limit...]"):b.push("[end]");return b.join("")};
+goog.debug.MAX_STACK_DEPTH=50;goog.debug.getNativeStackTrace_=function(a){var b=Error();if(Error.captureStackTrace)return Error.captureStackTrace(b,a),String(b.stack);try{throw b;}catch(c){b=c}return(a=b.stack)?String(a):null};goog.debug.getStacktrace=function(a){var b;goog.debug.FORCE_SLOPPY_STACKS||(b=goog.debug.getNativeStackTrace_(a||goog.debug.getStacktrace));b||(b=goog.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return b};
+goog.debug.getStacktraceHelper_=function(a,b){var c=[];if(goog.array.contains(b,a))c.push("[...circular reference...]");else if(a&&b.length=this.getEffectiveLevel().value};
+goog.debug.Logger.prototype.log=function(a,b,c){goog.debug.LOGGING_ENABLED&&this.isLoggable(a)&&(goog.isFunction(b)&&(b=b()),this.doLogRecord_(this.getLogRecord(a,b,c)))};goog.debug.Logger.prototype.getLogRecord=function(a,b,c){a=goog.debug.LogBuffer.isBufferingEnabled()?goog.debug.LogBuffer.getInstance().addRecord(a,b,this.name_):new goog.debug.LogRecord(a,String(b),this.name_);c&&a.setException(c);return a};
+goog.debug.Logger.prototype.shout=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SHOUT,a,b)};goog.debug.Logger.prototype.severe=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SEVERE,a,b)};goog.debug.Logger.prototype.warning=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.WARNING,a,b)};goog.debug.Logger.prototype.info=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.INFO,a,b)};
+goog.debug.Logger.prototype.config=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.CONFIG,a,b)};goog.debug.Logger.prototype.fine=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINE,a,b)};goog.debug.Logger.prototype.finer=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINER,a,b)};goog.debug.Logger.prototype.finest=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINEST,a,b)};
+goog.debug.Logger.prototype.logRecord=function(a){goog.debug.LOGGING_ENABLED&&this.isLoggable(a.getLevel())&&this.doLogRecord_(a)};goog.debug.Logger.prototype.doLogRecord_=function(a){goog.debug.Logger.logToProfilers("log:"+a.getMessage());if(goog.debug.Logger.ENABLE_HIERARCHY)for(var b=this;b;)b.callPublish_(a),b=b.getParent();else{b=0;for(var c;c=goog.debug.Logger.rootHandlers_[b++];)c(a)}};goog.debug.Logger.prototype.callPublish_=function(a){if(this.handlers_)for(var b=0,c;c=this.handlers_[b];b++)c(a)};
+goog.debug.Logger.prototype.setParent_=function(a){this.parent_=a};goog.debug.Logger.prototype.addChild_=function(a,b){this.getChildren()[a]=b};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;
+goog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(goog.debug.Logger.ROOT_LOGGER_NAME),goog.debug.LogManager.loggers_[goog.debug.Logger.ROOT_LOGGER_NAME]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};
+goog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};goog.debug.LogManager.getLogger=function(a){goog.debug.LogManager.initialize();return goog.debug.LogManager.loggers_[a]||goog.debug.LogManager.createLogger_(a)};goog.debug.LogManager.createFunctionForCatchErrors=function(a){return function(b){(a||goog.debug.LogManager.getRoot()).severe("Error: "+b.message+" ("+b.fileName+" @ Line: "+b.line+")")}};
+goog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c);c=a.substr(c+1);d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};goog.log={};goog.log.ENABLED=goog.debug.LOGGING_ENABLED;goog.log.ROOT_LOGGER_NAME=goog.debug.Logger.ROOT_LOGGER_NAME;goog.log.Logger=goog.debug.Logger;goog.log.Level=goog.debug.Logger.Level;goog.log.LogRecord=goog.debug.LogRecord;goog.log.getLogger=function(a,b){return goog.log.ENABLED?(a=goog.debug.LogManager.getLogger(a),b&&a&&a.setLevel(b),a):null};goog.log.addHandler=function(a,b){goog.log.ENABLED&&a&&a.addHandler(b)};
+goog.log.removeHandler=function(a,b){return goog.log.ENABLED&&a?a.removeHandler(b):!1};goog.log.log=function(a,b,c,d){goog.log.ENABLED&&a&&a.log(b,c,d)};goog.log.error=function(a,b,c){goog.log.ENABLED&&a&&a.severe(b,c)};goog.log.warning=function(a,b,c){goog.log.ENABLED&&a&&a.warning(b,c)};goog.log.info=function(a,b,c){goog.log.ENABLED&&a&&a.info(b,c)};goog.log.fine=function(a,b,c){goog.log.ENABLED&&a&&a.fine(b,c)};goog.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
+goog.net.ErrorCode.getDebugMessage=function(a){switch(a){case goog.net.ErrorCode.NO_ERROR:return"No Error";case goog.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case goog.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case goog.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case goog.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case goog.net.ErrorCode.EXCEPTION:return"An exception occurred";case goog.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
+case goog.net.ErrorCode.ABORT:return"Request was aborted";case goog.net.ErrorCode.TIMEOUT:return"Request timed out";case goog.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};goog.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};goog.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
+PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
+goog.net.HttpStatus.isSuccess=function(a){switch(a){case goog.net.HttpStatus.OK:case goog.net.HttpStatus.CREATED:case goog.net.HttpStatus.ACCEPTED:case goog.net.HttpStatus.NO_CONTENT:case goog.net.HttpStatus.PARTIAL_CONTENT:case goog.net.HttpStatus.NOT_MODIFIED:case goog.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};goog.net.XhrLike=function(){};goog.net.XhrLike.prototype.open=function(a,b,c,d,e){};goog.net.XhrLike.prototype.send=function(a){};goog.net.XhrLike.prototype.abort=function(){};goog.net.XhrLike.prototype.setRequestHeader=function(a,b){};goog.net.XhrLike.prototype.getResponseHeader=function(a){};goog.net.XhrLike.prototype.getAllResponseHeaders=function(){};goog.net.XmlHttpFactory=function(){};goog.net.XmlHttpFactory.prototype.cachedOptions_=null;goog.net.XmlHttpFactory.prototype.createInstance=goog.abstractMethod;goog.net.XmlHttpFactory.prototype.getOptions=function(){return this.cachedOptions_||(this.cachedOptions_=this.internalGetOptions())};goog.net.XmlHttpFactory.prototype.internalGetOptions=goog.abstractMethod;goog.net.WrapperXmlHttpFactory=function(a,b){goog.net.XmlHttpFactory.call(this);this.xhrFactory_=a;this.optionsFactory_=b};goog.inherits(goog.net.WrapperXmlHttpFactory,goog.net.XmlHttpFactory);goog.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};goog.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};goog.net.XmlHttp=function(){return goog.net.XmlHttp.factory_.createInstance()};goog.net.XmlHttp.ASSUME_NATIVE_XHR=!1;goog.net.XmlHttpDefines={};goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;goog.net.XmlHttp.getOptions=function(){return goog.net.XmlHttp.factory_.getOptions()};goog.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};goog.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
+goog.net.XmlHttp.setFactory=function(a,b){goog.net.XmlHttp.setGlobalFactory(new goog.net.WrapperXmlHttpFactory(goog.asserts.assert(a),goog.asserts.assert(b)))};goog.net.XmlHttp.setGlobalFactory=function(a){goog.net.XmlHttp.factory_=a};goog.net.DefaultXmlHttpFactory=function(){goog.net.XmlHttpFactory.call(this)};goog.inherits(goog.net.DefaultXmlHttpFactory,goog.net.XmlHttpFactory);
+goog.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var a=this.getProgId_();return a?new ActiveXObject(a):new XMLHttpRequest};goog.net.DefaultXmlHttpFactory.prototype.internalGetOptions=function(){var a={};this.getProgId_()&&(a[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,a[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0);return a};
+goog.net.DefaultXmlHttpFactory.prototype.getProgId_=function(){if(goog.net.XmlHttp.ASSUME_NATIVE_XHR||goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!this.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var a=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],b=0;bgoog.net.XmlHttp.ReadyState.LOADED?this.xhr_.status:-1}catch(a){return-1}};goog.net.XhrIo.prototype.getStatusText=function(){try{return this.getReadyState()>goog.net.XmlHttp.ReadyState.LOADED?this.xhr_.statusText:""}catch(a){return goog.log.fine(this.logger_,"Can not get status: "+a.message),""}};goog.net.XhrIo.prototype.getLastUri=function(){return String(this.lastUri_)};
+goog.net.XhrIo.prototype.getResponseText=function(){try{return this.xhr_?this.xhr_.responseText:""}catch(a){return goog.log.fine(this.logger_,"Can not get responseText: "+a.message),""}};goog.net.XhrIo.prototype.getResponseBody=function(){try{if(this.xhr_&&"responseBody"in this.xhr_)return this.xhr_.responseBody}catch(a){goog.log.fine(this.logger_,"Can not get responseBody: "+a.message)}return null};
+goog.net.XhrIo.prototype.getResponseXml=function(){try{return this.xhr_?this.xhr_.responseXML:null}catch(a){return goog.log.fine(this.logger_,"Can not get responseXML: "+a.message),null}};goog.net.XhrIo.prototype.getResponseJson=function(a){if(this.xhr_){var b=this.xhr_.responseText;a&&0==b.indexOf(a)&&(b=b.substring(a.length));return goog.json.hybrid.parse(b)}};
+goog.net.XhrIo.prototype.getResponse=function(){try{if(!this.xhr_)return null;if("response"in this.xhr_)return this.xhr_.response;switch(this.responseType_){case goog.net.XhrIo.ResponseType.DEFAULT:case goog.net.XhrIo.ResponseType.TEXT:return this.xhr_.responseText;case goog.net.XhrIo.ResponseType.ARRAY_BUFFER:if("mozResponseArrayBuffer"in this.xhr_)return this.xhr_.mozResponseArrayBuffer}goog.log.error(this.logger_,"Response type "+this.responseType_+" is not supported on this browser");return null}catch(a){return goog.log.fine(this.logger_,
+"Can not get response: "+a.message),null}};goog.net.XhrIo.prototype.getResponseHeader=function(a){if(this.xhr_&&this.isComplete())return a=this.xhr_.getResponseHeader(a),goog.isNull(a)?void 0:a};goog.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&this.isComplete()?this.xhr_.getAllResponseHeaders():""};
+goog.net.XhrIo.prototype.getResponseHeaders=function(){for(var a={},b=this.getAllResponseHeaders().split("\r\n"),c=0;c>=8);b[c++]=e}return b};goog.crypt.byteArrayToString=function(a){if(8192>=a.length)return String.fromCharCode.apply(null,a);for(var b="",c=0;ce?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};
+goog.crypt.utf8ByteArrayToString=function(a){for(var b=[],c=0,d=0;ce)b[d++]=String.fromCharCode(e);else if(191e){var f=a[c++];b[d++]=String.fromCharCode((e&31)<<6|f&63)}else if(239e){f=a[c++];var g=a[c++],h=a[c++];e=((e&7)<<18|(f&63)<<12|(g&63)<<6|h&63)-65536;b[d++]=String.fromCharCode(55296+(e>>10));b[d++]=String.fromCharCode(56320+(e&1023))}else f=a[c++],g=a[c++],b[d++]=String.fromCharCode((e&15)<<12|(f&63)<<6|g&63)}return b.join("")};
+goog.crypt.xorByteArray=function(a,b){goog.asserts.assert(a.length==b.length,"XOR array lengths must match");for(var c=[],d=0;d>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|k>>6;k&=63;h||(k=64,f||(g=64));c.push(b[l],b[e],b[g],b[k])}return c.join("")};
+goog.crypt.base64.encodeString=function(a,b){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?goog.global.btoa(a):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a),b)};goog.crypt.base64.decodeString=function(a,b){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!b)return goog.global.atob(a);var c="";goog.crypt.base64.decodeStringInternal_(a,function(a){c+=String.fromCharCode(a)});return c};
+goog.crypt.base64.decodeStringToByteArray=function(a,b){var c=[];goog.crypt.base64.decodeStringInternal_(a,function(a){c.push(a)});return c};goog.crypt.base64.decodeStringToUint8Array=function(a){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var b=new Uint8Array(Math.ceil(3*a.length/4)),c=0;goog.crypt.base64.decodeStringInternal_(a,function(a){b[c++]=a});return b.subarray(0,c)};
+goog.crypt.base64.decodeStringInternal_=function(a,b){function c(b){for(;d>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}};
+goog.crypt.base64.init_=function(){if(!goog.crypt.base64.byteToCharMap_){goog.crypt.base64.byteToCharMap_={};goog.crypt.base64.charToByteMap_={};goog.crypt.base64.byteToCharMapWebSafe_={};for(var a=0;a=goog.crypt.base64.ENCODED_VALS_BASE.length&&
+(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a)]=a)}};cljs.tools={};cljs.tools.reader={};cljs.tools.reader.impl={};cljs.tools.reader.impl.utils={};cljs.tools.reader.impl.utils.char$=function(a){return null==a?null:cljs.core.char$.call(null,a)};cljs.tools.reader.impl.utils.ex_info_QMARK_=function(a){return a instanceof cljs.core.ExceptionInfo};
+cljs.tools.reader.impl.utils.ReaderConditional=function(a,b,c,d,e){this.splicing_QMARK_=a;this.form=b;this.__meta=c;this.__extmap=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "splicing?":return this.splicing_QMARK_;case "form":return this.form;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.tools.reader.impl.utils.ReaderConditional{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.cst$kw$splicing_QMARK_,this.splicing_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$form,this.form],null)],null),this.__extmap))};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,2,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$splicing_QMARK_,cljs.core.cst$kw$form],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,this.form,this.__meta,this.__extmap,this.__hash)};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2+cljs.core.count.call(null,this.__extmap)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return-209062840^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.splicing_QMARK_,b.splicing_QMARK_)&&cljs.core._EQ_.call(null,this.form,b.form)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$splicing_QMARK_,null,cljs.core.cst$kw$form,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),b):new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,
+this.form,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$splicing_QMARK_,b))?new cljs.tools.reader.impl.utils.ReaderConditional(c,this.form,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$form,b))?new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,c,this.__meta,this.__extmap,null):new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,
+this.form,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$splicing_QMARK_,this.splicing_QMARK_,null),new cljs.core.MapEntry(cljs.core.cst$kw$form,this.form,null)],null),this.__extmap))};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,this.form,b,this.__extmap,this.__hash)};
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.tools.reader.impl.utils.ReaderConditional.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$splicing_QMARK_,cljs.core.cst$sym$form],null)};cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$type=!0;cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.tools.reader.impl.utils/ReaderConditional",null,1,null)};
+cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.tools.reader.impl.utils/ReaderConditional")};cljs.tools.reader.impl.utils.__GT_ReaderConditional=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(a,b,null,null,null)};
+cljs.tools.reader.impl.utils.map__GT_ReaderConditional=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$splicing_QMARK_,cljs.core.cst$kw$form);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.tools.reader.impl.utils.ReaderConditional(cljs.core.cst$kw$splicing_QMARK_.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$form.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};
+cljs.tools.reader.impl.utils.reader_conditional_QMARK_=function(a){return a instanceof cljs.tools.reader.impl.utils.ReaderConditional};cljs.tools.reader.impl.utils.reader_conditional=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(b,a,null,null,null)};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
+cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write.call(null,b,["#?",cljs.core.truth_(this.splicing_QMARK_)?"@":null].join(""));return cljs.core.pr_writer.call(null,this.form,b,c)};cljs.tools.reader.impl.utils.ws_rx=/[\s]/;cljs.tools.reader.impl.utils.whitespace_QMARK_=function(a){return null==a?null:","===a?!0:cljs.tools.reader.impl.utils.ws_rx.test(a)};
+cljs.tools.reader.impl.utils.numeric_QMARK_=function(a){return null==a?null:goog.string.isNumeric(a)};cljs.tools.reader.impl.utils.newline_QMARK_=function(a){return"\n"===a||"\n"===a||null==a};
+cljs.tools.reader.impl.utils.desugar_meta=function(a){return a instanceof cljs.core.Keyword?cljs.core.PersistentArrayMap.createAsIfByAssoc([a,!0]):a instanceof cljs.core.Symbol?new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$tag,a],null):"string"===typeof a?new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$tag,a],null):a};cljs.tools.reader.impl.utils.last_id=cljs.core.atom.call(null,0);
+cljs.tools.reader.impl.utils.next_id=function(){return cljs.core.swap_BANG_.call(null,cljs.tools.reader.impl.utils.last_id,cljs.core.inc)};
+cljs.tools.reader.impl.utils.namespace_keys=function(a,b){return function e(b){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq.call(null,b);if(d){if(cljs.core.chunked_seq_QMARK_.call(null,d)){var g=cljs.core.chunk_first.call(null,d),h=cljs.core.count.call(null,g),k=cljs.core.chunk_buffer.call(null,h);return function(){for(var b=0;;)if(bthis.s_pos?(a=this.s.charAt(this.s_pos),this.s_pos+=1,a):null};
+cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){return this.s_len>this.s_pos?this.s.charAt(this.s_pos):null};
+cljs.tools.reader.reader_types.StringReader.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$s,cljs.core.cst$sym$s_DASH_len,cljs.core.with_meta(cljs.core.cst$sym$s_DASH_pos,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.tools.reader.reader_types.StringReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/StringReader";
+cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.tools.reader.reader-types/StringReader")};cljs.tools.reader.reader_types.__GT_StringReader=function(a,b,c){return new cljs.tools.reader.reader_types.StringReader(a,b,c)};cljs.tools.reader.reader_types.NodeReadableReader=function(a,b){this.readable=a;this.buf=b};cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;
+cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){if(cljs.core.truth_(this.buf))return a=this.buf[0],this.buf=null,cljs.tools.reader.impl.utils.char$.call(null,a);a=cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.readable.read(1));return cljs.core.truth_(a)?cljs.tools.reader.impl.utils.char$.call(null,a):null};
+cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){cljs.core.truth_(this.buf)||(this.buf=cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.readable.read(1)));return cljs.core.truth_(this.buf)?cljs.tools.reader.impl.utils.char$.call(null,this.buf[0]):null};
+cljs.tools.reader.reader_types.NodeReadableReader.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$readable,cljs.core.with_meta(cljs.core.cst$sym$buf,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/NodeReadableReader";
+cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.tools.reader.reader-types/NodeReadableReader")};cljs.tools.reader.reader_types.__GT_NodeReadableReader=function(a,b){return new cljs.tools.reader.reader_types.NodeReadableReader(a,b)};cljs.tools.reader.reader_types.PushbackReader=function(a,b,c,d){this.rdr=a;this.buf=b;this.buf_len=c;this.buf_pos=d};
+cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){a=this.buf_posc?'..."':'"';return['"',cljs.core.str.cljs$core$IFn$_invoke$arity$1(b.substring(0,function(){var a=b.length;return cd?"...}":"}")});
+cljs.core._add_method.call(null,cljs.tools.reader.impl.inspect.inspect_STAR_,cljs.core.cst$kw$set,function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR__col.call(null,a,b,"#{","}")});cljs.core._add_method.call(null,cljs.tools.reader.impl.inspect.inspect_STAR_,cljs.core.cst$kw$vector,function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR__col.call(null,a,b,"[","]")});
+cljs.core._add_method.call(null,cljs.tools.reader.impl.inspect.inspect_STAR_,cljs.core.cst$kw$default,function(a,b){return cljs.core.pr_str.call(null,cljs.core.type.call(null,b))});
+cljs.tools.reader.impl.inspect.inspect=function(a){switch(arguments.length){case 1:return cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.impl.inspect.inspect_STAR_.call(null,!1,a)};cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR_.call(null,a,b)};cljs.tools.reader.impl.inspect.inspect.cljs$lang$maxFixedArity=2;cljs.tools.reader.impl.errors={};
+cljs.tools.reader.impl.errors.ex_details=function(a,b){b=new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$type,cljs.core.cst$kw$reader_DASH_exception,cljs.core.cst$kw$ex_DASH_kind,b],null);return cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,a)?cljs.core.assoc.call(null,b,cljs.core.cst$kw$file,cljs.tools.reader.reader_types.get_file_name.call(null,a),cljs.core.cst$kw$line,cljs.tools.reader.reader_types.get_line_number.call(null,a),cljs.core.cst$kw$col,cljs.tools.reader.reader_types.get_column_number.call(null,
+a)):b};cljs.tools.reader.impl.errors.throw_ex=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=parseInt(a,b)};
+cljs.tools.reader.read_char_STAR_=function(a,b,c,d){b=cljs.tools.reader.reader_types.read_char.call(null,a);if(null!=b){b=cljs.tools.reader.macro_terminating_QMARK_.call(null,b)||cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,b)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.read_token.call(null,a,cljs.core.cst$kw$character,b);c=b.length;if(1===c)return b.charAt(0);if(cljs.core._EQ_.call(null,b,"newline"))return"\n";if(cljs.core._EQ_.call(null,b,"space"))return" ";if(cljs.core._EQ_.call(null,
+b,"tab"))return"\t";if(cljs.core._EQ_.call(null,b,"backspace"))return"\b";if(cljs.core._EQ_.call(null,b,"formfeed"))return"\f";if(cljs.core._EQ_.call(null,b,"return"))return"\r";if(goog.string.startsWith(b,"u"))return b=cljs.tools.reader.read_unicode_char.call(null,b,1,4,16),c=b.charCodeAt(0),c>cljs.tools.reader.upper_limit&&cc?c:!1):null};
+cljs.tools.reader.check_reserved_features=function(a,b){return cljs.core.truth_(cljs.core.get.call(null,cljs.tools.reader.RESERVED_FEATURES,b))?cljs.tools.reader.impl.errors.reader_error.call(null,a,"Feature name ",b," is reserved"):null};
+cljs.tools.reader.check_invalid_read_cond=function(a,b,c){return a===cljs.tools.reader.READ_FINISHED?0>c?cljs.tools.reader.impl.errors.reader_error.call(null,b,"read-cond requires an even number of forms"):cljs.tools.reader.impl.errors.reader_error.call(null,b,"read-cond starting on line ",c," requires an even number of forms"):null};
+cljs.tools.reader.read_suppress=function(a,b,c,d){var e=cljs.tools.reader._STAR_suppress_read_STAR_;cljs.tools.reader._STAR_suppress_read_STAR_=!0;try{var f=cljs.tools.reader.read_STAR_.call(null,b,!1,cljs.tools.reader.READ_EOF,")",c,d);cljs.tools.reader.check_eof_error.call(null,f,b,a);return f===cljs.tools.reader.READ_FINISHED?cljs.tools.reader.READ_FINISHED:null}finally{cljs.tools.reader._STAR_suppress_read_STAR_=e}};
+if("undefined"===typeof cljs||"undefined"===typeof cljs.tools||"undefined"===typeof cljs.tools.reader||"undefined"===typeof cljs.tools.reader.NO_MATCH)cljs.tools.reader.NO_MATCH={};
+cljs.tools.reader.match_feature=function(a,b,c,d){var e=cljs.tools.reader.read_STAR_.call(null,b,!1,cljs.tools.reader.READ_EOF,")",c,d);cljs.tools.reader.check_eof_error.call(null,e,b,a);if(cljs.core._EQ_.call(null,e,cljs.tools.reader.READ_FINISHED))return cljs.tools.reader.READ_FINISHED;cljs.tools.reader.check_reserved_features.call(null,b,e);if(cljs.tools.reader.has_feature_QMARK_.call(null,b,e,c))return c=cljs.tools.reader.read_STAR_.call(null,b,!1,cljs.tools.reader.READ_EOF,")",c,d),cljs.tools.reader.check_eof_error.call(null,
+c,b,a),cljs.tools.reader.check_invalid_read_cond.call(null,c,b,a),c;a=cljs.tools.reader.read_suppress.call(null,a,b,c,d);return cljs.core.truth_(a)?a:cljs.tools.reader.NO_MATCH};
+cljs.tools.reader.read_cond_delimited=function(a,b,c,d){var e=cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,a)?cljs.tools.reader.reader_types.get_line_number.call(null,a):-1;a:for(var f=cljs.tools.reader.NO_MATCH,g=null;;)if(f===cljs.tools.reader.NO_MATCH)if(f=cljs.tools.reader.match_feature.call(null,e,a,c,d),f===cljs.tools.reader.READ_FINISHED){c=cljs.tools.reader.READ_FINISHED;break a}else g=null;else if(g!==cljs.tools.reader.READ_FINISHED)g=cljs.tools.reader.read_suppress.call(null,
+e,a,c,d);else{c=f;break a}return c===cljs.tools.reader.READ_FINISHED?a:cljs.core.truth_(b)?null!=c&&(c.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISequential$)?(goog.array.insertArrayAt(d,cljs.core.to_array.call(null,c),0),a):cljs.tools.reader.impl.errors.reader_error.call(null,a,"Spliced form list in read-cond-splicing must implement ISequential"):c};
+cljs.tools.reader.read_cond=function(a,b,c,d){if(cljs.core.not.call(null,cljs.core.truth_(c)?(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$preserve,null,cljs.core.cst$kw$allow,null],null),null)).call(null,cljs.core.cst$kw$read_DASH_cond.cljs$core$IFn$_invoke$arity$1(c)):c))throw cljs.core.ex_info.call(null,"Conditional read not allowed",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$runtime_DASH_exception],null));var e=
+cljs.tools.reader.reader_types.read_char.call(null,a);if(cljs.core.truth_(e))if(e=(b=cljs.core._EQ_.call(null,e,"@"))?cljs.tools.reader.reader_types.read_char.call(null,a):e,b&&(cljs.core.truth_(cljs.tools.reader._STAR_read_delim_STAR_)||cljs.tools.reader.impl.errors.reader_error.call(null,a,"cond-splice not in list")),e=cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,e)?cljs.tools.reader.impl.commons.read_past.call(null,cljs.tools.reader.impl.utils.whitespace_QMARK_,a):e,cljs.core.truth_(e)){if(cljs.core.not_EQ_.call(null,
+e,"("))throw cljs.core.ex_info.call(null,"read-cond body must be a list",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$runtime_DASH_exception],null));var f=cljs.tools.reader._STAR_suppress_read_STAR_;var g=cljs.tools.reader._STAR_suppress_read_STAR_;g=cljs.core.truth_(g)?g:cljs.core._EQ_.call(null,cljs.core.cst$kw$preserve,cljs.core.cst$kw$read_DASH_cond.cljs$core$IFn$_invoke$arity$1(c));cljs.tools.reader._STAR_suppress_read_STAR_=g;try{return cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)?
+cljs.tools.reader.impl.utils.reader_conditional.call(null,cljs.tools.reader.read_list.call(null,a,e,c,d),b):cljs.tools.reader.read_cond_delimited.call(null,a,b,c,d)}finally{cljs.tools.reader._STAR_suppress_read_STAR_=f}}else return cljs.tools.reader.impl.errors.throw_eof_in_character.call(null,a);else return cljs.tools.reader.impl.errors.throw_eof_in_character.call(null,a)};cljs.tools.reader.arg_env=null;
+cljs.tools.reader.garg=function(a){return cljs.core.symbol.call(null,[-1===a?"rest":["p",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),"__",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id.call(null)),"#"].join(""))};
+cljs.tools.reader.read_fn=function(a,b,c,d){if(cljs.core.truth_(cljs.tools.reader.arg_env))throw cljs.core.ex_info.call(null,"Nested #()s are not allowed",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$illegal_DASH_state],null));b=cljs.tools.reader.arg_env;var e=cljs.core.sorted_map.call(null);cljs.tools.reader.arg_env=e;try{var f=cljs.tools.reader.read_STAR_.call(null,function(){cljs.tools.reader.reader_types.unread.call(null,a,"(");return a}(),!0,null,c,d),g=cljs.core.rseq.call(null,
+cljs.tools.reader.arg_env),h=g?function(){var a=cljs.core.key.call(null,cljs.core.first.call(null,g)),b=function(){for(var b=1,c=cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY);;){if(b>a)return cljs.core.persistent_BANG_.call(null,c);var d=b+1;c=cljs.core.conj_BANG_.call(null,c,function(){var a=cljs.core.get.call(null,cljs.tools.reader.arg_env,b);return cljs.core.truth_(a)?a:cljs.tools.reader.garg.call(null,b)}());b=d}}();return cljs.core.truth_(cljs.tools.reader.arg_env.call(null,
+-1))?cljs.core.conj.call(null,b,cljs.core.cst$sym$_AMPERSAND_,cljs.tools.reader.arg_env.call(null,-1)):b}():cljs.core.PersistentVector.EMPTY;return new cljs.core.List(null,cljs.core.cst$sym$fn_STAR_,new cljs.core.List(null,h,new cljs.core.List(null,f,null,1,null),2,null),3,null)}finally{cljs.tools.reader.arg_env=b}};
+cljs.tools.reader.register_arg=function(a){if(cljs.core.truth_(cljs.tools.reader.arg_env)){var b=cljs.tools.reader.arg_env.call(null,a);if(cljs.core.truth_(b))return b;b=cljs.tools.reader.garg.call(null,a);cljs.tools.reader.arg_env=cljs.core.assoc.call(null,cljs.tools.reader.arg_env,a,b);return b}throw cljs.core.ex_info.call(null,"Arg literal not in #()",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$illegal_DASH_state],null));};
+cljs.tools.reader.read_arg=function(a,b,c,d){if(null==cljs.tools.reader.arg_env)return cljs.tools.reader.read_symbol.call(null,a,b);b=cljs.tools.reader.reader_types.peek_char.call(null,a);if(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,b)||cljs.tools.reader.macro_terminating_QMARK_.call(null,b)||null==b)return cljs.tools.reader.register_arg.call(null,1);if(cljs.core._EQ_.call(null,b,"\x26"))return cljs.tools.reader.reader_types.read_char.call(null,a),cljs.tools.reader.register_arg.call(null,
+-1);a=cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);if(cljs.core.integer_QMARK_.call(null,a))return cljs.tools.reader.register_arg.call(null,a);throw cljs.core.ex_info.call(null,"Arg literal must be %, %\x26 or %integer",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$illegal_DASH_state],null));};cljs.tools.reader.gensym_env=null;
+cljs.tools.reader.read_unquote=function(a,b,c,d){b=cljs.tools.reader.reader_types.peek_char.call(null,a);return cljs.core.truth_(b)?cljs.core._EQ_.call(null,"@",b)?cljs.tools.reader.wrapping_reader.call(null,cljs.core.cst$sym$clojure$core_SLASH_unquote_DASH_splicing).call(null,function(){cljs.tools.reader.reader_types.read_char.call(null,a);return a}(),"@",c,d):cljs.tools.reader.wrapping_reader.call(null,cljs.core.cst$sym$clojure$core_SLASH_unquote).call(null,a,"~",c,d):null};
+cljs.tools.reader.unquote_splicing_QMARK_=function(a){return cljs.core.seq_QMARK_.call(null,a)&&cljs.core._EQ_.call(null,cljs.core.first.call(null,a),cljs.core.cst$sym$clojure$core_SLASH_unquote_DASH_splicing)};cljs.tools.reader.unquote_QMARK_=function(a){return cljs.core.seq_QMARK_.call(null,a)&&cljs.core._EQ_.call(null,cljs.core.first.call(null,a),cljs.core.cst$sym$clojure$core_SLASH_unquote)};
+cljs.tools.reader.expand_list=function(a){a=cljs.core.seq.call(null,a);for(var b=cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY);;)if(a){var c=cljs.core.first.call(null,a);b=cljs.core.conj_BANG_.call(null,b,cljs.tools.reader.unquote_QMARK_.call(null,c)?new cljs.core.List(null,cljs.core.cst$sym$clojure$core_SLASH_list,new cljs.core.List(null,cljs.core.second.call(null,c),null,1,null),2,null):cljs.tools.reader.unquote_splicing_QMARK_.call(null,c)?cljs.core.second.call(null,c):new cljs.core.List(null,
+cljs.core.cst$sym$clojure$core_SLASH_list,new cljs.core.List(null,cljs.tools.reader.syntax_quote_STAR_.call(null,c),null,1,null),2,null));a=cljs.core.next.call(null,a)}else return cljs.core.seq.call(null,cljs.core.persistent_BANG_.call(null,b))};
+cljs.tools.reader.flatten_map=function(a){a=cljs.core.seq.call(null,a);for(var b=cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY);;)if(a){var c=cljs.core.first.call(null,a);a=cljs.core.next.call(null,a);b=cljs.core.conj_BANG_.call(null,cljs.core.conj_BANG_.call(null,b,cljs.core.key.call(null,c)),cljs.core.val.call(null,c))}else return cljs.core.seq.call(null,cljs.core.persistent_BANG_.call(null,b))};
+cljs.tools.reader.register_gensym=function(a){if(cljs.core.not.call(null,cljs.tools.reader.gensym_env))throw cljs.core.ex_info.call(null,"Gensym literal not in syntax-quote",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$illegal_DASH_state],null));var b=cljs.core.get.call(null,cljs.tools.reader.gensym_env,a);if(cljs.core.truth_(b))return b;b=cljs.core.symbol.call(null,[cljs.core.subs.call(null,cljs.core.name.call(null,a),0,cljs.core.name.call(null,a).length-1),"__",
+cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id.call(null)),"__auto__"].join(""));cljs.tools.reader.gensym_env=cljs.core.assoc.call(null,cljs.tools.reader.gensym_env,a,b);return b};
+cljs.tools.reader.add_meta=function(a,b){return null!=a&&(a.cljs$lang$protocol_mask$partition0$&262144||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IWithMeta$)&&cljs.core.seq.call(null,cljs.core.dissoc.call(null,cljs.core.meta.call(null,a),cljs.core.cst$kw$line,cljs.core.cst$kw$column,cljs.core.cst$kw$end_DASH_line,cljs.core.cst$kw$end_DASH_column,cljs.core.cst$kw$file,cljs.core.cst$kw$source))?new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_with_DASH_meta,new cljs.core.List(null,b,new cljs.core.List(null,
+cljs.tools.reader.syntax_quote_STAR_.call(null,cljs.core.meta.call(null,a)),null,1,null),2,null),3,null):b};
+cljs.tools.reader.syntax_quote_coll=function(a,b){b=new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_sequence,new cljs.core.List(null,cljs.core.cons.call(null,cljs.core.cst$sym$cljs$core_SLASH_concat,cljs.tools.reader.expand_list.call(null,b)),null,1,null),2,null);return cljs.core.truth_(a)?new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_apply,new cljs.core.List(null,a,new cljs.core.List(null,b,null,1,null),2,null),3,null):b};
+cljs.tools.reader.map_func=function(a){return 16<=cljs.core.count.call(null,a)?cljs.core.cst$sym$cljs$core_SLASH_hash_DASH_map:cljs.core.cst$sym$cljs$core_SLASH_array_DASH_map};cljs.tools.reader.bool_QMARK_=function(a){return a instanceof Boolean||!0===a||!1===a};cljs.tools.reader.resolve_symbol=function(a){throw cljs.core.ex_info.call(null,"resolve-symbol is not implemented",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$sym,a],null));};
+cljs.tools.reader.syntax_quote_STAR_=function(a){return cljs.tools.reader.add_meta.call(null,a,cljs.core.special_symbol_QMARK_.call(null,a)?new cljs.core.List(null,cljs.core.cst$sym$quote,new cljs.core.List(null,a,null,1,null),2,null):a instanceof cljs.core.Symbol?new cljs.core.List(null,cljs.core.cst$sym$quote,new cljs.core.List(null,cljs.core.not.call(null,cljs.core.namespace.call(null,a))&&goog.string.endsWith(cljs.core.name.call(null,a),"#")?cljs.tools.reader.register_gensym.call(null,a):function(){var b=
+cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);return goog.string.endsWith(b,".")?(b=cljs.core.symbol.call(null,cljs.core.subs.call(null,b,0,b.length-1)),cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.resolve_symbol.call(null,b)),"."].join(""))):cljs.tools.reader.resolve_symbol.call(null,a)}(),null,1,null),2,null):cljs.tools.reader.unquote_QMARK_.call(null,a)?cljs.core.second.call(null,a):cljs.tools.reader.unquote_splicing_QMARK_.call(null,a)?function(){throw cljs.core.ex_info.call(null,
+"unquote-splice not in list",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$illegal_DASH_state],null));}():cljs.core.coll_QMARK_.call(null,a)?null!=a&&(a.cljs$lang$protocol_mask$partition0$&67108864||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IRecord$)?a:cljs.core.map_QMARK_.call(null,a)?cljs.tools.reader.syntax_quote_coll.call(null,cljs.tools.reader.map_func.call(null,a),cljs.tools.reader.flatten_map.call(null,a)):cljs.core.vector_QMARK_.call(null,a)?new cljs.core.List(null,
+cljs.core.cst$sym$cljs$core_SLASH_vec,new cljs.core.List(null,cljs.tools.reader.syntax_quote_coll.call(null,null,a),null,1,null),2,null):cljs.core.set_QMARK_.call(null,a)?cljs.tools.reader.syntax_quote_coll.call(null,cljs.core.cst$sym$cljs$core_SLASH_hash_DASH_set,a):cljs.core.seq_QMARK_.call(null,a)||cljs.core.list_QMARK_.call(null,a)?function(){var b=cljs.core.seq.call(null,a);return b?cljs.tools.reader.syntax_quote_coll.call(null,null,b):cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_list)}():
+function(){throw cljs.core.ex_info.call(null,"Unknown Collection type",new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$unsupported_DASH_operation],null));}():a instanceof cljs.core.Keyword||"number"===typeof a||"string"===typeof a||null==a||cljs.tools.reader.bool_QMARK_.call(null,a)||a instanceof RegExp?a:new cljs.core.List(null,cljs.core.cst$sym$quote,new cljs.core.List(null,a,null,1,null),2,null))};
+cljs.tools.reader.read_syntax_quote=function(a,b,c,d){b=cljs.tools.reader.gensym_env;cljs.tools.reader.gensym_env=cljs.core.PersistentArrayMap.EMPTY;try{return cljs.tools.reader.syntax_quote_STAR_.call(null,cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d))}finally{cljs.tools.reader.gensym_env=b}};
+cljs.tools.reader.read_namespaced_map=function(a,b,c,d){var e=cljs.tools.reader.starting_line_col_info.call(null,a);b=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);var f=cljs.tools.reader.read_token.call(null,a,cljs.core.cst$kw$namespaced_DASH_map,cljs.tools.reader.reader_types.read_char.call(null,a)),g=cljs.core._EQ_.call(null,f,":")?cljs.core.ns_name.call(null,cljs.core._STAR_ns_STAR_):cljs.core._EQ_.call(null,":",cljs.core.first.call(null,f))?function(){var a=null==f?null:
+cljs.core.subs.call(null,f,1);a=null==a?null:cljs.tools.reader.impl.commons.parse_symbol.call(null,a);a=null==a?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_.call(null,a);a=null==a?null:cljs.core.symbol.call(null,a);return null==a?null:cljs.tools.reader.resolve_ns.call(null,a)}():function(){var a=null==f?null:cljs.tools.reader.impl.commons.parse_symbol.call(null,f);return null==a?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_.call(null,a)}();if(cljs.core.truth_(g)){if("{"===cljs.tools.reader.impl.commons.read_past.call(null,
+cljs.tools.reader.impl.utils.whitespace_QMARK_,a)){d=cljs.tools.reader.read_delimited.call(null,cljs.core.cst$kw$namespaced_DASH_map,"}",a,c,d);var h=cljs.tools.reader.ending_line_col_info.call(null,a);c=cljs.core.nth.call(null,h,0,null);h=cljs.core.nth.call(null,h,1,null);cljs.core.odd_QMARK_.call(null,cljs.core.count.call(null,d))&&cljs.tools.reader.impl.errors.throw_odd_map.call(null,a,null,null,d);g=cljs.tools.reader.impl.utils.namespace_keys.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(g),
+cljs.core.take_nth.call(null,2,d));d=cljs.core.take_nth.call(null,2,cljs.core.rest.call(null,d));cljs.core._EQ_.call(null,cljs.core.count.call(null,cljs.core.set.call(null,g)),cljs.core.count.call(null,g))||cljs.tools.reader.impl.errors.throw_dup_keys.call(null,a,cljs.core.cst$kw$namespaced_DASH_map,g);return cljs.core.with_meta.call(null,cljs.core.zipmap.call(null,g,d),cljs.core.truth_(b)?cljs.core.merge.call(null,function(){var b=cljs.tools.reader.reader_types.get_file_name.call(null,a);return cljs.core.truth_(b)?
+new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$file,b],null):null}(),new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$line,b,cljs.core.cst$kw$column,e,cljs.core.cst$kw$end_DASH_line,c,cljs.core.cst$kw$end_DASH_column,h],null)):null)}return cljs.tools.reader.impl.errors.throw_ns_map_no_map.call(null,a,f)}return cljs.tools.reader.impl.errors.throw_bad_ns.call(null,a,f)};
+cljs.tools.reader.macros=function(a){switch(a){case '"':return cljs.tools.reader.read_string_STAR_;case ":":return cljs.tools.reader.read_keyword;case ";":return cljs.tools.reader.impl.commons.read_comment;case "'":return cljs.tools.reader.wrapping_reader.call(null,cljs.core.cst$sym$quote);case "@":return cljs.tools.reader.wrapping_reader.call(null,cljs.core.cst$sym$clojure$core_SLASH_deref);case "^":return cljs.tools.reader.read_meta;case "`":return cljs.tools.reader.read_syntax_quote;case "~":return cljs.tools.reader.read_unquote;
+case "(":return cljs.tools.reader.read_list;case ")":return cljs.tools.reader.read_unmatched_delimiter;case "[":return cljs.tools.reader.read_vector;case "]":return cljs.tools.reader.read_unmatched_delimiter;case "{":return cljs.tools.reader.read_map;case "}":return cljs.tools.reader.read_unmatched_delimiter;case "\\":return cljs.tools.reader.read_char_STAR_;case "%":return cljs.tools.reader.read_arg;case "#":return cljs.tools.reader.read_dispatch;default:return null}};
+cljs.tools.reader.dispatch_macros=function(a){switch(a){case "^":return cljs.tools.reader.read_meta;case "'":return cljs.tools.reader.wrapping_reader.call(null,cljs.core.cst$sym$var);case "(":return cljs.tools.reader.read_fn;case "{":return cljs.tools.reader.read_set;case "\x3c":return cljs.tools.reader.impl.commons.throwing_reader.call(null,"Unreadable form");case "\x3d":return cljs.tools.reader.impl.commons.throwing_reader.call(null,"read-eval not supported");case '"':return cljs.tools.reader.read_regex;
+case "!":return cljs.tools.reader.impl.commons.read_comment;case "_":return cljs.tools.reader.read_discard;case "?":return cljs.tools.reader.read_cond;case ":":return cljs.tools.reader.read_namespaced_map;case "#":return cljs.tools.reader.read_symbolic_value;default:return null}};
+cljs.tools.reader.read_tagged=function(a,b,c,d){b=cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);b instanceof cljs.core.Symbol||cljs.tools.reader.impl.errors.throw_bad_reader_tag.call(null,a,b);if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_))return cljs.core.tagged_literal.call(null,b,cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d));var e=cljs.tools.reader._STAR_data_readers_STAR_.call(null,b);e=cljs.core.truth_(e)?e:cljs.tools.reader.default_data_readers.call(null,b);
+if(cljs.core.truth_(e))return e.call(null,cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d));e=cljs.tools.reader._STAR_default_data_reader_fn_STAR_;return cljs.core.truth_(e)?e.call(null,b,cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d)):cljs.tools.reader.impl.errors.throw_unknown_reader_tag.call(null,a,b)};cljs.tools.reader._STAR_data_readers_STAR_=cljs.core.PersistentArrayMap.EMPTY;cljs.tools.reader._STAR_default_data_reader_fn_STAR_=null;cljs.tools.reader._STAR_suppress_read_STAR_=!1;
+cljs.tools.reader.default_data_readers=cljs.core.PersistentArrayMap.EMPTY;
+cljs.tools.reader.read_STAR__internal=function(a,b,c,d,e,f){for(;;){if(cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,a)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,a)))return cljs.tools.reader.reader_types.log_source_STAR_.call(null,a,function(){for(;;)if(goog.array.isEmpty(f)){var g=cljs.tools.reader.reader_types.read_char.call(null,a);if(!cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,g)){if(null==
+g)return b?cljs.tools.reader.impl.errors.throw_eof_error.call(null,a,null):c;if(g===d)return cljs.tools.reader.READ_FINISHED;if(cljs.tools.reader.impl.commons.number_literal_QMARK_.call(null,a,g))return cljs.tools.reader.read_number.call(null,a,g);var h=cljs.tools.reader.macros.call(null,g);if(null!=h){if(g=h.call(null,a,g,e,f),g!==a)return g}else return cljs.tools.reader.read_symbol.call(null,a,g)}}else return g=f[0],goog.array.removeAt(f,0),g});if(goog.array.isEmpty(f)){var g=cljs.tools.reader.reader_types.read_char.call(null,
+a);if(!cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,g)){if(null==g)return b?cljs.tools.reader.impl.errors.throw_eof_error.call(null,a,null):c;if(g===d)return cljs.tools.reader.READ_FINISHED;if(cljs.tools.reader.impl.commons.number_literal_QMARK_.call(null,a,g))return cljs.tools.reader.read_number.call(null,a,g);var h=cljs.tools.reader.macros.call(null,g);if(null!=h){if(g=h.call(null,a,g,e,f),g!==a)return g}else return cljs.tools.reader.read_symbol.call(null,a,g)}}else return g=f[0],goog.array.removeAt(f,
+0),g}};cljs.tools.reader.read_STAR_=function(a){switch(arguments.length){case 5:return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return cljs.tools.reader.read_STAR_.call(null,a,b,c,null,d,e)};
+cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){try{return cljs.tools.reader.read_STAR__internal.call(null,a,b,c,d,e,f)}catch(g){if(g instanceof Error){b=g;if(cljs.tools.reader.impl.utils.ex_info_QMARK_.call(null,b)){c=cljs.core.ex_data.call(null,b);if(cljs.core._EQ_.call(null,cljs.core.cst$kw$reader_DASH_exception,cljs.core.cst$kw$type.cljs$core$IFn$_invoke$arity$1(c)))throw b;throw cljs.core.ex_info.call(null,b.message,cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null,
+1,[cljs.core.cst$kw$type,cljs.core.cst$kw$reader_DASH_exception],null),c,cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,a)?new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$line,cljs.tools.reader.reader_types.get_line_number.call(null,a),cljs.core.cst$kw$column,cljs.tools.reader.reader_types.get_column_number.call(null,a),cljs.core.cst$kw$file,cljs.tools.reader.reader_types.get_file_name.call(null,a)],null):null),b);}throw cljs.core.ex_info.call(null,b.message,cljs.core.merge.call(null,
+new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$type,cljs.core.cst$kw$reader_DASH_exception],null),cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,a)?new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$line,cljs.tools.reader.reader_types.get_line_number.call(null,a),cljs.core.cst$kw$column,cljs.tools.reader.reader_types.get_column_number.call(null,a),cljs.core.cst$kw$file,cljs.tools.reader.reader_types.get_file_name.call(null,a)],null):null),b);}throw g;}};
+cljs.tools.reader.read_STAR_.cljs$lang$maxFixedArity=6;
+cljs.tools.reader.read=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read.call(null,a,!0,null)};
+cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2=function(a,b){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;var c=cljs.core.get.call(null,a,cljs.core.cst$kw$eof,cljs.core.cst$kw$eofthrow);return cljs.tools.reader.read_STAR_.call(null,b,cljs.core._EQ_.call(null,c,cljs.core.cst$kw$eofthrow),c,null,a,cljs.core.to_array.call(null,cljs.core.PersistentVector.EMPTY))};
+cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.tools.reader.read_STAR_.call(null,a,b,c,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.to_array.call(null,cljs.core.PersistentVector.EMPTY))};cljs.tools.reader.read.cljs$lang$maxFixedArity=3;
+cljs.tools.reader.read_string=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read_string.call(null,cljs.core.PersistentArrayMap.EMPTY,a)};cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.truth_(cljs.core.truth_(b)?""!==b:b)?cljs.tools.reader.read.call(null,a,cljs.tools.reader.reader_types.string_push_back_reader.call(null,b)):null};cljs.tools.reader.read_string.cljs$lang$maxFixedArity=2;
+cljs.tools.reader.read_PLUS_string=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 2:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));
+}};cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read_PLUS_string.call(null,a,!0,null)};
+cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=function(a){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,a.frames)))},e=d.call(null,a).length,f=cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,a)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,a))?cljs.tools.reader.reader_types.log_source_STAR_.call(null,
+a,function(){return cljs.tools.reader.read.call(null,a,b,c)}):cljs.tools.reader.read.call(null,a,b,c);d=cljs.core.subs.call(null,d.call(null,a),e).trim();return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[f,d],null)};
+cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=function(a){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,a.frames)))},d=c.call(null,b).length,e=cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,b)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,b))?cljs.tools.reader.reader_types.log_source_STAR_.call(null,
+b,function(){return cljs.tools.reader.read.call(null,a,b)}):cljs.tools.reader.read.call(null,a,b);c=cljs.core.subs.call(null,c.call(null,b),d).trim();return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[e,c],null)};cljs.tools.reader.read_PLUS_string.cljs$lang$maxFixedArity=3;cljs.tools.reader.edn={};cljs.tools.reader.edn.macro_terminating_QMARK_=function(a){return"#"!==a?"'"!==a?":"!==a?cljs.tools.reader.edn.macros.call(null,a):!1:!1:!1};cljs.tools.reader.edn.not_constituent_QMARK_=function(a){return"@"===a||"`"===a||"~"===a};
+cljs.tools.reader.edn.read_token=function(a){switch(arguments.length){case 3:return cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.tools.reader.edn.read_token.call(null,a,b,c,!0)};
+cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.not.call(null,c))return cljs.tools.reader.impl.errors.throw_eof_at_start.call(null,a,b);if(cljs.core.truth_(cljs.core.truth_(d)?cljs.tools.reader.edn.not_constituent_QMARK_.call(null,c):d))return cljs.tools.reader.impl.errors.throw_bad_char.call(null,a,b,c);d=new goog.string.StringBuffer;for(cljs.tools.reader.reader_types.unread.call(null,a,c);;){if(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,
+c)||cljs.tools.reader.edn.macro_terminating_QMARK_.call(null,c)||null==c)return cljs.core.str.cljs$core$IFn$_invoke$arity$1(d);if(cljs.tools.reader.edn.not_constituent_QMARK_.call(null,c))return cljs.tools.reader.impl.errors.throw_bad_char.call(null,a,b,c);d.append(cljs.tools.reader.reader_types.read_char.call(null,a));c=cljs.tools.reader.reader_types.peek_char.call(null,a)}};cljs.tools.reader.edn.read_token.cljs$lang$maxFixedArity=4;
+cljs.tools.reader.edn.read_dispatch=function(a,b,c){var d=cljs.tools.reader.reader_types.read_char.call(null,a);return cljs.core.truth_(d)?(b=cljs.tools.reader.edn.dispatch_macros.call(null,d),cljs.core.truth_(b)?b.call(null,a,d,c):cljs.tools.reader.edn.read_tagged.call(null,function(){cljs.tools.reader.reader_types.unread.call(null,a,d);return a}(),d,c)):cljs.tools.reader.impl.errors.throw_eof_at_dispatch.call(null,a)};
+cljs.tools.reader.edn.read_unmatched_delimiter=function(a,b,c){return cljs.tools.reader.impl.errors.throw_unmatch_delimiter.call(null,a,b)};
+cljs.tools.reader.edn.read_unicode_char=function(a){switch(arguments.length){case 4:return cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){c=b+c;cljs.core.count.call(null,a)!==c&&cljs.tools.reader.impl.errors.throw_invalid_unicode_literal.call(null,null,a);for(var e=0;;){if(b===c)return String.fromCharCode(e);var f=cljs.tools.reader.impl.utils.char_code.call(null,cljs.core.nth.call(null,a,b),d);if(-1===f)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token.call(null,null,cljs.core.nth.call(null,a,b),a);e=f+e*d;b+=1}};
+cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){for(var f=1,g=cljs.tools.reader.impl.utils.char_code.call(null,b,c);;){if(-1===g)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit.call(null,a,b);if(f!==d){var h=cljs.tools.reader.reader_types.peek_char.call(null,a);if(cljs.core.truth_(function(){var a=cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,h);if(a)return a;a=cljs.tools.reader.edn.macros.call(null,h);return cljs.core.truth_(a)?
+a:null==h}()))return cljs.core.truth_(e)?cljs.tools.reader.impl.errors.throw_invalid_unicode_len.call(null,a,f,d):String.fromCharCode(g);var k=cljs.tools.reader.impl.utils.char_code.call(null,h,c);cljs.tools.reader.reader_types.read_char.call(null,a);if(-1===k)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit.call(null,a,h);g=k+g*c;f+=1}else return String.fromCharCode(g)}};cljs.tools.reader.edn.read_unicode_char.cljs$lang$maxFixedArity=5;cljs.tools.reader.edn.upper_limit=55295;
+cljs.tools.reader.edn.lower_limit=57344;
+cljs.tools.reader.edn.read_char_STAR_=function(a,b,c){b=cljs.tools.reader.reader_types.read_char.call(null,a);if(null!=b){b=cljs.tools.reader.edn.macro_terminating_QMARK_.call(null,b)||cljs.tools.reader.edn.not_constituent_QMARK_.call(null,b)||cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,b)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.edn.read_token.call(null,a,cljs.core.cst$kw$character,b,!1);c=b.length;if(1===c)return cljs.core.nth.call(null,b,0);if("newline"===b)return"\n";
+if("space"===b)return" ";if("tab"===b)return"\t";if("backspace"===b)return"\b";if("formfeed"===b)return"\f";if("return"===b)return"\r";if(goog.string.startsWith(b,"u"))return b=cljs.tools.reader.edn.read_unicode_char.call(null,b,1,4,16),c=b.charCodeAt(),c>cljs.tools.reader.edn.upper_limit&&c>8-d%1*8)){c=a.charCodeAt(d+=.75);if(255>(-2*b&6)):0)d=com.cognitect.transit.util.chars.indexOf(d);return f};
+com.cognitect.transit.util.Uint8ToBase64=function(a){for(var b=0,c=a.length,d="",e;b>2)};com.cognitect.transit.eq.stringCodeCache={};com.cognitect.transit.eq.stringCodeCacheSize=0;com.cognitect.transit.eq.STR_CACHE_MAX=256;
+com.cognitect.transit.eq.hashString=function(a){var b=com.cognitect.transit.eq.stringCodeCache[a];if(null!=b)return b;for(var c=b=0;c=com.cognitect.transit.eq.STR_CACHE_MAX&&(com.cognitect.transit.eq.stringCodeCache={},com.cognitect.transit.eq.stringCodeCacheSize=1);return com.cognitect.transit.eq.stringCodeCache[a]=b};
+com.cognitect.transit.eq.hashMapLike=function(a){var b=0;if(null!=a.forEach)a.forEach(function(a,c,d){b=(b+(com.cognitect.transit.eq.hashCode(c)^com.cognitect.transit.eq.hashCode(a)))%4503599627370496});else for(var c=com.cognitect.transit.util.objectKeys(a),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)<com.cognitect.transit.types.ARRAY_MAP_ACCESS_THRESHOLD?(this.backingMap=com.cognitect.transit.types.map(this._entries,!1,!0),this._entries=[],!0):!1};
+com.cognitect.transit.types.TransitArrayMap.prototype.clear=function(){this.hashCode=-1;this.backingMap?this.backingMap.clear():this._entries=[];this.size=0};com.cognitect.transit.types.TransitArrayMap.prototype.clear=com.cognitect.transit.types.TransitArrayMap.prototype.clear;com.cognitect.transit.types.TransitArrayMap.prototype.keys=function(){return this.backingMap?this.backingMap.keys():new com.cognitect.transit.types.TransitArrayMapIterator(this._entries,com.cognitect.transit.types.KEYS)};
+com.cognitect.transit.types.TransitArrayMap.prototype.keys=com.cognitect.transit.types.TransitArrayMap.prototype.keys;com.cognitect.transit.types.TransitArrayMap.prototype.keySet=function(){if(this.backingMap)return this.backingMap.keySet();for(var a=[],b=0,c=0;ccom.cognitect.transit.types.ARRAY_MAP_THRESHOLD&&(this.backingMap=com.cognitect.transit.types.map(this._entries,!1,!0),this._entries=null)}};
+com.cognitect.transit.types.TransitArrayMap.prototype.set=com.cognitect.transit.types.TransitArrayMap.prototype.set;com.cognitect.transit.types.TransitArrayMap.prototype["delete"]=function(a){this.hashCode=-1;if(this.backingMap)return a=this.backingMap.delete(a),this.size=this.backingMap.size,a;for(var b=0;bcom.cognitect.transit.caching.MIN_SIZE_CACHEABLE){if(b)return!0;b=a.charAt(0);a=a.charAt(1);return b===com.cognitect.transit.delimiters.ESC?":"===a||"$"===a||"#"===a:!1}return!1};
+com.cognitect.transit.caching.idxToCode=function(a){var b=Math.floor(a/com.cognitect.transit.caching.CACHE_CODE_DIGITS);a=String.fromCharCode(a%com.cognitect.transit.caching.CACHE_CODE_DIGITS+com.cognitect.transit.caching.BASE_CHAR_IDX);return 0===b?com.cognitect.transit.delimiters.SUB+a:com.cognitect.transit.delimiters.SUB+String.fromCharCode(b+com.cognitect.transit.caching.BASE_CHAR_IDX)+a};com.cognitect.transit.caching.WriteCache=function(){this.cacheSize=this.gen=this.idx=0;this.cache={}};
+com.cognitect.transit.caching.WriteCache.prototype.write=function(a,b){return com.cognitect.transit.caching.isCacheable(a,b)?(this.cacheSize===com.cognitect.transit.caching.MAX_CACHE_SIZE?(this.clear(),this.gen=0,this.cache={}):this.idx===com.cognitect.transit.caching.MAX_CACHE_ENTRIES&&this.clear(),b=this.cache[a],null==b?(this.cache[a]=[com.cognitect.transit.caching.idxToCode(this.idx),this.gen],this.idx++,a):b[1]!=this.gen?(b[1]=this.gen,b[0]=com.cognitect.transit.caching.idxToCode(this.idx),this.idx++,
+a):b[0]):a};com.cognitect.transit.caching.WriteCache.prototype.clear=function(){this.idx=0;this.gen++};com.cognitect.transit.caching.writeCache=function(){return new com.cognitect.transit.caching.WriteCache};com.cognitect.transit.caching.isCacheCode=function(a){return a.charAt(0)===com.cognitect.transit.delimiters.SUB&&" "!==a.charAt(1)};
+com.cognitect.transit.caching.codeToIdx=function(a){if(2===a.length)return a.charCodeAt(1)-com.cognitect.transit.caching.BASE_CHAR_IDX;var b=(a.charCodeAt(1)-com.cognitect.transit.caching.BASE_CHAR_IDX)*com.cognitect.transit.caching.CACHE_CODE_DIGITS;a=a.charCodeAt(2)-com.cognitect.transit.caching.BASE_CHAR_IDX;return b+a};com.cognitect.transit.caching.ReadCache=function(){this.idx=0;this.cache=[]};
+com.cognitect.transit.caching.ReadCache.prototype.write=function(a,b){this.idx==com.cognitect.transit.caching.MAX_CACHE_ENTRIES&&(this.idx=0);this.cache[this.idx]=a;this.idx++;return a};com.cognitect.transit.caching.ReadCache.prototype.read=function(a,b){return this.cache[com.cognitect.transit.caching.codeToIdx(a)]};com.cognitect.transit.caching.ReadCache.prototype.clear=function(){this.idx=0};com.cognitect.transit.caching.readCache=function(){return new com.cognitect.transit.caching.ReadCache};com.cognitect.transit.impl={};com.cognitect.transit.impl.decoder={};com.cognitect.transit.impl.decoder.Tag=function(a){this.str=a};com.cognitect.transit.impl.decoder.tag=function(a){return new com.cognitect.transit.impl.decoder.Tag(a)};com.cognitect.transit.impl.decoder.isTag=function(a){return a&&a instanceof com.cognitect.transit.impl.decoder.Tag};com.cognitect.transit.impl.decoder.isGroundHandler=function(a){switch(a){case "_":case "s":case "?":case "i":case "d":case "b":case "'":case "array":case "map":return!0}return!1};
+com.cognitect.transit.impl.decoder.Decoder=function(a){this.options=a||{};this.handlers={};for(var b in this.defaults.handlers)this.handlers[b]=this.defaults.handlers[b];for(b in this.options.handlers){if(com.cognitect.transit.impl.decoder.isGroundHandler(b))throw Error('Cannot override handler for ground type "'+b+'"');this.handlers[b]=this.options.handlers[b]}this.preferStrings=null!=this.options.preferStrings?this.options.preferStrings:this.defaults.preferStrings;this.preferBuffers=null!=this.options.preferBuffers?
+this.options.preferBuffers:this.defaults.preferBuffers;this.defaultHandler=this.options.defaultHandler||this.defaults.defaultHandler;this.mapBuilder=this.options.mapBuilder;this.arrayBuilder=this.options.arrayBuilder};
+com.cognitect.transit.impl.decoder.Decoder.prototype.defaults={handlers:{_:function(a,b){return com.cognitect.transit.types.nullValue()},"?":function(a,b){return com.cognitect.transit.types.boolValue(a)},b:function(a,b){return com.cognitect.transit.types.binary(a,b)},i:function(a,b){return com.cognitect.transit.types.intValue(a)},n:function(a,b){return com.cognitect.transit.types.bigInteger(a)},d:function(a,b){return com.cognitect.transit.types.floatValue(a)},f:function(a,b){return com.cognitect.transit.types.bigDecimalValue(a)},
+c:function(a,b){return com.cognitect.transit.types.charValue(a)},":":function(a,b){return com.cognitect.transit.types.keyword(a)},$:function(a,b){return com.cognitect.transit.types.symbol(a)},r:function(a,b){return com.cognitect.transit.types.uri(a)},z:function(a,b){return com.cognitect.transit.types.specialDouble(a)},"'":function(a,b){return a},m:function(a,b){return com.cognitect.transit.types.date(a)},t:function(a,b){return com.cognitect.transit.types.verboseDate(a)},u:function(a,b){return com.cognitect.transit.types.uuid(a)},
+set:function(a,b){return com.cognitect.transit.types.set(a)},list:function(a,b){return com.cognitect.transit.types.list(a)},link:function(a,b){return com.cognitect.transit.types.link(a)},cmap:function(a,b){return com.cognitect.transit.types.map(a,!1)}},defaultHandler:function(a,b){return com.cognitect.transit.types.taggedValue(a,b)},preferStrings:!0,preferBuffers:!0};
+com.cognitect.transit.impl.decoder.Decoder.prototype.decode=function(a,b,c,d){if(null==a)return null;switch(typeof a){case "string":return this.decodeString(a,b,c,d);case "object":return com.cognitect.transit.util.isArray(a)?"^ "===a[0]?this.decodeArrayHash(a,b,c,d):this.decodeArray(a,b,c,d):this.decodeHash(a,b,c,d)}return a};com.cognitect.transit.impl.decoder.Decoder.prototype.decode=com.cognitect.transit.impl.decoder.Decoder.prototype.decode;
+com.cognitect.transit.impl.decoder.Decoder.prototype.decodeString=function(a,b,c,d){return com.cognitect.transit.caching.isCacheable(a,c)?(a=this.parseString(a,b,!1),b&&b.write(a,c),a):com.cognitect.transit.caching.isCacheCode(a)?b.read(a,c):this.parseString(a,b,c)};
+com.cognitect.transit.impl.decoder.Decoder.prototype.decodeHash=function(a,b,c,d){c=com.cognitect.transit.util.objectKeys(a);var e=c[0];d=1==c.length?this.decode(e,b,!1,!1):null;if(com.cognitect.transit.impl.decoder.isTag(d))return a=a[e],c=this.handlers[d.str],null!=c?c(this.decode(a,b,!1,!0),this):com.cognitect.transit.types.taggedValue(d.str,this.decode(a,b,!1,!1));if(this.mapBuilder){if(c.length<2*com.cognitect.transit.types.SMALL_ARRAY_MAP_THRESHOLD&&this.mapBuilder.fromArray){var f=[];for(d=
+0;d=a.length&&this.arrayBuilder.fromArray){e=
+[];for(d=0;dthis.head?(cljs.core.async.impl.buffers.acopy.call(null,this.arr,this.tail,a,0,this.arr.length-this.tail),cljs.core.async.impl.buffers.acopy.call(null,this.arr,0,a,this.arr.length-this.tail,this.head),this.tail=0,this.head=this.length,this.arr=
+a):this.tail===this.head?(this.head=this.tail=0,this.arr=a):null};cljs.core.async.impl.buffers.RingBuffer.prototype.cleanup=function(a){for(var b=this.length,c=0;;)if(c=this.n};cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1=function(a){return this.buf.pop()};
+cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2=function(a,b){this.buf.unbounded_unshift(b);return this};cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1=function(a){return null};cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.buf.length};
+cljs.core.async.impl.buffers.FixedBuffer.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$buf,cljs.core.cst$sym$n],null)};cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$type=!0;cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorStr="cljs.core.async.impl.buffers/FixedBuffer";cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core.async.impl.buffers/FixedBuffer")};
+cljs.core.async.impl.buffers.__GT_FixedBuffer=function(a,b){return new cljs.core.async.impl.buffers.FixedBuffer(a,b)};cljs.core.async.impl.buffers.fixed_buffer=function(a){return new cljs.core.async.impl.buffers.FixedBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,a),a)};cljs.core.async.impl.buffers.DroppingBuffer=function(a,b){this.buf=a;this.n=b;this.cljs$lang$protocol_mask$partition0$=2;this.cljs$lang$protocol_mask$partition1$=0};
+cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$=cljs.core.PROTOCOL_SENTINEL;cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$=cljs.core.PROTOCOL_SENTINEL;cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1=function(a){return!1};cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1=function(a){return this.buf.pop()};
+cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2=function(a,b){this.buf.length!==this.n&&this.buf.unshift(b);return this};cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1=function(a){return null};cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.buf.length};
+cljs.core.async.impl.buffers.DroppingBuffer.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$buf,cljs.core.cst$sym$n],null)};cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$type=!0;cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorStr="cljs.core.async.impl.buffers/DroppingBuffer";cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core.async.impl.buffers/DroppingBuffer")};
+cljs.core.async.impl.buffers.__GT_DroppingBuffer=function(a,b){return new cljs.core.async.impl.buffers.DroppingBuffer(a,b)};cljs.core.async.impl.buffers.dropping_buffer=function(a){return new cljs.core.async.impl.buffers.DroppingBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,a),a)};cljs.core.async.impl.buffers.SlidingBuffer=function(a,b){this.buf=a;this.n=b;this.cljs$lang$protocol_mask$partition0$=2;this.cljs$lang$protocol_mask$partition1$=0};
+cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$=cljs.core.PROTOCOL_SENTINEL;cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$=cljs.core.PROTOCOL_SENTINEL;cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1=function(a){return!1};cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1=function(a){return this.buf.pop()};
+cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2=function(a,b){this.buf.length===this.n&&cljs.core.async.impl.protocols.remove_BANG_.call(null,this);this.buf.unshift(b);return this};cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1=function(a){return null};cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.buf.length};
+cljs.core.async.impl.buffers.SlidingBuffer.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$buf,cljs.core.cst$sym$n],null)};cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$type=!0;cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorStr="cljs.core.async.impl.buffers/SlidingBuffer";cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core.async.impl.buffers/SlidingBuffer")};
+cljs.core.async.impl.buffers.__GT_SlidingBuffer=function(a,b){return new cljs.core.async.impl.buffers.SlidingBuffer(a,b)};cljs.core.async.impl.buffers.sliding_buffer=function(a){return new cljs.core.async.impl.buffers.SlidingBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,a),a)};
+if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core.async||"undefined"===typeof cljs.core.async.impl||"undefined"===typeof cljs.core.async.impl.buffers||"undefined"===typeof cljs.core.async.impl.buffers.NO_VAL)cljs.core.async.impl.buffers.NO_VAL={};cljs.core.async.impl.buffers.undelivered_QMARK_=function(a){return cljs.core.async.impl.buffers.NO_VAL===a};
+cljs.core.async.impl.buffers.PromiseBuffer=function(a){this.val=a;this.cljs$lang$protocol_mask$partition0$=2;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$=cljs.core.PROTOCOL_SENTINEL;cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$=cljs.core.PROTOCOL_SENTINEL;
+cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1=function(a){return!1};cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1=function(a){return this.val};cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2=function(a,b){cljs.core.async.impl.buffers.undelivered_QMARK_.call(null,this.val)&&(this.val=b);return this};
+cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1=function(a){return cljs.core.async.impl.buffers.undelivered_QMARK_.call(null,this.val)?this.val=null:null};cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$ICounted$_count$arity$1=function(a){return cljs.core.async.impl.buffers.undelivered_QMARK_.call(null,this.val)?0:1};
+cljs.core.async.impl.buffers.PromiseBuffer.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs.core.cst$sym$val,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$type=!0;cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$ctorStr="cljs.core.async.impl.buffers/PromiseBuffer";
+cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core.async.impl.buffers/PromiseBuffer")};cljs.core.async.impl.buffers.__GT_PromiseBuffer=function(a){return new cljs.core.async.impl.buffers.PromiseBuffer(a)};cljs.core.async.impl.buffers.promise_buffer=function(){return new cljs.core.async.impl.buffers.PromiseBuffer(cljs.core.async.impl.buffers.NO_VAL)};cljs.core.async.impl.dispatch={};cljs.core.async.impl.dispatch.tasks=cljs.core.async.impl.buffers.ring_buffer.call(null,32);cljs.core.async.impl.dispatch.running_QMARK_=!1;cljs.core.async.impl.dispatch.queued_QMARK_=!1;cljs.core.async.impl.dispatch.TASK_BATCH_SIZE=1024;
+cljs.core.async.impl.dispatch.process_messages=function(){cljs.core.async.impl.dispatch.running_QMARK_=!0;cljs.core.async.impl.dispatch.queued_QMARK_=!1;for(var a=0;;){var b=cljs.core.async.impl.dispatch.tasks.pop();if(null!=b&&(b.call(null),ad.puts.length))throw Error(["Assert failed: ",["No more than ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(1024)," pending puts are allowed on a single channel. Consider using a windowed buffer."].join(""),
+"\n(\x3c (.-length puts) impl/MAX-QUEUE-SIZE)"].join(""));d.puts.unbounded_unshift(new cljs.core.async.impl.channels.PutBox(c,b))}return null}return cljs.core.async.impl.channels.box.call(null,!f)};cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$=cljs.core.PROTOCOL_SENTINEL;
+cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2=function(a,b){var c=this;if(cljs.core.async.impl.protocols.active_QMARK_.call(null,b)){if(null!=c.buf&&0c.takes.length))throw Error(["Assert failed: ",["No more than ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(1024)," pending takes are allowed on a single channel."].join(""),"\n(\x3c (.-length takes) impl/MAX-QUEUE-SIZE)"].join(""));c.takes.unbounded_unshift(b)}}return null};cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$=cljs.core.PROTOCOL_SENTINEL;
+cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1=function(a){return this.closed};
+cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1=function(a){var b=this;if(!b.closed){b.closed=!0;for(cljs.core.truth_(function(){var a=b.buf;return cljs.core.truth_(a)?0===b.puts.length:a}())&&b.add_BANG_.call(null,b.buf);;)if(a=b.takes.pop(),null!=a){if(cljs.core.async.impl.protocols.active_QMARK_.call(null,a)){var c=cljs.core.async.impl.protocols.commit.call(null,a),d=cljs.core.truth_(function(){var a=b.buf;return cljs.core.truth_(a)?
+0c)return a;a:for(;;){var e=cthis.level){for(var e=this.level+1;;)if(e<=d+1)c[e]=this.header,e+=1;else break;this.level=d}a=cljs.core.async.impl.timers.skip_list_node.call(null,a,b,Array(d));for(b=0;;)if(b<=this.level)d=
+c[b].forward,bc)return cljs.core._EQ_.call(null,b.key,a)?b:b.forward[0];var d;a:for(d=b;;){var e=ca)break a;d=e}else{d=0===c?d:null;break a}}cljs.core.truth_(d)?(--c,b=d):--c}};
+cljs.core.async.impl.timers.SkipList.prototype.floorEntry=function(a){for(var b=this.header,c=this.level;;){if(0>c)return b===this.header?null:b;var d;a:for(d=b;;){var e=ca)break a;d=e}else{d=0===c?d:null;break a}}cljs.core.truth_(d)?(--c,b=d):--c}};
+cljs.core.async.impl.timers.SkipList.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return function d(a){return new cljs.core.LazySeq(null,function(){return null==a?null:cljs.core.cons.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.key,a.val],null),d.call(null,a.forward[0]))},null,null)}.call(null,this.header.forward[0])};
+cljs.core.async.impl.timers.SkipList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"{",", ","}",c,this)};
+cljs.core.async.impl.timers.SkipList.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$header,cljs.core.with_meta(cljs.core.cst$sym$level,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$mutable,!0],null))],null)};cljs.core.async.impl.timers.SkipList.cljs$lang$type=!0;cljs.core.async.impl.timers.SkipList.cljs$lang$ctorStr="cljs.core.async.impl.timers/SkipList";
+cljs.core.async.impl.timers.SkipList.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.core.async.impl.timers/SkipList")};cljs.core.async.impl.timers.__GT_SkipList=function(a,b){return new cljs.core.async.impl.timers.SkipList(a,b)};cljs.core.async.impl.timers.skip_list=function(){return new cljs.core.async.impl.timers.SkipList(cljs.core.async.impl.timers.skip_list_node.call(null,0),0)};cljs.core.async.impl.timers.timeouts_map=cljs.core.async.impl.timers.skip_list.call(null);
+cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS=10;
+cljs.core.async.impl.timers.timeout=function(a){var b=(new Date).valueOf()+a,c=cljs.core.async.impl.timers.timeouts_map.ceilingEntry(b);c=cljs.core.truth_(cljs.core.truth_(c)?c.keycljs.core.cst$kw$cljs$spec$alpha_SLASH_recursion_DASH_limit.cljs$core$IFn$_invoke$arity$1(a)&&cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,c),d)};cljs.spec.alpha.inck=function(a,b){return cljs.core.assoc.call(null,a,b,function(){var c=cljs.core.get.call(null,a,b);return cljs.core.truth_(c)?c:0}()+1)};
+cljs.spec.alpha.dt=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.dt.call(null,a,b,c,null)};
+cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.truth_(a)){var e=cljs.spec.alpha.the_spec.call(null,a);if(cljs.core.truth_(e))return cljs.spec.alpha.conform.call(null,e,b);if(cljs.core.ifn_QMARK_.call(null,a))return cljs.core.truth_(d)?a.call(null,b):cljs.core.truth_(a.call(null,b))?b:cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid;throw Error([cljs.core.pr_str.call(null,c)," is not a fn, expected predicate fn"].join(""));}return b};
+cljs.spec.alpha.dt.cljs$lang$maxFixedArity=4;cljs.spec.alpha.valid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){a=cljs.spec.alpha.specize.call(null,a);return!cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,a,b))};cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.spec.alpha.specize.call(null,a,c);return!cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,a,b))};cljs.spec.alpha.valid_QMARK_.cljs$lang$maxFixedArity=3;
+cljs.spec.alpha.pvalid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){return!cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,a,b,cljs.core.cst$kw$cljs$spec$alpha_SLASH_unknown))};cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return!cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,a,b,c))};cljs.spec.alpha.pvalid_QMARK_.cljs$lang$maxFixedArity=3;
+cljs.spec.alpha.explain_1=function(a,b,c,d,e,f){var g=cljs.spec.alpha.maybe_spec.call(null,b);return cljs.core.truth_(cljs.spec.alpha.spec_QMARK_.call(null,g))?cljs.spec.alpha.explain_STAR_.call(null,g,c,function(){var a=cljs.spec.alpha.spec_name.call(null,g);return cljs.core.truth_(a)?cljs.core.conj.call(null,d,a):d}(),e,f):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,c,cljs.core.cst$kw$pred,a,cljs.core.cst$kw$val,
+f,cljs.core.cst$kw$via,d,cljs.core.cst$kw$in,e],null)],null)};cljs.spec.alpha.k_gen=function(a){return a instanceof cljs.core.Keyword?cljs.spec.gen.alpha.return$.call(null,a):cljs.core._EQ_.call(null,cljs.core.cst$sym$or,cljs.core.first.call(null,a))?cljs.spec.alpha.or_k_gen.call(null,1,cljs.core.rest.call(null,a)):cljs.core._EQ_.call(null,cljs.core.cst$sym$and,cljs.core.first.call(null,a))?cljs.spec.alpha.and_k_gen.call(null,cljs.core.rest.call(null,a)):null};
+cljs.spec.alpha.or_k_gen=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.spec.alpha.or_k_gen.call(null,0,a)};
+cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.gen.alpha.bind.call(null,cljs.spec.gen.alpha.tuple.call(null,cljs.spec.gen.alpha.choose.call(null,a,cljs.core.count.call(null,b)),cljs.spec.gen.alpha.shuffle.call(null,cljs.core.map.call(null,cljs.spec.alpha.k_gen,b))),function(a){var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return cljs.core.apply.call(null,cljs.spec.gen.alpha.tuple,cljs.core.take.call(null,b,a))})};
+cljs.spec.alpha.or_k_gen.cljs$lang$maxFixedArity=2;cljs.spec.alpha.and_k_gen=function(a){return cljs.core.apply.call(null,cljs.spec.gen.alpha.tuple,cljs.core.map.call(null,cljs.spec.alpha.k_gen,a))};
+cljs.spec.alpha.map_spec_impl=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a,c=cljs.core.get.call(null,b,cljs.core.cst$kw$opt),d=cljs.core.get.call(null,b,cljs.core.cst$kw$req_DASH_un),e=cljs.core.get.call(null,b,cljs.core.cst$kw$opt_DASH_un),f=cljs.core.get.call(null,b,cljs.core.cst$kw$gfn),g=cljs.core.get.call(null,b,cljs.core.cst$kw$pred_DASH_exprs),h=cljs.core.get.call(null,
+b,cljs.core.cst$kw$keys_DASH_pred),k=cljs.core.get.call(null,b,cljs.core.cst$kw$opt_DASH_keys),l=cljs.core.get.call(null,b,cljs.core.cst$kw$req_DASH_specs),m=cljs.core.get.call(null,b,cljs.core.cst$kw$req),n=cljs.core.get.call(null,b,cljs.core.cst$kw$req_DASH_keys),p=cljs.core.get.call(null,b,cljs.core.cst$kw$opt_DASH_specs),q=cljs.core.get.call(null,b,cljs.core.cst$kw$pred_DASH_forms),r=cljs.core.zipmap.call(null,cljs.core.concat.call(null,n,k),cljs.core.concat.call(null,l,p)),t=cljs.core.random_uuid.call(null);
+if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17743)cljs.spec.alpha.t_cljs$spec$alpha17743=function(a,b,c,d,e,f,g,h,k,l,n,m,p,q,r,t,J,I,H){this.keys__GT_specnames=a;this.opt=b;this.req_un=c;this.opt_un=d;this.gfn=e;this.pred_exprs=f;this.keys_pred=g;this.p__17740=h;this.argm=k;this.opt_keys=l;this.map__17741=n;this.req_specs=m;this.req=p;this.id=q;this.req_keys=r;this.opt_specs=t;this.k__GT_s=
+J;this.pred_forms=I;this.meta17744=H;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17743(this.keys__GT_specnames,this.opt,this.req_un,this.opt_un,this.gfn,this.pred_exprs,this.keys_pred,this.p__17740,this.argm,this.opt_keys,this.map__17741,this.req_specs,this.req,this.id,this.req_keys,this.opt_specs,this.k__GT_s,
+this.pred_forms,b)},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta17744},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$=
+cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.keys_pred.call(null,b))){a=cljs.spec.alpha.registry.call(null);var c=cljs.core.seq.call(null,b),d=cljs.core.first.call(null,c);cljs.core.next.call(null,c);cljs.core.nth.call(null,d,0,null);cljs.core.nth.call(null,d,1,null);for(d=c=b;;){b=c;var e=cljs.core.seq.call(null,d);c=cljs.core.first.call(null,e);var f=cljs.core.next.call(null,e);e=c;
+c=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);if(cljs.core.truth_(d))if(d=this.keys__GT_specnames.call(null,c),d=cljs.core.get.call(null,a,d),cljs.core.truth_(d)){d=cljs.spec.alpha.conform.call(null,d,e);if(cljs.spec.alpha.invalid_QMARK_.call(null,d))return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid;b=d===e?b:cljs.core.assoc.call(null,b,c,d);d=f;c=b}else d=f,c=b;else return b}}else return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=
+function(a,b){a=cljs.spec.alpha.registry.call(null);var c=cljs.core.keys.call(null,b),d=cljs.core.seq.call(null,c);cljs.core.first.call(null,d);cljs.core.next.call(null,d);for(d=b;;){var e=cljs.core.seq.call(null,c),f=cljs.core.first.call(null,e);e=cljs.core.next.call(null,e);if(cljs.core.truth_(c))if(cljs.core.contains_QMARK_.call(null,a,this.keys__GT_specnames.call(null,f))){c=cljs.core.get.call(null,b,f);var g=cljs.spec.alpha.unform.call(null,this.keys__GT_specnames.call(null,f),c);d=c===g?d:cljs.core.assoc.call(null,
+d,f,g);c=e}else c=e;else return d}},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){var f=this;if(cljs.core.map_QMARK_.call(null,e)){var g=cljs.spec.alpha.registry.call(null);return cljs.core.apply.call(null,cljs.core.concat,function(){var a=cljs.core.seq.call(null,cljs.core.keep.call(null,cljs.core.identity,cljs.core.map.call(null,function(a,b){return cljs.core.truth_(a.call(null,e))?null:b},f.pred_exprs,f.pred_forms)));return a?cljs.core.map.call(null,
+function(a){return cljs.core.identity.call(null,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,a,cljs.core.cst$kw$val,e,cljs.core.cst$kw$via,c,cljs.core.cst$kw$in,d],null))},a):null}(),cljs.core.map.call(null,function(a){var e=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return!cljs.core.contains_QMARK_.call(null,g,f.keys__GT_specnames.call(null,e))||cljs.spec.alpha.pvalid_QMARK_.call(null,f.keys__GT_specnames.call(null,e),a,e)?null:
+cljs.spec.alpha.explain_1.call(null,f.keys__GT_specnames.call(null,e),f.keys__GT_specnames.call(null,e),cljs.core.conj.call(null,b,e),c,cljs.core.conj.call(null,d,e),a)},cljs.core.seq.call(null,e)))}return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,cljs.core.cst$sym$cljs$core_SLASH_map_QMARK_,cljs.core.cst$kw$val,e,cljs.core.cst$kw$via,c,cljs.core.cst$kw$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=
+function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.call(null);var f=cljs.spec.alpha.inck.call(null,d,e.id),g=cljs.core.map.call(null,function(a,d){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.spec.alpha.gensub.call(null,d,b,cljs.core.conj.call(null,c,a),f,a)],null)},e.req_keys,e.req_specs),h=cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,function(a,d){return cljs.spec.alpha.recur_limit_QMARK_.call(null,f,e.id,
+c,a)?null:new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.spec.gen.alpha.delay_impl.call(null,new cljs.core.Delay(function(){return cljs.spec.alpha.gensub.call(null,d,b,cljs.core.conj.call(null,c,a),f,a)},null))],null)},e.opt_keys,e.opt_specs));return cljs.core.every_QMARK_.call(null,cljs.core.identity,cljs.core.concat.call(null,cljs.core.map.call(null,cljs.core.second,g),cljs.core.map.call(null,cljs.core.second,h)))?cljs.spec.gen.alpha.bind.call(null,cljs.spec.gen.alpha.tuple.call(null,
+cljs.spec.alpha.and_k_gen.call(null,e.req),cljs.spec.alpha.or_k_gen.call(null,e.opt),cljs.spec.alpha.and_k_gen.call(null,e.req_un),cljs.spec.alpha.or_k_gen.call(null,e.opt_un)),function(a){var b=cljs.core.nth.call(null,a,0,null),c=cljs.core.nth.call(null,a,1,null),d=cljs.core.nth.call(null,a,2,null);a=cljs.core.nth.call(null,a,3,null);var e=cljs.core.flatten.call(null,cljs.core.concat.call(null,b,c)),f=cljs.core.map.call(null,cljs.core.comp.call(null,cljs.core.keyword,cljs.core.name),cljs.core.flatten.call(null,
+cljs.core.concat.call(null,d,a)));return cljs.core.apply.call(null,cljs.spec.gen.alpha.hash_map,cljs.core.apply.call(null,cljs.core.concat,cljs.core.filter.call(null,function(a){return cljs.core.set.call(null,cljs.core.concat.call(null,e,f)).call(null,cljs.core.first.call(null,a))},cljs.core.into.call(null,g,h))))}):null},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.map_spec_impl.call(null,cljs.core.assoc.call(null,
+this.argm,cljs.core.cst$kw$gfn,b))},cljs.spec.alpha.t_cljs$spec$alpha17743.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){var b=this;return cljs.core.cons.call(null,cljs.core.cst$sym$cljs$spec$alpha_SLASH_keys,function(){var a=cljs.core.PersistentVector.EMPTY;a=cljs.core.truth_(b.req)?cljs.core.conj.call(null,a,cljs.core.cst$kw$req,b.req):a;a=cljs.core.truth_(b.opt)?cljs.core.conj.call(null,a,cljs.core.cst$kw$opt,b.opt):a;a=cljs.core.truth_(b.req_un)?cljs.core.conj.call(null,a,
+cljs.core.cst$kw$req_DASH_un,b.req_un):a;return cljs.core.truth_(b.opt_un)?cljs.core.conj.call(null,a,cljs.core.cst$kw$opt_DASH_un,b.opt_un):a}())},cljs.spec.alpha.t_cljs$spec$alpha17743.getBasis=function(){return new cljs.core.PersistentVector(null,19,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$keys_DASH__GT_specnames,cljs.core.cst$sym$opt,cljs.core.cst$sym$req_DASH_un,cljs.core.cst$sym$opt_DASH_un,cljs.core.cst$sym$gfn,cljs.core.cst$sym$pred_DASH_exprs,cljs.core.cst$sym$keys_DASH_pred,
+cljs.core.cst$sym$p__17740,cljs.core.cst$sym$argm,cljs.core.cst$sym$opt_DASH_keys,cljs.core.cst$sym$map__17741,cljs.core.cst$sym$req_DASH_specs,cljs.core.cst$sym$req,cljs.core.cst$sym$id,cljs.core.cst$sym$req_DASH_keys,cljs.core.cst$sym$opt_DASH_specs,cljs.core.cst$sym$k_DASH__GT_s,cljs.core.cst$sym$pred_DASH_forms,cljs.core.cst$sym$meta17744],null)},cljs.spec.alpha.t_cljs$spec$alpha17743.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17743.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17743",
+cljs.spec.alpha.t_cljs$spec$alpha17743.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17743")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17743=function(a,b,c,d,e,f,g,h,k,l,n,m,p,q,r,t,J,I,H){return new cljs.spec.alpha.t_cljs$spec$alpha17743(a,b,c,d,e,f,g,h,k,l,n,m,p,q,r,t,J,I,H)};return new cljs.spec.alpha.t_cljs$spec$alpha17743(function(a){var b=r.call(null,a);return cljs.core.truth_(b)?b:a},c,d,e,f,g,h,a,b,k,b,l,m,t,n,p,r,q,cljs.core.PersistentArrayMap.EMPTY)};
+cljs.spec.alpha.spec_impl=function(a){switch(arguments.length){case 4:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.spec.alpha.spec_impl.call(null,a,b,c,d,null)};
+cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){if(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_.call(null,b)))return cljs.core.truth_(c)?cljs.spec.alpha.with_gen.call(null,b,c):b;if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,b)))return cljs.spec.alpha.regex_spec_impl.call(null,b,c);if(cljs.core.ident_QMARK_.call(null,b))return a=cljs.spec.alpha.the_spec.call(null,b),cljs.core.truth_(c)?cljs.spec.alpha.with_gen.call(null,a,c):a;if("undefined"===typeof cljs||
+"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17799)cljs.spec.alpha.t_cljs$spec$alpha17799=function(a,b,c,d,e,m){this.form=a;this.pred=b;this.gfn=c;this.cpred_QMARK_=d;this.unc=e;this.meta17800=m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17799(this.form,
+this.pred,this.gfn,this.cpred_QMARK_,this.unc,b)},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta17800},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},
+cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=this.pred.call(null,b);return cljs.core.truth_(this.cpred_QMARK_)?a:cljs.core.truth_(a)?b:cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.cpred_QMARK_)){if(cljs.core.truth_(this.unc))return this.unc.call(null,
+b);throw Error("no unform fn for conformer");}return b},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){return cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,this.pred,e,this.form,this.cpred_QMARK_))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,this.form,cljs.core.cst$kw$val,e,cljs.core.cst$kw$via,
+c,cljs.core.cst$kw$in,d],null)],null):null},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){return cljs.core.truth_(this.gfn)?this.gfn.call(null):cljs.spec.gen.alpha.gen_for_pred.call(null,this.pred)},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.spec_impl.call(null,this.form,this.pred,b,this.cpred_QMARK_,this.unc)},cljs.spec.alpha.t_cljs$spec$alpha17799.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=
+function(a){return this.form},cljs.spec.alpha.t_cljs$spec$alpha17799.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$form,cljs.core.cst$sym$pred,cljs.core.cst$sym$gfn,cljs.core.cst$sym$cpred_QMARK_,cljs.core.cst$sym$unc,cljs.core.cst$sym$meta17800],null)},cljs.spec.alpha.t_cljs$spec$alpha17799.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17799.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17799",cljs.spec.alpha.t_cljs$spec$alpha17799.cljs$lang$ctorPrWriter=
+function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17799")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17799=function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha17799(a,b,c,d,e,m)};return new cljs.spec.alpha.t_cljs$spec$alpha17799(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.spec_impl.cljs$lang$maxFixedArity=5;
+cljs.spec.alpha.multi_spec_impl=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.multi_spec_impl.call(null,a,b,c,null)};
+cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=cljs.core.random_uuid.call(null),f=c instanceof cljs.core.Keyword?function(a,b){return cljs.core.assoc.call(null,a,c,b)}:c;if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17810)cljs.spec.alpha.t_cljs$spec$alpha17810=function(a,b,c,d,e,f,p,q,r){this.form=a;this.mmvar=b;this.retag=c;this.gfn=d;this.id=e;this.predx=
+f;this.dval=p;this.tag=q;this.meta17811=r;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17810(this.form,this.mmvar,this.retag,this.gfn,this.id,this.predx,this.dval,this.tag,b)},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta17811},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Specize$=
+cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=this.predx.call(null,b);
+return cljs.core.truth_(a)?cljs.spec.alpha.dt.call(null,a,b,this.form):cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){a=this.predx.call(null,b);if(cljs.core.truth_(a))return cljs.spec.alpha.unform.call(null,a,b);throw Error(["No method of: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.form)," for dispatch value: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.dval.call(null,b))].join(""));
+},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){a=this.dval.call(null,e);b=cljs.core.conj.call(null,b,a);a=this.predx.call(null,e);return cljs.core.truth_(a)?cljs.spec.alpha.explain_1.call(null,this.form,a,b,c,d,e):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,this.form,cljs.core.cst$kw$val,e,cljs.core.cst$kw$reason,
+"no method",cljs.core.cst$kw$via,c,cljs.core.cst$kw$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.call(null);a=cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,function(a){var f=cljs.core.nth.call(null,a,0,null),g=cljs.core.nth.call(null,a,1,null).call(null,null),h=cljs.spec.alpha.inck.call(null,d,e.id);return cljs.spec.alpha.recur_limit_QMARK_.call(null,
+h,e.id,c,f)?null:cljs.spec.gen.alpha.delay_impl.call(null,new cljs.core.Delay(function(){return cljs.spec.gen.alpha.fmap.call(null,function(a){return e.tag.call(null,a,f)},cljs.spec.alpha.gensub.call(null,g,b,cljs.core.conj.call(null,c,f),h,new cljs.core.List(null,cljs.core.cst$sym$method,new cljs.core.List(null,e.form,new cljs.core.List(null,f,null,1,null),2,null),3,null)))},null))},cljs.core.remove.call(null,function(a){a=cljs.core.nth.call(null,a,0,null);return cljs.spec.alpha.invalid_QMARK_.call(null,
+a)},cljs.core.methods$.call(null,cljs.core.deref.call(null,e.mmvar)))));return cljs.core.every_QMARK_.call(null,cljs.core.identity,a)?cljs.spec.gen.alpha.one_of.call(null,a):null},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.multi_spec_impl.call(null,this.form,this.mmvar,this.retag,b)},cljs.spec.alpha.t_cljs$spec$alpha17810.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$spec$alpha_SLASH_multi_DASH_spec,null,1,null),new cljs.core.List(null,this.form,null,1,null),new cljs.core.List(null,this.retag,null,1,null))))},cljs.spec.alpha.t_cljs$spec$alpha17810.getBasis=function(){return new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$form,cljs.core.cst$sym$mmvar,cljs.core.cst$sym$retag,cljs.core.cst$sym$gfn,cljs.core.cst$sym$id,
+cljs.core.cst$sym$predx,cljs.core.cst$sym$dval,cljs.core.cst$sym$tag,cljs.core.cst$sym$meta17811],null)},cljs.spec.alpha.t_cljs$spec$alpha17810.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17810.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17810",cljs.spec.alpha.t_cljs$spec$alpha17810.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17810")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17810=function(a,b,c,d,e,f,p,q,r){return new cljs.spec.alpha.t_cljs$spec$alpha17810(a,
+b,c,d,e,f,p,q,r)};return new cljs.spec.alpha.t_cljs$spec$alpha17810(a,b,c,d,e,function(a){var c=cljs.core.deref.call(null,b),d=cljs.core._get_method.call(null,c,cljs.core._dispatch_fn.call(null,c).call(null,a));return cljs.core.truth_(d)?c.call(null,a):d},function(a){return cljs.core._dispatch_fn.call(null,cljs.core.deref.call(null,b)).call(null,a)},f,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.multi_spec_impl.cljs$lang$maxFixedArity=4;
+cljs.spec.alpha.tuple_impl=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.alpha.tuple_impl.call(null,a,b,null)};
+cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new cljs.core.Delay(function(){return cljs.core.mapv.call(null,cljs.spec.alpha.specize,b,a)},null),e=cljs.core.count.call(null,b);if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17824)cljs.spec.alpha.t_cljs$spec$alpha17824=function(a,b,c,d,e,m){this.forms=a;this.preds=b;this.gfn=c;this.specs=d;this.cnt=e;this.meta17825=
+m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17824(this.forms,this.preds,this.gfn,this.specs,this.cnt,b)},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta17825},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,
+cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=cljs.core.deref.call(null,this.specs);if(cljs.core.vector_QMARK_.call(null,
+b)&&cljs.core._EQ_.call(null,cljs.core.count.call(null,b),this.cnt))for(var c=b,d=0;;){if(cljs.core._EQ_.call(null,d,this.cnt))return c;var e=b.call(null,d),f=cljs.spec.alpha.conform_STAR_.call(null,a.call(null,d),e);if(cljs.spec.alpha.invalid_QMARK_.call(null,f))return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid;c=f===e?c:cljs.core.assoc.call(null,c,d,f);d+=1}else return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=
+function(a,b){if(!cljs.core.vector_QMARK_.call(null,b)||!cljs.core._EQ_.call(null,cljs.core.count.call(null,b),cljs.core.count.call(null,this.preds)))throw Error("Assert failed: (c/and (vector? x) (\x3d (count x) (count preds)))");a=b;for(var c=0;;){if(cljs.core._EQ_.call(null,c,cljs.core.count.call(null,b)))return a;var d=b.call(null,c),e=cljs.spec.alpha.unform.call(null,this.preds.call(null,c),d);a=d===e?a:cljs.core.assoc.call(null,a,c,e);c+=1}},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=
+function(a,b,c,d,e){return cljs.core.vector_QMARK_.call(null,e)?cljs.core.not_EQ_.call(null,cljs.core.count.call(null,e),cljs.core.count.call(null,this.preds))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH__EQ_,null,1,null),new cljs.core.List(null,
+cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_count,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$_PERCENT_,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.count.call(null,this.preds),null,1,null)))),cljs.core.cst$kw$val,e,cljs.core.cst$kw$via,c,cljs.core.cst$kw$in,d],null)],null):cljs.core.apply.call(null,cljs.core.concat,cljs.core.map.call(null,function(a,f,g){var h=e.call(null,a);
+return cljs.spec.alpha.pvalid_QMARK_.call(null,g,h)?null:cljs.spec.alpha.explain_1.call(null,f,g,cljs.core.conj.call(null,b,a),c,cljs.core.conj.call(null,d,a),h)},cljs.core.range.call(null,cljs.core.count.call(null,this.preds)),this.forms,this.preds)):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$path,b,cljs.core.cst$kw$pred,cljs.core.cst$sym$cljs$core_SLASH_vector_QMARK_,cljs.core.cst$kw$val,e,cljs.core.cst$kw$via,
+c,cljs.core.cst$kw$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){if(cljs.core.truth_(this.gfn))return this.gfn.call(null);a=cljs.core.map.call(null,function(a,e,f){return cljs.spec.alpha.gensub.call(null,e,b,cljs.core.conj.call(null,c,a),d,f)},cljs.core.range.call(null,cljs.core.count.call(null,this.preds)),this.preds,this.forms);return cljs.core.every_QMARK_.call(null,cljs.core.identity,a)?cljs.core.apply.call(null,cljs.spec.gen.alpha.tuple,
+a):null},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.tuple_impl.call(null,this.forms,this.preds,b)},cljs.spec.alpha.t_cljs$spec$alpha17824.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$spec$alpha_SLASH_tuple,null,1,null),this.forms)))},cljs.spec.alpha.t_cljs$spec$alpha17824.getBasis=
+function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$forms,cljs.core.cst$sym$preds,cljs.core.cst$sym$gfn,cljs.core.cst$sym$specs,cljs.core.cst$sym$cnt,cljs.core.cst$sym$meta17825],null)},cljs.spec.alpha.t_cljs$spec$alpha17824.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17824.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17824",cljs.spec.alpha.t_cljs$spec$alpha17824.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,
+b,"cljs.spec.alpha/t_cljs$spec$alpha17824")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17824=function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha17824(a,b,c,d,e,m)};return new cljs.spec.alpha.t_cljs$spec$alpha17824(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.tuple_impl.cljs$lang$maxFixedArity=3;cljs.spec.alpha.tagged_ret=function(a,b){return new cljs.core.MapEntry(a,b,null)};
+cljs.spec.alpha.or_spec_impl=function(a,b,c,d){var e=cljs.core.random_uuid.call(null),f=cljs.core.zipmap.call(null,a,c),g=new cljs.core.Delay(function(){return cljs.core.mapv.call(null,cljs.spec.alpha.specize,c,b)},null),h=function(){switch(cljs.core.count.call(null,c)){case 2:return function(b){var c=cljs.core.deref.call(null,g),d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,0),b);return cljs.spec.alpha.invalid_QMARK_.call(null,d)?(b=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,1),
+b),cljs.spec.alpha.invalid_QMARK_.call(null,b)?cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid:cljs.spec.alpha.tagged_ret.call(null,a.call(null,1),b)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,0),d)};case 3:return function(b){var c=cljs.core.deref.call(null,g),d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,0),b);return cljs.spec.alpha.invalid_QMARK_.call(null,d)?(d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,1),b),cljs.spec.alpha.invalid_QMARK_.call(null,d)?(b=cljs.spec.alpha.conform_STAR_.call(null,
+c.call(null,2),b),cljs.spec.alpha.invalid_QMARK_.call(null,b)?cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid:cljs.spec.alpha.tagged_ret.call(null,a.call(null,2),b)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,1),d)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,0),d)};default:return function(b){for(var c=cljs.core.deref.call(null,g),d=0;;)if(de?1:e,d=0;;){if(d>=cljs.core.count.call(null,b))return b;if(cljs.spec.alpha.valid_QMARK_.call(null,
+a,cljs.core.nth.call(null,b,d)))d+=e;else return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid}else for(e=cljs.spec.alpha._STAR_coll_check_limit_STAR_,d=0,c=cljs.core.seq.call(null,b),g=cljs.core.seq.call(null,c),cljs.core.first.call(null,g),cljs.core.next.call(null,g);;){f=cljs.core.seq.call(null,c);g=cljs.core.first.call(null,f);f=cljs.core.next.call(null,f);h=c;if(null==h||cljs.core._EQ_.call(null,d,e))return b;if(cljs.spec.alpha.valid_QMARK_.call(null,a,g))c=f,d+=1;else return cljs.core.cst$kw$cljs$spec$alpha_SLASH_invalid}},
+cljs.spec.alpha.t_cljs$spec$alpha17917.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.conform_all)){a=cljs.core.deref.call(null,this.spec);var c=this.cfns.call(null,b),d=cljs.core.nth.call(null,c,0,null),e=cljs.core.nth.call(null,c,1,null);c=cljs.core.nth.call(null,c,2,null);d=d.call(null,b);var f=cljs.core.seq.call(null,b),g=cljs.core.seq.call(null,f);cljs.core.first.call(null,g);cljs.core.next.call(null,g);for(g=0;;){var h=cljs.core.seq.call(null,f);f=
+cljs.core.first.call(null,h);h=cljs.core.next.call(null,h);var k=f;f=h;if(g>=cljs.core.count.call(null,b))return c.call(null,d);d=e.call(null,d,g,k,cljs.spec.alpha.unform_STAR_.call(null,a,k));g+=1}}else return b},cljs.spec.alpha.t_cljs$spec$alpha17917.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){var f=this;a=cljs.spec.alpha.coll_prob.call(null,e,f.kind,f.kind_form,f.distinct,f.count,f.min_count,f.max_count,b,c,d);return cljs.core.truth_(a)?a:cljs.core.apply.call(null,
+cljs.core.concat,(cljs.core.truth_(f.conform_all)?cljs.core.identity:cljs.core.partial.call(null,cljs.core.take,cljs.spec.alpha._STAR_coll_error_limit_STAR_)).call(null,cljs.core.keep.call(null,cljs.core.identity,cljs.core.map.call(null,function(a,e){a=f.kfn.call(null,a,e);return cljs.core.truth_(f.check_QMARK_.call(null,e))?null:cljs.spec.alpha.explain_1.call(null,f.form,f.pred,b,c,cljs.core.conj.call(null,d,a),e)},cljs.core.range.call(null),e))))},cljs.spec.alpha.t_cljs$spec$alpha17917.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=
+function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.call(null);var f=cljs.spec.alpha.gensub.call(null,e.pred,b,c,d,e.form);return cljs.spec.gen.alpha.bind.call(null,cljs.core.truth_(e.gen_into)?cljs.spec.gen.alpha.return$.call(null,e.gen_into):cljs.core.truth_(e.kind)?cljs.spec.gen.alpha.fmap.call(null,function(a){return cljs.core.empty_QMARK_.call(null,a)?a:cljs.core.empty.call(null,a)},cljs.spec.alpha.gensub.call(null,e.kind,b,c,d,e.form)):cljs.spec.gen.alpha.return$.call(null,
+cljs.core.PersistentVector.EMPTY),function(a){return cljs.spec.gen.alpha.fmap.call(null,function(b){return cljs.core.vector_QMARK_.call(null,a)?b:cljs.core.into.call(null,a,b)},cljs.core.truth_(e.distinct)?cljs.core.truth_(e.count)?cljs.spec.gen.alpha.vector_distinct.call(null,f,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$num_DASH_elements,e.count,cljs.core.cst$kw$max_DASH_tries,100],null)):cljs.spec.gen.alpha.vector_distinct.call(null,f,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$min_DASH_elements,
+function(){var a=e.min_count;return cljs.core.truth_(a)?a:0}(),cljs.core.cst$kw$max_DASH_elements,function(){var a=e.max_count;if(cljs.core.truth_(a))return a;a=e.gen_max;var b=e.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}(),cljs.core.cst$kw$max_DASH_tries,100],null)):cljs.core.truth_(e.count)?cljs.spec.gen.alpha.vector.call(null,f,e.count):cljs.core.truth_(function(){var a=e.min_count;return cljs.core.truth_(a)?a:e.max_count}())?cljs.spec.gen.alpha.vector.call(null,f,function(){var a=
+e.min_count;return cljs.core.truth_(a)?a:0}(),function(){var a=e.max_count;if(cljs.core.truth_(a))return a;a=e.gen_max;var b=e.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}()):cljs.spec.gen.alpha.vector.call(null,f,0,e.gen_max))})},cljs.spec.alpha.t_cljs$spec$alpha17917.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.every_impl.call(null,this.form,this.pred,this.opts,b)},cljs.spec.alpha.t_cljs$spec$alpha17917.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=
+function(a){a=this.describe_form;return cljs.core.truth_(a)?a:cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$spec$alpha_SLASH_every,null,1,null),new cljs.core.List(null,this.form,null,1,null),cljs.core.mapcat.call(null,cljs.core.identity,this.opts))))},cljs.spec.alpha.t_cljs$spec$alpha17917.getBasis=function(){return new cljs.core.PersistentVector(null,25,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$form,
+cljs.core.cst$sym$max_DASH_count,cljs.core.cst$sym$check_QMARK_,cljs.core.cst$sym$gfn,cljs.core.cst$sym$gen_DASH_max,cljs.core.cst$sym$map__17915,cljs.core.cst$sym$pred,cljs.core.cst$sym$cpred,cljs.core.cst$sym$conform_DASH_keys,cljs.core.cst$sym$kind_DASH_form,cljs.core.cst$sym$addcv,cljs.core.cst$sym$cfns,cljs.core.cst$sym$describe_DASH_form,cljs.core.cst$sym$distinct,cljs.core.cst$sym$spec,cljs.core.cst$sym$p__17914,cljs.core.cst$sym$kfn,cljs.core.cst$sym$gen_DASH_into,cljs.core.cst$sym$count,
+cljs.core.cst$sym$min_DASH_count,cljs.core.cst$sym$opts,cljs.core.cst$sym$kind,cljs.core.cst$sym$conform_DASH_all,cljs.core.cst$sym$conform_DASH_into,cljs.core.cst$sym$meta17918],null)},cljs.spec.alpha.t_cljs$spec$alpha17917.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17917.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17917",cljs.spec.alpha.t_cljs$spec$alpha17917.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17917")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17917=
+function(a,b,c,d,e,f,g,h,k,l,n,m,p,q,r,t,u,w,v,x,y,z,W,V,aa){return new cljs.spec.alpha.t_cljs$spec$alpha17917(a,b,c,d,e,f,g,h,k,l,n,m,p,q,r,t,u,w,v,x,y,z,W,V,aa)};return new cljs.spec.alpha.t_cljs$spec$alpha17917(a,f,function(a){return cljs.spec.alpha.valid_QMARK_.call(null,cljs.core.deref.call(null,x),a)},d,h,e,b,k,l,g,z,function(a){return cljs.core.vector_QMARK_.call(null,a)&&(cljs.core.not.call(null,v)||cljs.core.vector_QMARK_.call(null,v))?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.identity,function(a,b,c,d){return c===d?a:cljs.core.assoc.call(null,a,b,d)},cljs.core.identity],null):cljs.core.truth_(cljs.core.map_QMARK_.call(null,a)?function(){var a=cljs.core.truth_(t)?cljs.core.not.call(null,v):t;return cljs.core.truth_(a)?a:cljs.core.map_QMARK_.call(null,v)}():!1)?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.truth_(l)?cljs.core.empty:cljs.core.identity,function(a,b,c,d){return c===d&&cljs.core.not.call(null,l)?a:cljs.core.assoc.call(null,
+a,cljs.core.nth.call(null,cljs.core.truth_(l)?d:c,0),cljs.core.nth.call(null,d,1))},cljs.core.identity],null):cljs.core.list_QMARK_.call(null,v)||cljs.core.seq_QMARK_.call(null,v)||cljs.core.not.call(null,v)&&(cljs.core.list_QMARK_.call(null,a)||cljs.core.seq_QMARK_.call(null,a))?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.empty,z,cljs.core.reverse],null):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.empty.call(null,
+cljs.core.truth_(v)?v:a)},z,cljs.core.identity],null)},m,n,x,c,y,w,q,r,e,t,u,v,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.every_impl.cljs$lang$maxFixedArity=4;cljs.spec.alpha.accept=function(a){return new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$cljs$spec$alpha_SLASH_op,cljs.core.cst$kw$cljs$spec$alpha_SLASH_accept,cljs.core.cst$kw$ret,a],null)};
+cljs.spec.alpha.accept_QMARK_=function(a){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,a,cljs.core.cst$kw$cljs$spec$alpha_SLASH_op);return cljs.core._EQ_.call(null,cljs.core.cst$kw$cljs$spec$alpha_SLASH_accept,a)};
+cljs.spec.alpha.pcat_STAR_=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a,c=cljs.core.get.call(null,b,cljs.core.cst$kw$ps);a=cljs.core.seq.call(null,c);var d=cljs.core.first.call(null,a);a=cljs.core.next.call(null,a);var e=cljs.core.get.call(null,b,cljs.core.cst$kw$ks),f=cljs.core.seq.call(null,e),g=cljs.core.first.call(null,f);f=cljs.core.next.call(null,f);var h=cljs.core.get.call(null,
+b,cljs.core.cst$kw$forms),k=cljs.core.seq.call(null,h);cljs.core.first.call(null,k);k=cljs.core.next.call(null,k);var l=cljs.core.get.call(null,b,cljs.core.cst$kw$ret);b=cljs.core.get.call(null,b,cljs.core.cst$kw$rep_PLUS_);return cljs.core.every_QMARK_.call(null,cljs.core.identity,c)?cljs.spec.alpha.accept_QMARK_.call(null,d)?(c=cljs.core.cst$kw$ret.cljs$core$IFn$_invoke$arity$1(d),c=cljs.core.conj.call(null,l,cljs.core.truth_(e)?cljs.core.PersistentArrayMap.createAsIfByAssoc([g,c]):c),a?cljs.spec.alpha.pcat_STAR_.call(null,
+new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$ps,a,cljs.core.cst$kw$ks,f,cljs.core.cst$kw$forms,k,cljs.core.cst$kw$ret,c],null)):cljs.spec.alpha.accept.call(null,c)):new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$cljs$spec$alpha_SLASH_op,cljs.core.cst$kw$cljs$spec$alpha_SLASH_pcat,cljs.core.cst$kw$ps,c,cljs.core.cst$kw$ret,l,cljs.core.cst$kw$ks,e,cljs.core.cst$kw$forms,h,cljs.core.cst$kw$rep_PLUS_,b],null):null};
+cljs.spec.alpha.pcat=function(a){for(var b=[],c=arguments.length,d=0;;)if(db?c:b,cljs.core.cst$kw$loop_DASH_msec,a,cljs.core.cst$kw$preamble,e,cljs.core.cst$kw$async_DASH_code_QMARK_,f,cljs.core.cst$kw$the_DASH_editor_DASH_type,d],null))};
+klipse.plugin.calc_editor_type=function(a,b){if(cljs.core.truth_(a))return cljs.core.cst$kw$dom;switch(b){case "code-mirror":return cljs.core.cst$kw$code_DASH_mirror;case "dom":return cljs.core.cst$kw$dom;case "html":return cljs.core.cst$kw$html;default:return cljs.core.cst$kw$code_DASH_mirror}};
+klipse.plugin.load_external_scripts=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(1===d)return cljs.core.truth_(b)?c[1]=2:c[1]=3,cljs.core.cst$kw$recur;if(2===d)return d=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$ok,cljs.core.cst$kw$ok],null),c[2]=d,c[1]=4,cljs.core.cst$kw$recur;if(3===d)return d=klipse.utils.load_scripts_mem.call(null,
+a),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,5,d);if(4===d)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,c[2]);if(5===d){var e=c[2],f=cljs.core.nth.call(null,e,0,null);d=cljs.core.nth.call(null,e,1,null);e=cljs.core.nth.call(null,e,2,null);f=cljs.core._EQ_.call(null,cljs.core.cst$kw$ok,f);c[7]=d;c[8]=e;c[1]=f?6:7;return cljs.core.cst$kw$recur}return 6===d?(d=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$ok,cljs.core.cst$kw$ok],
+null),c[2]=d,c[1]=8,cljs.core.cst$kw$recur):7===d?(e=c[8],d=c[7],f=cljs.core.PersistentVector.EMPTY_NODE,d=["Cannot load script: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),"\nError: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""),d=new cljs.core.PersistentVector(null,2,5,f,[cljs.core.cst$kw$error,d],null),c[2]=d,c[1]=8,cljs.core.cst$kw$recur):8===d?(c[2]=c[2],c[1]=4,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,
+null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+
+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse.plugin.klipsify_with_opts=function(a,b,c,d){b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;var e=cljs.core.get.call(null,b,cljs.core.cst$kw$no_dynamic_scripts),f=cljs.core.get.call(null,b,cljs.core.cst$kw$codemirror_options_in,cljs.core.PersistentArrayMap.EMPTY),g=cljs.core.get.call(null,b,cljs.core.cst$kw$eval_idle_msec,20),h=cljs.core.get.call(null,b,cljs.core.cst$kw$codemirror_options_out,
+cljs.core.PersistentArrayMap.EMPTY),k=cljs.core.get.call(null,b,cljs.core.cst$kw$print_length,1E3),l=cljs.core.get.call(null,b,cljs.core.cst$kw$editor_type),m=cljs.core.get.call(null,b,cljs.core.cst$kw$minimalistic_ui,!1),n=cljs.core.get.call(null,b,cljs.core.cst$kw$beautify_strings,!1),p=cljs.core.get.call(null,b,cljs.core.cst$kw$eval_context);c=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,c):c;var q=
+cljs.core.get.call(null,c,cljs.core.cst$kw$eval_DASH_fn),r=cljs.core.get.call(null,c,cljs.core.cst$kw$beautify_DASH_output_QMARK_,!0),t=cljs.core.get.call(null,c,cljs.core.cst$kw$no_DASH_result),u=cljs.core.get.call(null,c,cljs.core.cst$kw$default_DASH_editor),v=cljs.core.get.call(null,c,cljs.core.cst$kw$editor_DASH_out_DASH_mode),w=cljs.core.get.call(null,c,cljs.core.cst$kw$beautify_QMARK_,!0),x=cljs.core.get.call(null,c,cljs.core.cst$kw$min_DASH_eval_DASH_idle_DASH_msec,0),y=cljs.core.get.call(null,
+c,cljs.core.cst$kw$comment_DASH_str),z=cljs.core.get.call(null,c,cljs.core.cst$kw$editor_DASH_in_DASH_mode),F=cljs.core.get.call(null,c,cljs.core.cst$kw$external_DASH_scripts,cljs.core.PersistentVector.EMPTY),P=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var c=b[1];if(7===c)return b[2]=!1,b[1]=8,cljs.core.cst$kw$recur;if(20===c){var A=b[7];b[2]=A;b[1]=21;return cljs.core.cst$kw$recur}if(27===c){c=b[8];var D=b[2];c=cljs.core._EQ_.call(null,
+cljs.core.cst$kw$ok,c);b[9]=D;b[1]=c?28:29;return cljs.core.cst$kw$recur}if(1===c)return cljs.core.truth_(a)?b[1]=2:b[1]=3,cljs.core.cst$kw$recur;if(24===c){A=b[10];c=b[11];var B=b[12],C=b[13];A=b[7];var P=b[15];c=b[8];var H=b[17],O=b[18],N=b[2],M=function(){return function(a){var b=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var c=function(){var b=function(b){var c=b[1];return 1===c?cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,b,2,klipse.plugin.event_chan,
+a):2===c?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(ka){d=ka;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,
+d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),d=function(){var a=c.call(null);a[6]=b;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,d)});return b}}(),Q=klipse.plugin.snippet_num_BANG_.call(null);c=cljs.core._EQ_.call(null,cljs.core.cst$kw$ok,
+c);b[20]=N;b[21]=M;b[22]=Q;b[1]=c?25:26;return cljs.core.cst$kw$recur}if(4===c)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]);if(15===c)return c=b[23],b[2]=c,b[1]=17,cljs.core.cst$kw$recur;if(21===c){c=b[8];var R=b[2];c=cljs.core._EQ_.call(null,cljs.core.cst$kw$ok,c);b[24]=R;b[1]=c?22:23;return cljs.core.cst$kw$recur}if(13===c)return c=b[25],b[2]=c,b[1]=14,cljs.core.cst$kw$recur;if(22===c)return b[2]=w,b[1]=24,cljs.core.cst$kw$recur;if(29===c)return b[2]=!1,b[1]=30,cljs.core.cst$kw$recur;
+if(6===c)return c=b[25],A=cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$,c=c.cljs$lang$protocol_mask$partition0$&64||A,cljs.core.truth_(c)?b[1]=9:b[1]=10,cljs.core.cst$kw$recur;if(28===c)return b[2]=r,b[1]=30,cljs.core.cst$kw$recur;if(25===c)return c=b[11],b[2]=c,b[1]=27,cljs.core.cst$kw$recur;if(17===c)return A=klipse.plugin.calc_editor_type.call(null,m,b[2]),c=gadjett.collections.collify.call(null,F),c=klipse.plugin.load_external_scripts.call(null,c,e),b[10]=A,cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,
+b,18,c);if(3===c)return b[2]=null,b[1]=4,cljs.core.cst$kw$recur;if(12===c)return c=b[25],c=cljs.core.apply.call(null,cljs.core.hash_map,c),b[2]=c,b[1]=14,cljs.core.cst$kw$recur;if(2===c){c=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$eval_DASH_context,cljs.core.cst$kw$print_DASH_length,cljs.core.cst$kw$beautify_DASH_strings],[p,k,n]);var S=klipse.args_from_element.eval_args_from_element.call(null,a,c);c=function(){return function(a,b){return q.call(null,a,cljs.core.merge.call(null,S,b))}}();
+A=klipse.args_from_element.content.call(null,a,y);b[16]=S;b[11]=c;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,5,A)}return 23===c?(b[2]=!1,b[1]=24,cljs.core.cst$kw$recur):19===c?(b[2]=klipse.plugin.out_placeholder,b[1]=21,cljs.core.cst$kw$recur):11===c?(b[2]=b[2],b[1]=8,cljs.core.cst$kw$recur):9===c?(b[2]=!0,b[1]=11,cljs.core.cst$kw$recur):5===c?(c=b[25],H=b[2],c=klipse.plugin.calc_editor_args_from_element.call(null,a,g,x,l),A=cljs.core.not.call(null,null==c),b[17]=H,b[25]=c,b[1]=
+A?6:7,cljs.core.cst$kw$recur):14===c?(c=b[23],A=b[2],B=cljs.core.get.call(null,A,cljs.core.cst$kw$idle_DASH_msec),c=cljs.core.get.call(null,A,cljs.core.cst$kw$the_DASH_editor_DASH_type),C=cljs.core.get.call(null,A,cljs.core.cst$kw$loop_DASH_msec),P=cljs.core.get.call(null,A,cljs.core.cst$kw$async_DASH_code_QMARK_),O=cljs.core.get.call(null,A,cljs.core.cst$kw$preamble),b[14]=A,b[12]=B,b[23]=c,b[13]=C,b[15]=P,b[18]=O,cljs.core.truth_(c)?b[1]=15:b[1]=16,cljs.core.cst$kw$recur):26===c?(A=b[10],c=b[11],
+B=b[12],C=b[13],A=b[7],P=b[15],c=b[8],H=b[17],O=b[18],c=function(){return function(){return cljs.core.async.chan.call(null)}}(),b[2]=c,b[1]=27,cljs.core.cst$kw$recur):16===c?(b[2]=u,b[1]=17,cljs.core.cst$kw$recur):30===c?(R=b[24],N=b[20],B=b[12],C=b[13],M=b[21],P=b[15],H=b[17],O=b[18],Q=b[22],D=b[9],c=b[26],A=b[10],c=cljs.core.PersistentHashMap.fromArrays(c,[R,N,B,C,a,v,M,P,d,H,O,h,z,Q,D,t,f,b[2]]),c=klipse.klipse_editors.create_editor.call(null,A,c),b[2]=c,b[1]=4,cljs.core.cst$kw$recur):10===c?(b[2]=
+!1,b[1]=11,cljs.core.cst$kw$recur):18===c?(c=b[8],H=b[2],O=cljs.core.nth.call(null,H,0,null),A=cljs.core.nth.call(null,H,1,null),c=[cljs.core.cst$kw$default_DASH_txt,cljs.core.cst$kw$indent_QMARK_,cljs.core.cst$kw$idle_DASH_msec,cljs.core.cst$kw$loop_DASH_msec,cljs.core.cst$kw$element,cljs.core.cst$kw$editor_DASH_out_DASH_mode,cljs.core.cst$kw$on_DASH_edit_DASH_cb,cljs.core.cst$kw$async_DASH_code_QMARK_,cljs.core.cst$kw$mode,cljs.core.cst$kw$source_DASH_code,cljs.core.cst$kw$preamble,cljs.core.cst$kw$codemirror_DASH_options_DASH_out,
+cljs.core.cst$kw$editor_DASH_in_DASH_mode,cljs.core.cst$kw$snippet_DASH_num,cljs.core.cst$kw$eval_DASH_fn,cljs.core.cst$kw$no_DASH_result,cljs.core.cst$kw$codemirror_DASH_options_DASH_in,cljs.core.cst$kw$indent_DASH_output_QMARK_],D=cljs.core._EQ_.call(null,cljs.core.cst$kw$ok,O),b[19]=H,b[8]=O,b[7]=A,b[26]=c,b[1]=D?19:20,cljs.core.cst$kw$recur):8===c?(c=b[2],cljs.core.truth_(c)?b[1]=12:b[1]=13,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[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];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(I){d=I;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=
+function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),c=function(){var a=b.call(null);a[6]=P;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,c)});return P};cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$sym$goog$dom_SLASH_isElement,goog.dom.isElement);
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_in_DASH_mode,cljs.core.cst$sym$cljs$core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_out_DASH_mode,cljs.core.cst$sym$cljs$core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_eval_DASH_fn,cljs.core.cst$sym$cljs$core_SLASH_fn_QMARK_,cljs.core.fn_QMARK_);
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_comment_DASH_str,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_or,cljs.core.cst$kw$fn,cljs.core.cst$sym$cljs$core_SLASH_fn_QMARK_,cljs.core.cst$kw$str,cljs.core.cst$sym$cljs$core_SLASH_string_QMARK_),cljs.spec.alpha.or_spec_impl.call(null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$fn,cljs.core.cst$kw$str],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.cst$sym$cljs$core_SLASH_fn_QMARK_,cljs.core.cst$sym$cljs$core_SLASH_string_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.fn_QMARK_,cljs.core.string_QMARK_],null),null));cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_eval_idle_msec,cljs.core.cst$sym$cljs$core_SLASH_integer_QMARK_,cljs.core.integer_QMARK_);
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_minimalistic_ui,cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_or,cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH__EQ_,cljs.core.cst$sym$_PERCENT_,!0),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH__EQ_,cljs.core.cst$sym$_PERCENT_,!1))),function(a){return cljs.core._EQ_.call(null,
+a,!0)||cljs.core._EQ_.call(null,a,!1)});
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_options,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_keys,cljs.core.cst$kw$req_DASH_un,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_in_DASH_mode,cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_out_DASH_mode,cljs.core.cst$kw$klipse$plugin_SLASH_eval_DASH_fn,cljs.core.cst$kw$klipse$plugin_SLASH_comment_DASH_str],null)),cljs.spec.alpha.map_spec_impl.call(null,
+cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$req_DASH_un,cljs.core.cst$kw$opt_DASH_un,cljs.core.cst$kw$gfn,cljs.core.cst$kw$pred_DASH_exprs,cljs.core.cst$kw$keys_DASH_pred,cljs.core.cst$kw$opt_DASH_keys,cljs.core.cst$kw$req_DASH_specs,cljs.core.cst$kw$req,cljs.core.cst$kw$req_DASH_keys,cljs.core.cst$kw$opt_DASH_specs,cljs.core.cst$kw$pred_DASH_forms,cljs.core.cst$kw$opt],[new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_in_DASH_mode,
+cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_out_DASH_mode,cljs.core.cst$kw$klipse$plugin_SLASH_eval_DASH_fn,cljs.core.cst$kw$klipse$plugin_SLASH_comment_DASH_str],null),null,null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_.call(null,a)},function(a){return cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$editor_DASH_in_DASH_mode)},function(a){return cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$editor_DASH_out_DASH_mode)},
+function(a){return cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$eval_DASH_fn)},function(a){return cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$comment_DASH_str)}],null),function(a){return cljs.core.map_QMARK_.call(null,a)&&cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$editor_DASH_in_DASH_mode)&&cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$editor_DASH_out_DASH_mode)&&cljs.core.contains_QMARK_.call(null,a,cljs.core.cst$kw$eval_DASH_fn)&&cljs.core.contains_QMARK_.call(null,
+a,cljs.core.cst$kw$comment_DASH_str)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_in_DASH_mode,cljs.core.cst$kw$klipse$plugin_SLASH_editor_DASH_out_DASH_mode,cljs.core.cst$kw$klipse$plugin_SLASH_eval_DASH_fn,cljs.core.cst$kw$klipse$plugin_SLASH_comment_DASH_str],null),null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,
+cljs.core.cst$kw$editor_DASH_out_DASH_mode,cljs.core.cst$kw$eval_DASH_fn,cljs.core.cst$kw$comment_DASH_str],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_map_QMARK_,cljs.core.cst$sym$_PERCENT_)),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,
+new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_contains_QMARK_,cljs.core.cst$sym$_PERCENT_,cljs.core.cst$kw$editor_DASH_in_DASH_mode)),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_contains_QMARK_,cljs.core.cst$sym$_PERCENT_,
+cljs.core.cst$kw$editor_DASH_out_DASH_mode)),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_contains_QMARK_,cljs.core.cst$sym$_PERCENT_,cljs.core.cst$kw$eval_DASH_fn)),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),
+cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_contains_QMARK_,cljs.core.cst$sym$_PERCENT_,cljs.core.cst$kw$comment_DASH_str))],null),null])));
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_keys,cljs.core.cst$kw$opt_DASH_un,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_eval_idle_msec,cljs.core.cst$kw$klipse$plugin_SLASH_minimalistic_ui],null)),cljs.spec.alpha.map_spec_impl.call(null,cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$req_DASH_un,cljs.core.cst$kw$opt_DASH_un,
+cljs.core.cst$kw$gfn,cljs.core.cst$kw$pred_DASH_exprs,cljs.core.cst$kw$keys_DASH_pred,cljs.core.cst$kw$opt_DASH_keys,cljs.core.cst$kw$req_DASH_specs,cljs.core.cst$kw$req,cljs.core.cst$kw$req_DASH_keys,cljs.core.cst$kw$opt_DASH_specs,cljs.core.cst$kw$pred_DASH_forms,cljs.core.cst$kw$opt],[null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_eval_idle_msec,cljs.core.cst$kw$klipse$plugin_SLASH_minimalistic_ui],null),null,new cljs.core.PersistentVector(null,
+1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_.call(null,a)}],null),function(a){return cljs.core.map_QMARK_.call(null,a)},new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$eval_idle_msec,cljs.core.cst$kw$minimalistic_ui],null),cljs.core.PersistentVector.EMPTY,null,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_eval_idle_msec,
+cljs.core.cst$kw$klipse$plugin_SLASH_minimalistic_ui],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$_PERCENT_],null),cljs.core.list(cljs.core.cst$sym$cljs$core_SLASH_map_QMARK_,cljs.core.cst$sym$_PERCENT_))],null),null])));
+cljs.spec.alpha.def_impl.call(null,cljs.core.cst$sym$klipse$plugin_SLASH_klipsify_DASH_with_DASH_opts,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_fspec,cljs.core.cst$kw$args,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_cat,cljs.core.cst$kw$element,cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$kw$settings,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.cst$kw$opts,cljs.core.cst$kw$klipse$plugin_SLASH_options)),cljs.spec.alpha.fspec_impl.call(null,
+cljs.spec.alpha.spec_impl.call(null,cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_cat,cljs.core.cst$kw$element,cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$kw$settings,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.cst$kw$opts,cljs.core.cst$kw$klipse$plugin_SLASH_options),cljs.spec.alpha.cat_impl.call(null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$element,cljs.core.cst$kw$settings,cljs.core.cst$kw$opts],
+null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.cst$kw$klipse$plugin_SLASH_options],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.cst$kw$klipse$plugin_SLASH_options],null)),null,null),
+cljs.core.list(cljs.core.cst$sym$cljs$spec$alpha_SLASH_cat,cljs.core.cst$kw$element,cljs.core.cst$kw$klipse$plugin_SLASH_dom_DASH_element,cljs.core.cst$kw$settings,cljs.core.cst$kw$klipse$plugin_SLASH_klipse_DASH_settings,cljs.core.cst$kw$opts,cljs.core.cst$kw$klipse$plugin_SLASH_options),cljs.spec.alpha.spec_impl.call(null,cljs.core.cst$sym$cljs$core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs.core.cst$sym$cljs$core_SLASH_any_QMARK_,null,null,null));
+klipse.plugin.klipsify=function(a,b,c){var d=cljs.core.deref.call(null,klipse.common.registry.mode_options).call(null,c);if(cljs.core.truth_(d)){var e=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var f=function(){var e=function(e){var f=e[1];return 1===f?(f=klipse.plugin.klipsify_with_opts.call(null,a,b,d,c),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,e,3,f)):2===f?cljs.core.async.impl.ioc_helpers.return_chan.call(null,e,e[2]):3===f?(f=e[2].call(null),
+cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,e,2,f)):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},c=function(a){for(;;){a:try{for(;;){var b=e.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var c=b;break a}}}catch(r){c=r;a[2]=c;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw c;c=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,
+c,cljs.core.cst$kw$recur))return c}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return c.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=c;return a}()}(),g=function(){var a=f.call(null);a[6]=e;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,g)})}else e=cljs.core.async.chan.call(null,1),cljs.core.async.impl.dispatch.run.call(null,function(){var a=function(){var a=
+function(a){if(1===a[1]){var b=cljs.core.deref.call(null,klipse.common.registry.mode_options);b=cljs.core.keys.call(null,b);b=console.error("cannot find options for mode: ",c,". Supported modes: ",b);return cljs.core.async.impl.ioc_helpers.return_chan.call(null,a,b)}return null};return function(){var b=null,c=function(){var a=[null,null,null,null,null,null,null];a[0]=b;a[1]=1;return a},d=function(b){for(;;){a:try{for(;;){var c=a.call(null,b);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=
+c;break a}}}catch(r){d=r;b[2]=d;if(cljs.core.seq.call(null,b[4]))b[1]=cljs.core.first.call(null,b[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};b=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};b.cljs$core$IFn$_invoke$arity$0=c;b.cljs$core$IFn$_invoke$arity$1=d;return b}()}(),b=function(){var b=a.call(null);b[6]=e;return b}();
+return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,b)});return e};goog.exportSymbol("klipse.plugin.klipsify",klipse.plugin.klipsify);
+klipse.plugin.klipsify_no_eval=function(a,b,c){var d=cljs.core.deref.call(null,klipse.common.registry.mode_options).call(null,c);if(cljs.core.truth_(d))return klipse.plugin.klipsify_with_opts.call(null,a,b,d,c);var e=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var a=function(){var a=function(a){if(1===a[1]){var b=function(){return function(){var a=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var a=
+function(a){if(1===a[1]){var b=cljs.core.deref.call(null,klipse.common.registry.mode_options);b=cljs.core.keys.call(null,b);b=console.error("cannot find options for mode: ",c,". Supported modes: ",b);return cljs.core.async.impl.ioc_helpers.return_chan.call(null,a,b)}return null};return function(){var b=null,c=function(){var a=[null,null,null,null,null,null,null];a[0]=b;a[1]=1;return a},d=function(b){for(;;){a:try{for(;;){var c=a.call(null,b);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=
+c;break a}}}catch(y){d=y;b[2]=d;if(cljs.core.seq.call(null,b[4]))b[1]=cljs.core.first.call(null,b[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};b=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};b.cljs$core$IFn$_invoke$arity$0=c;b.cljs$core$IFn$_invoke$arity$1=d;return b}()}(),d=function(){var c=b.call(null);c[6]=a;return c}();
+return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,d)});return a}}();return cljs.core.async.impl.ioc_helpers.return_chan.call(null,a,b)}return null};return function(){var b=null,c=function(){var a=[null,null,null,null,null,null,null];a[0]=b;a[1]=1;return a},d=function(b){for(;;){a:try{for(;;){var c=a.call(null,b);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(r){d=r;b[2]=d;if(cljs.core.seq.call(null,b[4]))b[1]=cljs.core.first.call(null,
+b[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};b=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};b.cljs$core$IFn$_invoke$arity$0=c;b.cljs$core$IFn$_invoke$arity$1=d;return b}()}(),b=function(){var b=a.call(null);b[6]=e;return b}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,b)});return e};
+goog.exportSymbol("klipse.plugin.klipsify_no_eval",klipse.plugin.klipsify_no_eval);
+klipse.plugin.edit_elements=function(a,b,c){var d=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var e=function(){var d=function(d){var e=d[1];if(7===e)return e=klipse.plugin.klipsify_no_eval.call(null,d[7],b,d[8]),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,d,10,e);if(1===e){var f=a;e=cljs.core.PersistentVector.EMPTY;d[9]=f;d[10]=e;d[2]=null;d[1]=2;return cljs.core.cst$kw$recur}if(4===e){f=d[9];var g=cljs.core.first.call(null,f);e=c.call(null,g);
+d[7]=g;d[8]=e;cljs.core.truth_(e)?d[1]=7:d[1]=8;return cljs.core.cst$kw$recur}return 6===e?(d[2]=d[2],d[1]=3,cljs.core.cst$kw$recur):3===e?cljs.core.async.impl.ioc_helpers.return_chan.call(null,d,d[2]):2===e?(f=d[9],e=cljs.core.seq.call(null,f),d[1]=e?4:5,cljs.core.cst$kw$recur):9===e?(d[2]=d[2],d[1]=6,cljs.core.cst$kw$recur):5===e?(e=d[10],d[2]=e,d[1]=6,cljs.core.cst$kw$recur):10===e?(f=d[9],e=d[10],g=d[2],f=cljs.core.rest.call(null,f),e=cljs.core.conj.call(null,e,g),d[9]=f,d[10]=e,d[2]=null,d[1]=
+2,cljs.core.cst$kw$recur):8===e?(f=d[9],e=d[10],g=cljs.core.rest.call(null,f),d[9]=g,d[10]=e,d[2]=null,d[1]=2,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},c=function(a){for(;;){a:try{for(;;){var b=d.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var c=b;break a}}}catch(q){c=q;a[2]=c;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,
+a[4]);else throw c;c=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur))return c}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return c.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=c;return a}()}(),f=function(){var a=e.call(null);a[6]=d;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,f)});return d};
+klipse.plugin.eval_snippets_on_change=function(a,b){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,a,cljs.core.cst$kw$re_evaluate_all_snippets_on_change);if(cljs.core.truth_(a)){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var a=function(){var a=function(a){var c=a[1];if(7===c){var d=a[7],e=a[8];c=a[9];var f=a[10],g=cljs.core._nth.call(null,
+d,e).call(null);a[11]=g;a[9]=c;a[7]=d;a[10]=f;a[8]=e+1;a[2]=null;a[1]=5;return cljs.core.cst$kw$recur}return 1===c?cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,a,2,klipse.plugin.event_chan):4===c?cljs.core.async.impl.ioc_helpers.return_chan.call(null,a,a[2]):15===c?(a[2]=a[2],a[1]=12,cljs.core.cst$kw$recur):13===c?(d=a[12],c=cljs.core.chunk_first.call(null,d),d=cljs.core.chunk_rest.call(null,d),e=cljs.core.count.call(null,c),a[9]=d,a[7]=c,a[10]=e,a[8]=0,a[2]=null,a[1]=5,cljs.core.cst$kw$recur):
+6===c?(a[13]=a[2],cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,a,16,klipse.plugin.event_chan)):3===c?(c=cljs.core.seq.call(null,b),a[9]=c,a[7]=null,a[10]=0,a[8]=0,a[2]=null,a[1]=5,cljs.core.cst$kw$recur):12===c?(a[2]=a[2],a[1]=9,cljs.core.cst$kw$recur):2===c?(c=a[2],a[14]=c,a[2]=null,a[1]=3,cljs.core.cst$kw$recur):11===c?(a[2]=null,a[1]=12,cljs.core.cst$kw$recur):9===c?(a[2]=a[2],a[1]=6,cljs.core.cst$kw$recur):5===c?(e=a[8],f=a[10],c=ecljs.core.count.call(null,c))throw cljs.analyzer.compile_syntax_error.call(null,b,"Too few arguments to if",cljs.core.cst$sym$if);if(4=cljs.core.count.call(null,d)?(d=cljs.analyzer.analyze.call(null,b,cljs.core.first.call(null,d)),e=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$statements,cljs.core.cst$kw$ret],null)):(e=cljs.core._EQ_.call(null,cljs.core.cst$kw$statement,
+cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))?cljs.core.assoc.call(null,b,cljs.core.cst$kw$context,cljs.core.cst$kw$statement):cljs.core.assoc.call(null,b,cljs.core.cst$kw$context,cljs.core.cst$kw$return),d=cljs.analyzer.analyze.call(null,e,cljs.core.last.call(null,d)),e=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$statements,cljs.core.cst$kw$ret],null));return new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$op,cljs.core.cst$kw$do,
+cljs.core.cst$kw$env,b,cljs.core.cst$kw$form,c,cljs.core.cst$kw$statements,a,cljs.core.cst$kw$ret,d,cljs.core.cst$kw$children,e],null)});cljs.analyzer.analyze_let_binding_init=function(a,b,c){var d=cljs.analyzer._STAR_loop_lets_STAR_;cljs.analyzer._STAR_loop_lets_STAR_=c;try{return cljs.analyzer.analyze.call(null,a,b)}finally{cljs.analyzer._STAR_loop_lets_STAR_=d}};
+cljs.analyzer.get_let_tag=function(a,b){a=cljs.core.cst$kw$tag.cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,a));return null==a?(a=cljs.core.cst$kw$tag.cljs$core$IFn$_invoke$arity$1(b),null==a?cljs.core.cst$kw$tag.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$info.cljs$core$IFn$_invoke$arity$1(b)):a):a};
+cljs.analyzer.analyze_let_bindings_STAR_=function(a,b,c){var d=cljs.core.PersistentVector.EMPTY,e=cljs.core.assoc.call(null,a,cljs.core.cst$kw$context,cljs.core.cst$kw$expr);for(b=cljs.core.seq.call(null,cljs.core.partition.call(null,2,b));;){var f=cljs.core.first.call(null,b);if(null==f)return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,e],null);var g=f,h=cljs.core.nth.call(null,g,0,null),k=cljs.core.nth.call(null,g,1,null);if(null!=cljs.core.namespace.call(null,
+h)||goog.string.contains(cljs.core.str.cljs$core$IFn$_invoke$arity$1(h),"."))throw cljs.analyzer.error.call(null,a,["Invalid local name: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(h)].join(""));var l=cljs.analyzer.analyze_let_binding_init.call(null,e,k,cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$params,d],null),cljs.analyzer._STAR_loop_lets_STAR_)),m=cljs.analyzer.get_line.call(null,h,e),n=cljs.analyzer.get_col.call(null,h,e),p=cljs.analyzer.handle_symbol_local.call(null,
+h,cljs.core.get_in.call(null,e,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$locals,h],null))),q=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$init,cljs.core.cst$kw$name,cljs.core.cst$kw$binding_DASH_form_QMARK_,cljs.core.cst$kw$op,cljs.core.cst$kw$env,cljs.core.cst$kw$column,cljs.core.cst$kw$line,cljs.core.cst$kw$info,cljs.core.cst$kw$tag,cljs.core.cst$kw$shadow,cljs.core.cst$kw$local],[l,h,!0,cljs.core.cst$kw$binding,new cljs.core.PersistentArrayMap(null,
+2,[cljs.core.cst$kw$line,m,cljs.core.cst$kw$column,n],null),n,m,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$name,h,cljs.core.cst$kw$shadow,p],null),cljs.analyzer.get_let_tag.call(null,h,l),p,c]);f=cljs.core._EQ_.call(null,cljs.core.cst$kw$fn,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(l))?cljs.core.merge.call(null,q,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$fn_DASH_var,!0,cljs.core.cst$kw$methods,cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,cljs.core.map.call(null,
+function(a,b,c,d,e,f,g,h,k,l,m,n){return function(a){return cljs.core.select_keys.call(null,a,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$tag,cljs.core.cst$kw$fixed_DASH_arity,cljs.core.cst$kw$variadic_QMARK_],null))}}(d,e,b,l,m,n,p,q,g,h,k,f),cljs.core.cst$kw$methods.cljs$core$IFn$_invoke$arity$1(l))),cljs.core.cst$kw$variadic_QMARK_,cljs.core.cst$kw$variadic_QMARK_.cljs$core$IFn$_invoke$arity$1(l),cljs.core.cst$kw$max_DASH_fixed_DASH_arity,cljs.core.cst$kw$max_DASH_fixed_DASH_arity.cljs$core$IFn$_invoke$arity$1(l),
+cljs.core.cst$kw$method_DASH_params,cljs.core.map.call(null,cljs.core.cst$kw$params,cljs.core.cst$kw$methods.cljs$core$IFn$_invoke$arity$1(l))],null)):q;d=cljs.core.conj.call(null,d,f);e=cljs.core.assoc_in.call(null,e,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$locals,h],null),f);b=cljs.core.next.call(null,b)}};
+cljs.analyzer.analyze_let_bindings=function(a,b,c){var d=cljs.analyzer._STAR_recur_frames_STAR_,e=cljs.core.cons.call(null,null,cljs.analyzer._STAR_recur_frames_STAR_);cljs.analyzer._STAR_recur_frames_STAR_=e;try{return cljs.analyzer.analyze_let_bindings_STAR_.call(null,a,b,c)}finally{cljs.analyzer._STAR_recur_frames_STAR_=d}};
+cljs.analyzer.analyze_let_body_STAR_=function(a,b,c){return cljs.analyzer.analyze.call(null,cljs.core.assoc.call(null,a,cljs.core.cst$kw$context,cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,b)?cljs.core.cst$kw$return:b),cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$do,null,1,null),c))))};
+cljs.analyzer.analyze_let_body=function(a,b,c,d,e){var f=cljs.analyzer._STAR_recur_frames_STAR_,g=cljs.analyzer._STAR_loop_lets_STAR_;cljs.analyzer._STAR_recur_frames_STAR_=d;cljs.analyzer._STAR_loop_lets_STAR_=e;try{return cljs.analyzer.analyze_let_body_STAR_.call(null,a,b,c)}finally{cljs.analyzer._STAR_loop_lets_STAR_=g,cljs.analyzer._STAR_recur_frames_STAR_=f}};
+cljs.analyzer.analyze_let=function(a,b,c,d){for(;;){var e=b,f=cljs.core.seq.call(null,e),g=cljs.core.first.call(null,f),h=cljs.core.next.call(null,f),k=g,l=cljs.core.first.call(null,h),m=cljs.core.next.call(null,h),n=l,p=m,q=e;if(!cljs.core.vector_QMARK_.call(null,n)||!cljs.core.even_QMARK_.call(null,cljs.core.count.call(null,n)))throw cljs.analyzer.error.call(null,a,"bindings must be vector of even number of elements");var r=cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(a),t=!0===c?cljs.core.cst$kw$loop:
+cljs.core.cst$kw$let;b=cljs.core.truth_(d)?cljs.core.vec.call(null,cljs.core.mapcat.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){return function(a,b){var c=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.vary_meta.call(null,c,cljs.core.assoc,cljs.core.cst$kw$tag,b),a],null)}}(a,b,c,d,r,t,e,f,g,h,k,l,m,n,p,q),cljs.core.partition.call(null,2,n),d)):n;b=cljs.analyzer.analyze_let_bindings.call(null,
+function(){var b=a;return!0===c?cljs.core.assoc.call(null,b,cljs.core.cst$kw$in_DASH_loop,!0):b}(),b,t);var u=cljs.core.nth.call(null,b,0,null),v=cljs.core.nth.call(null,b,1,null),w=!0===c?new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$params,u,cljs.core.cst$kw$flag,cljs.core.atom.call(null,null),cljs.core.cst$kw$tags,cljs.core.atom.call(null,cljs.core.mapv.call(null,cljs.core.cst$kw$tag,u))],null):null,x=cljs.core.truth_(w)?cljs.core.cons.call(null,w,cljs.analyzer._STAR_recur_frames_STAR_):
+cljs.analyzer._STAR_recur_frames_STAR_,y=!0===c?cljs.analyzer._STAR_loop_lets_STAR_:null!=cljs.analyzer._STAR_loop_lets_STAR_?cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$params,u],null),cljs.analyzer._STAR_loop_lets_STAR_):null,z=cljs.core.truth_(function(){var a=c;return cljs.core.truth_(a)?cljs.core.not.call(null,d):a}())?cljs.core.atom.call(null,cljs.core.PersistentVector.EMPTY):null;b=cljs.core.truth_(z)?function(){var a=cljs.analyzer._STAR_cljs_warning_handlers_STAR_,
+b=new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.analyzer.accumulating_warning_handler.call(null,z)],null);cljs.analyzer._STAR_cljs_warning_handlers_STAR_=b;try{return cljs.analyzer.analyze_let_body.call(null,v,r,p,x,y)}finally{cljs.analyzer._STAR_cljs_warning_handlers_STAR_=a}}():cljs.analyzer.analyze_let_body.call(null,v,r,p,x,y);e=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$bindings,cljs.core.cst$kw$body],
+null);var F=cljs.core.fnil.call(null,cljs.core.identity,cljs.core.cst$sym$any);if(cljs.core.truth_(function(){var a=c;return cljs.core.truth_(a)?cljs.core.not.call(null,d)&&cljs.core.not_EQ_.call(null,cljs.core.mapv.call(null,F,cljs.core.deref.call(null,cljs.core.cst$kw$tags.cljs$core$IFn$_invoke$arity$1(w))),cljs.core.mapv.call(null,cljs.core.comp.call(null,F,cljs.core.cst$kw$tag),u)):a}()))t=a,b=q,q=c,e=cljs.core.deref.call(null,cljs.core.cst$kw$tags.cljs$core$IFn$_invoke$arity$1(w)),a=t,c=q,d=
+e;else return cljs.core.truth_(z)&&cljs.analyzer.replay_accumulated_warnings.call(null,z),new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$op,t,cljs.core.cst$kw$env,a,cljs.core.cst$kw$bindings,u,cljs.core.cst$kw$body,cljs.core.assoc.call(null,b,cljs.core.cst$kw$body_QMARK_,!0),cljs.core.cst$kw$form,q,cljs.core.cst$kw$children,e],null)}};cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$let_STAR_,function(a,b,c,d,e){return cljs.analyzer.analyze_let.call(null,b,c,!1,null)});
+cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$loop_STAR_,function(a,b,c,d,e){return cljs.analyzer.analyze_let.call(null,b,c,!0,null)});
+cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$recur,function(a,b,c,d,e){a=cljs.core.seq.call(null,c);cljs.core.first.call(null,a);var f=cljs.core.next.call(null,a);cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b);var g=cljs.core.first.call(null,cljs.analyzer._STAR_recur_frames_STAR_),h=function(){var a=cljs.core.cst$kw$protocol_DASH_impl.cljs$core$IFn$_invoke$arity$1(g);return cljs.core.truth_(a)?cljs.core._EQ_.call(null,cljs.core.count.call(null,f),cljs.core.count.call(null,
+cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(g))-1):a}(),k=cljs.core.truth_(h)?cljs.core.cons.call(null,null,f):f,l=function(){var a=cljs.analyzer._STAR_recur_frames_STAR_,c=cljs.core.cons.call(null,null,cljs.analyzer._STAR_recur_frames_STAR_);cljs.analyzer._STAR_recur_frames_STAR_=c;try{return cljs.core.vec.call(null,cljs.core.map.call(null,function(a){return cljs.analyzer.analyze.call(null,cljs.core.assoc.call(null,b,cljs.core.cst$kw$context,cljs.core.cst$kw$expr),a)},k))}finally{cljs.analyzer._STAR_recur_frames_STAR_=
+a}}();if(!cljs.core.truth_(g))throw cljs.analyzer.error.call(null,b,"Can't recur here");if(!cljs.core._EQ_.call(null,cljs.core.count.call(null,l),cljs.core.count.call(null,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(g))))throw cljs.analyzer.error.call(null,b,["recur argument count mismatch, expected: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count.call(null,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(g)))," args, got: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count.call(null,
+l))].join(""));cljs.core.truth_(function(){var a=cljs.core.cst$kw$protocol_DASH_impl.cljs$core$IFn$_invoke$arity$1(g);return cljs.core.truth_(a)?cljs.core.not.call(null,h):a}())&&cljs.analyzer.warning.call(null,cljs.core.cst$kw$protocol_DASH_impl_DASH_recur_DASH_with_DASH_target,b,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$form,cljs.core.cst$kw$form.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,l))],null));cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$flag.cljs$core$IFn$_invoke$arity$1(g),
+!0);cljs.core.swap_BANG_.call(null,cljs.core.cst$kw$tags.cljs$core$IFn$_invoke$arity$1(g),function(a){return cljs.core.mapv.call(null,function(a,b){return cljs.core._EQ_.call(null,cljs.core.cst$kw$loop,cljs.core.cst$kw$local.cljs$core$IFn$_invoke$arity$1(b))?cljs.core.cst$sym$any:cljs.analyzer.add_types.call(null,a,cljs.core.cst$kw$tag.cljs$core$IFn$_invoke$arity$1(b))},a,l)});return cljs.core.assoc.call(null,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$env,b,cljs.core.cst$kw$op,cljs.core.cst$kw$recur,
+cljs.core.cst$kw$form,c],null),cljs.core.cst$kw$frame,g,cljs.core.cst$kw$exprs,l,cljs.core.cst$kw$children,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$exprs],null))});
+cljs.analyzer.analyze_const=function(a,b){var c=cljs.analyzer.analyze.call(null,cljs.core.assoc.call(null,a,cljs.core.cst$kw$quoted_QMARK_,!0),b);c=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,c):c;c=cljs.core.get.call(null,c,cljs.core.cst$kw$tag);return new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$op,cljs.core.cst$kw$const,cljs.core.cst$kw$env,a,cljs.core.cst$kw$literal_QMARK_,!0,cljs.core.cst$kw$val,
+b,cljs.core.cst$kw$tag,c,cljs.core.cst$kw$form,b],null)};
+cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$quote,function(a,b,c,d,e){cljs.core.nth.call(null,c,0,null);a=cljs.core.nth.call(null,c,1,null);if(cljs.core.not_EQ_.call(null,2,cljs.core.count.call(null,c)))throw cljs.analyzer.error.call(null,b,"Wrong number of args to quote");a=cljs.analyzer.analyze_const.call(null,b,a);return new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$op,cljs.core.cst$kw$quote,cljs.core.cst$kw$expr,a,cljs.core.cst$kw$env,b,cljs.core.cst$kw$form,
+c,cljs.core.cst$kw$tag,cljs.core.cst$kw$tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$children,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$expr],null)],null)});
+cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$new,function(a,b,c,d,e){a=cljs.core.seq.call(null,c);cljs.core.first.call(null,a);a=cljs.core.next.call(null,a);var f=cljs.core.first.call(null,a);a=cljs.core.next.call(null,a);d=cljs.analyzer._STAR_recur_frames_STAR_;e=cljs.core.cons.call(null,null,cljs.analyzer._STAR_recur_frames_STAR_);cljs.analyzer._STAR_recur_frames_STAR_=e;try{var g=cljs.core.assoc.call(null,b,cljs.core.cst$kw$context,cljs.core.cst$kw$expr),h=cljs.analyzer.analyze.call(null,
+g,f),k=cljs.core.truth_((new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$var,null,cljs.core.cst$kw$js_DASH_var,null,cljs.core.cst$kw$local,null],null),null)).call(null,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(h)))?cljs.analyzer.resolve_existing_var.call(null,b,f):null,l=cljs.core.truth_(function(){var a=cljs.core.cst$kw$record.cljs$core$IFn$_invoke$arity$1(k);return cljs.core.truth_(a)?cljs.core.not.call(null,cljs.core.cst$kw$internal_DASH_ctor.cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,
+f))):a}())?cljs.core.repeat.call(null,3,cljs.analyzer.analyze.call(null,g,null)):null,m=cljs.core.into.call(null,cljs.core.vec.call(null,cljs.core.map.call(null,function(a){return cljs.analyzer.analyze.call(null,g,a)},a)),l),n=cljs.core.cst$kw$num_DASH_fields.cljs$core$IFn$_invoke$arity$1(k),p=cljs.core.count.call(null,a);cljs.core.not.call(null,cljs.core.cst$kw$internal_DASH_ctor.cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,f)))&&null!=n&&cljs.core.not_EQ_.call(null,n,p)&&cljs.analyzer.warning.call(null,
+cljs.core.cst$kw$fn_DASH_arity,b,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$argc,p,cljs.core.cst$kw$ctor,f],null));return new cljs.core.PersistentArrayMap(null,7,[cljs.core.cst$kw$env,b,cljs.core.cst$kw$op,cljs.core.cst$kw$new,cljs.core.cst$kw$form,c,cljs.core.cst$kw$class,h,cljs.core.cst$kw$args,m,cljs.core.cst$kw$children,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$class,cljs.core.cst$kw$args],null),cljs.core.cst$kw$tag,function(){var a=
+cljs.core.cst$kw$name.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$info.cljs$core$IFn$_invoke$arity$1(h)),b=(new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$sym$js_SLASH_Object,cljs.core.cst$sym$object,cljs.core.cst$sym$js_SLASH_String,cljs.core.cst$sym$string,cljs.core.cst$sym$js_SLASH_Array,cljs.core.cst$sym$array,cljs.core.cst$sym$js_SLASH_Number,cljs.core.cst$sym$number,cljs.core.cst$sym$js_SLASH_Function,cljs.core.cst$sym$function,cljs.core.cst$sym$js_SLASH_Boolean,cljs.core.cst$sym$boolean],
+null)).call(null,a);return cljs.core.truth_(b)?b:a}()],null)}finally{cljs.analyzer._STAR_recur_frames_STAR_=d}});
+cljs.core._add_method.call(null,cljs.analyzer.parse,cljs.core.cst$sym$set_BANG_,function(a,b,c,d,e){cljs.core.nth.call(null,c,0,null);a=cljs.core.nth.call(null,c,1,null);d=cljs.core.nth.call(null,c,2,null);e=cljs.core.nth.call(null,c,3,null);a=cljs.core.truth_(e)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$_DOT_,null,1,null),new cljs.core.List(null,
+a,null,1,null),new cljs.core.List(null,d,null,1,null)))),e],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,d],null);var f=cljs.core.nth.call(null,a,0,null),g=cljs.core.nth.call(null,a,1,null);a=cljs.analyzer._STAR_recur_frames_STAR_;d=cljs.core.cons.call(null,null,cljs.analyzer._STAR_recur_frames_STAR_);cljs.analyzer._STAR_recur_frames_STAR_=d;try{var h=cljs.analyzer._STAR_private_var_access_nowarn_STAR_;cljs.analyzer._STAR_private_var_access_nowarn_STAR_=!0;
+try{var k=cljs.core.assoc.call(null,b,cljs.core.cst$kw$context,cljs.core.cst$kw$expr),l=f instanceof cljs.core.Symbol?function(){cljs.core._EQ_.call(null,f,cljs.core.cst$sym$_STAR_unchecked_DASH_if_STAR_)&&(!0===g||!1===g)||cljs.core._EQ_.call(null,f,cljs.core.cst$sym$_STAR_unchecked_DASH_arrays_STAR_)&&(!0===g||!1===g)||!cljs.core._EQ_.call(null,f,cljs.core.cst$sym$_STAR_warn_DASH_on_DASH_infer_STAR_)||!0!==g&&!1!==g||(cljs.analyzer._STAR_cljs_warnings_STAR_=cljs.core.assoc.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_,
+cljs.core.cst$kw$infer_DASH_warning,g));if(null!=cljs.core.cst$kw$const.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.resolve_var.call(null,cljs.core.dissoc.call(null,b,cljs.core.cst$kw$locals),f)))throw cljs.analyzer.error.call(null,b,"Can't set! a constant");var a=cljs.analyzer.handle_symbol_local.call(null,f,f.call(null,cljs.core.cst$kw$locals.cljs$core$IFn$_invoke$arity$1(b)));if(!cljs.core.truth_(function(){var b=null==a;if(b)return b;b=cljs.core.cst$kw$field.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.truth_(b)){b=
+cljs.core.cst$kw$mutable.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.truth_(b))return b;b=cljs.core.cst$kw$unsynchronized_DASH_mutable.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:cljs.core.cst$kw$volatile_DASH_mutable.cljs$core$IFn$_invoke$arity$1(a)}return b}()))throw cljs.analyzer.error.call(null,b,"Can't set! local var or non-mutable field");return cljs.analyzer.analyze_symbol.call(null,k,f)}():cljs.core.seq_QMARK_.call(null,f)?function(){var a=cljs.analyzer.analyze_seq.call(null,
+k,f,null);return cljs.core.truth_(cljs.core.cst$kw$field.cljs$core$IFn$_invoke$arity$1(a))?a:null}():null,m=cljs.analyzer.analyze.call(null,k,g);if(cljs.core.seq_QMARK_.call(null,f)){var n=null==f?null:cljs.core.second.call(null,f),p=cljs.core.meta.call(null,n),q=cljs.core._EQ_.call(null,cljs.core.cst$kw$fn,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(m))?cljs.core.cst$kw$top_DASH_fn.cljs$core$IFn$_invoke$arity$1(p):!1;cljs.core.truth_(q)&&cljs.core.swap_BANG_.call(null,cljs.env._STAR_compiler_STAR_,
+cljs.core.update_in,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$cljs$analyzer_SLASH_namespaces,cljs.core.cst$kw$name.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$ns.cljs$core$IFn$_invoke$arity$1(b)),cljs.core.cst$kw$defs,n,cljs.core.cst$kw$methods],null),cljs.core.fnil.call(null,cljs.core.conj,cljs.core.PersistentVector.EMPTY),cljs.core.merge.call(null,cljs.core.select_keys.call(null,q,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.cst$kw$fixed_DASH_arity,cljs.core.cst$kw$variadic_QMARK_],null)),cljs.core.select_keys.call(null,cljs.core.first.call(null,cljs.core.cst$kw$methods.cljs$core$IFn$_invoke$arity$1(m)),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$tag],null))))}if(!cljs.core.truth_(l))throw cljs.analyzer.error.call(null,b,"set! target must be a field or a symbol naming a var");return cljs.core.not.call(null,cljs.core.cst$kw$def_DASH_emits_DASH_var.cljs$core$IFn$_invoke$arity$1(b))&&
+null!=(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$sym$_STAR_warn_DASH_on_DASH_infer_STAR_,"null",cljs.core.cst$sym$_STAR_unchecked_DASH_arrays_STAR_,"null",cljs.core.cst$sym$_STAR_unchecked_DASH_if_STAR_,"null"],null),null)).call(null,f)?new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$env,b,cljs.core.cst$kw$op,cljs.core.cst$kw$no_DASH_op],null):new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$env,b,cljs.core.cst$kw$op,cljs.core.cst$kw$set_BANG_,
+cljs.core.cst$kw$form,c,cljs.core.cst$kw$target,l,cljs.core.cst$kw$val,m,cljs.core.cst$kw$children,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$target,cljs.core.cst$kw$val],null)],null)}finally{cljs.analyzer._STAR_private_var_access_nowarn_STAR_=h}}finally{cljs.analyzer._STAR_recur_frames_STAR_=a}});
+cljs.analyzer.foreign_dep_QMARK_=function(a){var b=cljs.core.cst$kw$js_DASH_dependency_DASH_index.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.env._STAR_compiler_STAR_));a=cljs.core.find.call(null,b,cljs.core.name.call(null,a));if(null==a)return!1;cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;return cljs.core.get.call(null,
+a,cljs.core.cst$kw$foreign)};cljs.analyzer.analyze_deps=function(a){switch(arguments.length){case 3:return cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.analyzer.analyze_deps.call(null,a,b,c,cljs.core.truth_(cljs.env._STAR_compiler_STAR_)?cljs.core.cst$kw$options.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.env._STAR_compiler_STAR_)):null)};
+cljs.analyzer.analyze_deps.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=cljs.core.deref.call(null,cljs.env._STAR_compiler_STAR_);d=cljs.analyzer._STAR_cljs_dep_set_STAR_;a=cljs.core.vary_meta.call(null,cljs.core.conj.call(null,cljs.analyzer._STAR_cljs_dep_set_STAR_,a),cljs.core.update_in,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$dep_DASH_path],null),cljs.core.conj,a);cljs.analyzer._STAR_cljs_dep_set_STAR_=a;try{if(!cljs.core.every_QMARK_.call(null,
+function(a){return!cljs.core.contains_QMARK_.call(null,cljs.analyzer._STAR_cljs_dep_set_STAR_,a)},b))throw Error(["Assert failed: ",["Circular dependency detected, ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.interpose.call(null," -\x3e ",cljs.core.conj.call(null,cljs.core.cst$kw$dep_DASH_path.cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,cljs.analyzer._STAR_cljs_dep_set_STAR_)),cljs.core.some.call(null,cljs.analyzer._STAR_cljs_dep_set_STAR_,
+b)))))].join(""),"\n(every? (fn* [p1__14018#] (not (contains? *cljs-dep-set* p1__14018#))) deps)"].join(""));var f=cljs.core.seq.call(null,b);b=null;for(var g=a=0;;)if(g=b.call(null,cljs.core.cst$kw$as,0)&&1>=b.call(null,cljs.core.cst$kw$refer,0))return null;throw cljs.analyzer.error.call(null,
+a,cljs.analyzer.parse_ns_error_msg.call(null,c,"Each of :as and :refer options may only be specified once in :require / :require-macros"));}return null};
+cljs.analyzer.parse_ns_excludes=function(a,b){return cljs.core.reduce.call(null,function(b,d){var c=cljs.core.seq.call(null,d),f=cljs.core.first.call(null,c),g=cljs.core.next.call(null,c);if(cljs.core._EQ_.call(null,f,cljs.core.cst$kw$refer_DASH_clojure)){if(cljs.core.seq.call(null,cljs.core.cst$kw$excludes.cljs$core$IFn$_invoke$arity$1(b)))throw cljs.analyzer.error.call(null,a,"Only one :refer-clojure form is allowed per namespace definition");var h=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
+2,[cljs.core.cst$kw$exclude,null,cljs.core.cst$kw$rename,null],null),null),k=function(){for(var b=cljs.core.seq.call(null,g),e=new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$excludes,cljs.core.PersistentHashSet.EMPTY,cljs.core.cst$kw$renames,cljs.core.PersistentArrayMap.EMPTY],null),k=!cljs.core.even_QMARK_.call(null,cljs.core.count.call(null,g));;){if(!0===k)throw cljs.analyzer.error.call(null,a,"Only [:refer-clojure :exclude (names)] and optionally `:rename {from to}` specs supported");
+if(null!=b){var p=cljs.core.first.call(null,b);if(cljs.core.truth_(h.call(null,p))){var q=cljs.core.second.call(null,b);if(cljs.core._EQ_.call(null,p,cljs.core.cst$kw$exclude)&&cljs.core.sequential_QMARK_.call(null,q)&&cljs.core.every_QMARK_.call(null,cljs.core.symbol_QMARK_,q)||cljs.core._EQ_.call(null,p,cljs.core.cst$kw$rename)&&cljs.core.map_QMARK_.call(null,q)&&cljs.core.every_QMARK_.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n){return function(a){return cljs.core.every_QMARK_.call(null,cljs.core.symbol_QMARK_,
+a)}}(b,e,k,q,p,h,d,c,f,g,f,g),q))if(cljs.core._EQ_.call(null,p,cljs.core.cst$kw$exclude))b=cljs.core.nnext.call(null,b),e=cljs.core.update_in.call(null,e,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$excludes],null),cljs.core.into,q),k=!1;else if(cljs.core._EQ_.call(null,p,cljs.core.cst$kw$rename))b=cljs.core.nnext.call(null,b),e=cljs.core.update_in.call(null,e,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$renames],
+null),cljs.core.merge,q),k=!1;else return null;else k=!0}else k=!0}else return e}}();return cljs.core.merge_with.call(null,cljs.core.into,b,k)}return b},new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$excludes,cljs.core.PersistentHashSet.EMPTY,cljs.core.cst$kw$renames,cljs.core.PersistentArrayMap.EMPTY],null),b)};
+cljs.analyzer.use__GT_require=function(a,b){var c=cljs.core.seq.call(null,b),d=cljs.core.first.call(null,c),e=cljs.core.next.call(null,c);if(!(d instanceof cljs.core.Symbol&&cljs.core.odd_QMARK_.call(null,cljs.core.count.call(null,b))))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,b,"Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros"));for(var f=cljs.core.seq.call(null,e),g=new cljs.core.PersistentVector(null,1,
+5,cljs.core.PersistentVector.EMPTY_NODE,[d],null),h=!1;;){if(!0===h)throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,b,"Only [lib.ns :only (names)] and optionally `:rename {from to}` specs supported in :use / :use-macros"));if(null!=f){var k=cljs.core.first.call(null,f),l=cljs.core._EQ_.call(null,k,cljs.core.cst$kw$only);if(l||cljs.core._EQ_.call(null,k,cljs.core.cst$kw$rename)){if(null!=cljs.core.some.call(null,cljs.core.PersistentHashSet.createAsIfByAssoc([l?cljs.core.cst$kw$refer:
+k]),g))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,b,"Each of :only and :rename options may only be specified once in :use / :use-macros"));var m=cljs.core.second.call(null,f);l&&cljs.core.sequential_QMARK_.call(null,m)&&cljs.core.every_QMARK_.call(null,cljs.core.symbol_QMARK_,m)||cljs.core._EQ_.call(null,k,cljs.core.cst$kw$rename)&&cljs.core.map_QMARK_.call(null,m)&&cljs.core.every_QMARK_.call(null,function(a,b,c,d,e,f,g,h,k,l,m,F,P){return function(a){return cljs.core.every_QMARK_.call(null,
+cljs.core.symbol_QMARK_,a)}}(f,g,h,m,k,l,b,c,d,e,d,e,b),m)?(f=cljs.core.nnext.call(null,f),g=cljs.core.into.call(null,g,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[l?cljs.core.cst$kw$refer:k,m],null)),h=!1):h=!0}else h=!0}else{if(null!=cljs.core.some.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$refer,null],null),null),g))return g;h=!0}}};
+cljs.analyzer.parse_require_spec=function(a,b,c,d,e){for(;;)if(e instanceof cljs.core.Symbol||"string"===typeof e)e=new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[e],null);else{cljs.analyzer.basic_validate_ns_spec.call(null,a,b,e);var f=e,g=cljs.core.seq.call(null,f),h=cljs.core.first.call(null,g),k=cljs.core.next.call(null,g),l=h,m=k,n=function(){var a=cljs.analyzer.gets.call(null,cljs.core.deref.call(null,cljs.env._STAR_compiler_STAR_),cljs.core.cst$kw$js_DASH_module_DASH_index,
+cljs.core.str.cljs$core$IFn$_invoke$arity$1(l),cljs.core.cst$kw$name);return null==a?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[l,null],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.symbol.call(null,a),l],null)}(),p=cljs.core.nth.call(null,n,0,null),q=cljs.core.nth.call(null,n,1,null),r=cljs.core.apply.call(null,cljs.core.hash_map,m),t=null!=r&&(r.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===
+r.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,r):r,u=cljs.core.get.call(null,t,cljs.core.cst$kw$as,"string"===typeof p?cljs.core.symbol.call(null,cljs.core.munge.call(null,p)):p),v=cljs.core.get.call(null,t,cljs.core.cst$kw$refer),w=cljs.core.get.call(null,t,cljs.core.cst$kw$rename),x=cljs.core.seq.call(null,cljs.core.remove.call(null,cljs.core.set.call(null,cljs.core.keys.call(null,w)),v)),y=cljs.core.truth_(b)?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.cst$kw$require_DASH_macros,cljs.core.cst$kw$use_DASH_macros,cljs.core.cst$kw$rename_DASH_macros],null):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$require,cljs.core.cst$kw$use,cljs.core.cst$kw$rename],null),z=cljs.core.nth.call(null,y,0,null),F=cljs.core.nth.call(null,y,1,null),P=cljs.core.nth.call(null,y,2,null);if(!(u instanceof cljs.core.Symbol||null==u))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,
+e,":as must be followed by a symbol in :require / :require-macros"));if(null!=u){var D=cljs.core.truth_(b)?cljs.core.cst$kw$macros:cljs.core.cst$kw$fns,A=D.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,d)).call(null,u);if(null!=A&&cljs.core.not_EQ_.call(null,p,A))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,e,":as alias must be unique"));cljs.core.swap_BANG_.call(null,d,cljs.core.update_in,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
+[D],null),cljs.core.conj,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[u,p],null),cljs.core.truth_(q)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[q,p],null):null)}if(!(cljs.core.sequential_QMARK_.call(null,v)&&cljs.core.every_QMARK_.call(null,cljs.core.symbol_QMARK_,v)||null==v))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,e,":refer must be followed by a sequence of symbols in :require / :require-macros"));
+cljs.core.truth_(b)||cljs.core.swap_BANG_.call(null,c,cljs.core.conj,p);return cljs.core.merge.call(null,null!=u?cljs.core.PersistentArrayMap.createAsIfByAssoc([z,cljs.core.merge.call(null,cljs.core.PersistentArrayMap.createAsIfByAssoc([u,p]),cljs.core.PersistentArrayMap.createAsIfByAssoc([p,p]),cljs.core.truth_(q)?cljs.core.PersistentArrayMap.createAsIfByAssoc([q,p]):null)]):null,null!=x?cljs.core.PersistentArrayMap.createAsIfByAssoc([F,cljs.core.apply.call(null,cljs.core.hash_map,cljs.core.interleave.call(null,
+x,cljs.core.repeat.call(null,p)))]):null,null!=w?cljs.core.PersistentArrayMap.createAsIfByAssoc([P,cljs.core.reduce.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,z,A,D){return function(b,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);if(!cljs.core.truth_(cljs.core.some.call(null,cljs.core.PersistentHashSet.createAsIfByAssoc([d]),w)))throw cljs.analyzer.error.call(null,a,["Renamed symbol ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)," not referred"].join(""));
+return cljs.core.assoc.call(null,b,c,cljs.core.symbol.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p),cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)))}}(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,F,P),cljs.core.PersistentArrayMap.EMPTY,w)]):null)}};
+cljs.analyzer.parse_import_spec=function(a,b,c){if(!(cljs.core.sequential_QMARK_.call(null,c)&&cljs.core.every_QMARK_.call(null,cljs.core.symbol_QMARK_,c)||c instanceof cljs.core.Symbol&&null==cljs.core.namespace.call(null,c)))throw cljs.analyzer.error.call(null,a,cljs.analyzer.parse_ns_error_msg.call(null,c,"Only lib.ns.Ctor or [lib.ns Ctor*] spec supported in :import"));a=cljs.core.sequential_QMARK_.call(null,c)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,
+function(a){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,c)),".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))],null)},cljs.core.rest.call(null,c))):cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.symbol.call(null,cljs.core.last.call(null,clojure.string.split.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),/\./))),c]);for(var d=
+cljs.core.seq.call(null,a),e=null,f=0,g=0;;)if(ga?(-a<<1)+1:a<<1};cljs.source_map.base64_vlq.from_vlq_signed=function(a){var b=cljs.core._EQ_.call(null,a&1,1);a>>=1;return b?-a:a};
+cljs.source_map.base64_vlq.encode_val=function(a){var b=new goog.string.StringBuffer,c=cljs.source_map.base64_vlq.to_vlq_signed.call(null,a);a=c&cljs.source_map.base64_vlq.vlq_base_mask;for(c>>>=5;;)if(0>>5;a=c&cljs.source_map.base64_vlq.vlq_base_mask;c=d}else{b.append(cljs.source_map.base64.encode.call(null,a));break}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)};
+cljs.source_map.base64_vlq.encode=function(a){return cljs.core.apply.call(null,cljs.core.str,cljs.core.map.call(null,cljs.source_map.base64_vlq.encode_val,a))};
+cljs.source_map.base64_vlq.decode=function(a){for(var b=a.length,c=0,d=0,e=0;;){if(c>=b)throw Error("Expected more digits in base 64 VLQ value.");var f=cljs.source_map.base64.decode.call(null,a.charAt(c)),g=c+1,h=0<(f&cljs.source_map.base64_vlq.vlq_continuation_bit),k=f&cljs.source_map.base64_vlq.vlq_base_mask,l=d+(k<t-1?cljs.core.swap_BANG_.call(null,c,function(a,b,c,d,e,f,g,h,k,l,m,n,p){return function(a){return cljs.core.conj.call(null,cljs.core.into.call(null,a,cljs.core.repeat.call(null,f-(g-1)-1,cljs.core.PersistentVector.EMPTY)),new cljs.core.PersistentVector(null,
+1,5,cljs.core.PersistentVector.EMPTY_NODE,[e],null))}}(a,l,m,n,q,r,t,p,c,d,e,f,g)):cljs.core.swap_BANG_.call(null,c,function(a,b,c,d,e,f,g,h,k,l,m,n,p){return function(a){return cljs.core.update_in.call(null,a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[f],null),cljs.core.conj,e)}}(a,l,m,n,q,r,t,p,c,d,e,f,g));n+=1}else if(r=cljs.core.seq.call(null,a)){q=r;if(cljs.core.chunked_seq_QMARK_.call(null,q))a=cljs.core.chunk_first.call(null,q),n=cljs.core.chunk_rest.call(null,
+q),l=a,m=cljs.core.count.call(null,a),a=n;else{p=cljs.core.first.call(null,q);t=g.call(null,p,b,h,k);var u=cljs.core.cst$kw$gline.cljs$core$IFn$_invoke$arity$1(p),w=cljs.core.count.call(null,cljs.core.deref.call(null,c));u>w-1?cljs.core.swap_BANG_.call(null,c,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){return function(a){return cljs.core.conj.call(null,cljs.core.into.call(null,a,cljs.core.repeat.call(null,f-(g-1)-1,cljs.core.PersistentVector.EMPTY)),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
+[e],null))}}(a,l,m,n,t,u,w,p,q,r,c,d,e,f,g)):cljs.core.swap_BANG_.call(null,c,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){return function(a){return cljs.core.update_in.call(null,a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[f],null),cljs.core.conj,e)}}(a,l,m,n,t,u,w,p,q,r,c,d,e,f,g));a=cljs.core.next.call(null,q);l=null;m=0}n=0}else return null},k=cljs.core.seq.call(null,cljs.core.map_indexed.call(null,function(a,b,c,d,e,f){return function(a,b){return new cljs.core.PersistentVector(null,
+2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null)}}(c,d,e,f,g,h),a)),l=null,m=0,n=0;;)if(nb)return a;a=b.toString(16);return["\\u",cljs.core.subs.call(null,"0000",a.length),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")}};
+cljs.compiler.escape_string=function(a){var b=new goog.string.StringBuffer;a=cljs.core.seq.call(null,a);for(var c=null,d=0,e=0;;)if(ec?cljs.compiler.emits.call(null,"new cljs.core.PersistentVector(null, ",c,", 5, cljs.core.PersistentVector.EMPTY_NODE, [",b.call(null,a),"], null)"):cljs.compiler.emits.call(null,"cljs.core.PersistentVector.fromArray([",b.call(null,a),"], true)")};
+cljs.core._add_method.call(null,cljs.compiler.emit_STAR_,cljs.core.cst$kw$vector,function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,b,cljs.core.cst$kw$items);b=cljs.core.get.call(null,b,cljs.core.cst$kw$env);cljs.core._EQ_.call(null,cljs.core.cst$kw$return,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))&&cljs.compiler.emits.call(null,"return ");
+cljs.compiler.emit_vector.call(null,a,cljs.compiler.comma_sep);return cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))?null:cljs.compiler.emitln.call(null,";")});
+cljs.compiler.distinct_constants_QMARK_=function(a){a=cljs.core.map.call(null,cljs.analyzer.unwrap_quote,a);return cljs.core.every_QMARK_.call(null,function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$const)},a)&&cljs.core._EQ_.call(null,cljs.core.count.call(null,cljs.core.into.call(null,cljs.core.PersistentHashSet.EMPTY,a)),cljs.core.count.call(null,a))};
+cljs.compiler.emit_set=function(a,b,c){return cljs.core.empty_QMARK_.call(null,a)?cljs.compiler.emits.call(null,"cljs.core.PersistentHashSet.EMPTY"):cljs.core.truth_(c.call(null,a))?cljs.compiler.emits.call(null,"new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, ",cljs.core.count.call(null,a),", [",b.call(null,cljs.core.interleave.call(null,a,cljs.core.repeat.call(null,"null"))),"], null), null)"):cljs.compiler.emits.call(null,"cljs.core.PersistentHashSet.createAsIfByAssoc([",
+b.call(null,a),"])")};
+cljs.core._add_method.call(null,cljs.compiler.emit_STAR_,cljs.core.cst$kw$set,function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,b,cljs.core.cst$kw$items);b=cljs.core.get.call(null,b,cljs.core.cst$kw$env);cljs.core._EQ_.call(null,cljs.core.cst$kw$return,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))&&cljs.compiler.emits.call(null,"return ");cljs.compiler.emit_set.call(null,
+a,cljs.compiler.comma_sep,cljs.compiler.distinct_constants_QMARK_);return cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))?null:cljs.compiler.emitln.call(null,";")});
+cljs.compiler.emit_js_object=function(a,b){cljs.compiler.emits.call(null,"({");if(a=cljs.core.seq.call(null,a)){var c=cljs.core.seq.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);var d=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);cljs.compiler.emits.call(null,'"',cljs.core.name.call(null,d),'": ',b.call(null,a));a=cljs.core.seq.call(null,c);c=null;for(var e=d=0;;)if(eg:b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.update_in.call(null,c,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$info],null),function(a){return cljs.core.update_in.call(null,
+cljs.core.assoc.call(null,a,cljs.core.cst$kw$name,cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.compiler.munge.call(null,a)),".cljs$core$IFn$_invoke$arity$variadic"].join(""))),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$info],null),function(a){return cljs.core.dissoc.call(null,cljs.core.dissoc.call(null,a,cljs.core.cst$kw$shadow),cljs.core.cst$kw$fn_DASH_self_DASH_name)})}),new cljs.core.PersistentArrayMap(null,1,
+[cljs.core.cst$kw$max_DASH_fixed_DASH_arity,g],null)],null);b=cljs.core.map.call(null,cljs.core.count,e);return cljs.core.truth_(cljs.core.some.call(null,cljs.core.PersistentHashSet.createAsIfByAssoc([a]),b))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.update_in.call(null,c,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$info],null),function(b){return cljs.core.update_in.call(null,cljs.core.assoc.call(null,
+b,cljs.core.cst$kw$name,cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.compiler.munge.call(null,b)),".cljs$core$IFn$_invoke$arity$",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$info],null),function(a){return cljs.core.dissoc.call(null,cljs.core.dissoc.call(null,a,cljs.core.cst$kw$shadow),cljs.core.cst$kw$fn_DASH_self_DASH_name)})}),null],null):new cljs.core.PersistentVector(null,
+2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,null],null)}():new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,null],null),u=cljs.core.nth.call(null,t,0,null);t=cljs.core.nth.call(null,t,1,null);cljs.core._EQ_.call(null,cljs.core.cst$kw$return,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(e))&&cljs.compiler.emits.call(null,"return ");b?cljs.compiler.emits.call(null,"(!(",cljs.core.first.call(null,d),"))"):l?cljs.compiler.emits.call(null,"((",cljs.core.first.call(null,
+d),").length)"):cljs.core.truth_(k)?(a=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.compiler.munge.call(null,cljs.compiler.protocol_prefix.call(null,g))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.compiler.munge.call(null,cljs.core.name.call(null,cljs.core.cst$kw$name.cljs$core$IFn$_invoke$arity$1(f)))),"$arity$",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count.call(null,d))].join(""),cljs.compiler.emits.call(null,cljs.core.first.call(null,d),".",a,"(",cljs.compiler.comma_sep.call(null,
+cljs.core.cons.call(null,"null",cljs.core.rest.call(null,d))),")")):r?cljs.compiler.emits.call(null,u,".cljs$core$IFn$_invoke$arity$",cljs.core.count.call(null,d),"(",cljs.compiler.comma_sep.call(null,d),")"):cljs.core.truth_(t)?(a=cljs.core.cst$kw$max_DASH_fixed_DASH_arity.cljs$core$IFn$_invoke$arity$1(t),cljs.compiler.emits.call(null,u,"(",cljs.compiler.comma_sep.call(null,cljs.core.take.call(null,a,d)),0===a?null:",","cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([",cljs.compiler.comma_sep.call(null,
+cljs.core.drop.call(null,a,d)),"], 0))")):cljs.core.truth_(cljs.core.truth_(a)?a:cljs.core.truth_(p)?p:q)?cljs.compiler.emits.call(null,u,"(",cljs.compiler.comma_sep.call(null,d),")"):cljs.core.truth_(function(){var a=cljs.analyzer._STAR_cljs_static_fns_STAR_;return cljs.core.truth_(a)?(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$kw$var,null,cljs.core.cst$kw$js_DASH_var,null,cljs.core.cst$kw$local,null],null),null)).call(null,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(u)):
+a}())?(a=[".cljs$core$IFn$_invoke$arity$",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count.call(null,d))].join(""),cljs.core.truth_(cljs.analyzer._STAR_fn_invoke_direct_STAR_)?cljs.compiler.emits.call(null,"(",u,a," ? ",u,a,"(",cljs.compiler.comma_sep.call(null,d),") : ",u,"(",cljs.compiler.comma_sep.call(null,d),"))"):cljs.compiler.emits.call(null,"(",u,a," ? ",u,a,"(",cljs.compiler.comma_sep.call(null,d),") : ",u,".call(",cljs.compiler.comma_sep.call(null,cljs.core.cons.call(null,"null",
+d)),"))")):cljs.compiler.emits.call(null,u,".call(",cljs.compiler.comma_sep.call(null,cljs.core.cons.call(null,"null",d)),")");return cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(e))?null:cljs.compiler.emitln.call(null,";")});
+cljs.core._add_method.call(null,cljs.compiler.emit_STAR_,cljs.core.cst$kw$new,function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,b,cljs.core.cst$kw$class);var c=cljs.core.get.call(null,b,cljs.core.cst$kw$args);b=cljs.core.get.call(null,b,cljs.core.cst$kw$env);cljs.core._EQ_.call(null,cljs.core.cst$kw$return,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))&&
+cljs.compiler.emits.call(null,"return ");cljs.compiler.emits.call(null,"(new ",a,"(",cljs.compiler.comma_sep.call(null,c),"))");return cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))?null:cljs.compiler.emitln.call(null,";")});
+cljs.core._add_method.call(null,cljs.compiler.emit_STAR_,cljs.core.cst$kw$set_BANG_,function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,b,cljs.core.cst$kw$target);var c=cljs.core.get.call(null,b,cljs.core.cst$kw$val);b=cljs.core.get.call(null,b,cljs.core.cst$kw$env);cljs.core._EQ_.call(null,cljs.core.cst$kw$return,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))&&
+cljs.compiler.emits.call(null,"return ");cljs.compiler.emits.call(null,"(",a," \x3d ",c,")");return cljs.core._EQ_.call(null,cljs.core.cst$kw$expr,cljs.core.cst$kw$context.cljs$core$IFn$_invoke$arity$1(b))?null:cljs.compiler.emitln.call(null,";")});
+cljs.compiler.emit_global_export=function(a,b,c){return cljs.compiler.emitln.call(null,cljs.compiler.munge.call(null,a),".",cljs.analyzer.munge_global_export.call(null,c)," \x3d goog.global",cljs.core.apply.call(null,cljs.core.str,cljs.core.map.call(null,function(a){return['["',cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),'"]'].join("")},clojure.string.split.call(null,cljs.core.name.call(null,function(){var a=cljs.core.get.call(null,b,cljs.core.symbol.call(null,c));return cljs.core.truth_(a)?a:
+cljs.core.get.call(null,b,cljs.core.name.call(null,c))}()),/\./))),";")};
+cljs.compiler.load_libs=function(a,b,c,d,e){var f=cljs.core.deref.call(null,cljs.env._STAR_compiler_STAR_);f=null!=f&&(f.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===f.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,f):f;var g=cljs.core.get.call(null,f,cljs.core.cst$kw$options);f=cljs.core.get.call(null,f,cljs.core.cst$kw$js_DASH_dependency_DASH_index);g=null!=g&&(g.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===g.cljs$core$ISeq$)?cljs.core.apply.call(null,
+cljs.core.hash_map,g):g;var h=cljs.core.get.call(null,g,cljs.core.cst$kw$target),k=cljs.core.get.call(null,g,cljs.core.cst$kw$optimizations);g=cljs.compiler.munge.call(null,cljs.core.cst$sym$cljs$core$_STAR_loaded_DASH_libs_STAR_);var l=cljs.compiler.munge.call(null,cljs.core.gensym.call(null,cljs.core.cst$sym$cljs$core$_STAR_loaded_DASH_libs_STAR_)),m=function(){var c=cljs.core.remove.call(null,cljs.core.set.call(null,cljs.core.vals.call(null,b)),cljs.core.filter.call(null,cljs.core.set.call(null,
+cljs.core.vals.call(null,a)),d));if(cljs.core._EQ_.call(null,cljs.core.cst$kw$nodejs,h)){c=cljs.core.group_by.call(null,cljs.analyzer.node_module_dep_QMARK_,c);var e=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,c):c;c=cljs.core.get.call(null,e,!0);e=cljs.core.get.call(null,e,!1);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,e],null)}return new cljs.core.PersistentVector(null,
+2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,c],null)}(),n=cljs.core.nth.call(null,m,0,null),p=cljs.core.nth.call(null,m,1,null);m=cljs.core.filter.call(null,cljs.analyzer.dep_has_global_exports_QMARK_,p);cljs.core.truth_(cljs.core.cst$kw$reload_DASH_all.cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,a)))&&(cljs.compiler.emitln.call(null,"if(!COMPILED) ",l," \x3d ",g,' || cljs.core.set(["cljs.core"]);'),cljs.compiler.emitln.call(null,"if(!COMPILED) ",g,' \x3d cljs.core.set(["cljs.core"]);'));
+p=cljs.core.seq.call(null,p);for(var q=null,r=0,t=0;;)if(ta?cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentVector$,null,1,null),new cljs.core.List(null,null,null,1,null),new cljs.core.List(null,a,null,1,null),new cljs.core.List(null,5,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$$_DASH_EMPTY_DASH_NODE,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentVector,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_array,null,1,null),c))),null,1,null),new cljs.core.List(null,null,null,1,null)))):cljs.core.vary_meta.call(null,
+cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$$fromArray,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentVector,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_array,null,1,null),c))),null,1,null),new cljs.core.List(null,!0,null,1,null)))),cljs.core.assoc,cljs.core.cst$kw$tag,
+cljs.core.cst$sym$cljs$core_SLASH_PersistentVector)};cljs.core$macros.vector.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core$macros.vector.cljs$lang$maxFixedArity=2;return null}();cljs.core$macros.vector.cljs$lang$macro=!0;
+var ret__4835__auto___26878=function(){cljs.core$macros.array_map=function(a){switch(arguments.length){case 2:return cljs.core$macros.array_map.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d=cljs.core.count.call(null,c)&&cljs.core.every_QMARK_.call(null,function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$op.cljs$core$IFn$_invoke$arity$1(cljs.analyzer.unwrap_quote.call(null,
+a)),cljs.core.cst$kw$const)},cljs.core.map.call(null,function(a){var c=cljs.analyzer._STAR_cljs_warnings_STAR_,d=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$invoke_DASH_ctor,cljs.core.cst$kw$extending_DASH_base_DASH_js_DASH_type,cljs.core.cst$kw$unsupported_DASH_preprocess_DASH_value,cljs.core.cst$kw$redef,cljs.core.cst$kw$js_DASH_shadowed_DASH_by_DASH_local,cljs.core.cst$kw$unsupported_DASH_js_DASH_module_DASH_type,cljs.core.cst$kw$invalid_DASH_protocol_DASH_symbol,cljs.core.cst$kw$private_DASH_var_DASH_access,
+cljs.core.cst$kw$protocol_DASH_duped_DASH_method,cljs.core.cst$kw$munged_DASH_namespace,cljs.core.cst$kw$single_DASH_segment_DASH_namespace,cljs.core.cst$kw$fn_DASH_arity,cljs.core.cst$kw$infer_DASH_warning,cljs.core.cst$kw$variadic_DASH_max_DASH_arity,cljs.core.cst$kw$protocol_DASH_with_DASH_variadic_DASH_method,cljs.core.cst$kw$fn_DASH_deprecated,cljs.core.cst$kw$undeclared_DASH_var,cljs.core.cst$kw$declared_DASH_arglists_DASH_mismatch,cljs.core.cst$kw$preamble_DASH_missing,cljs.core.cst$kw$undeclared_DASH_protocol_DASH_symbol,
+cljs.core.cst$kw$protocol_DASH_with_DASH_overwriting_DASH_method,cljs.core.cst$kw$dynamic,cljs.core.cst$kw$invalid_DASH_array_DASH_access,cljs.core.cst$kw$unprovided,cljs.core.cst$kw$ns_DASH_var_DASH_clash,cljs.core.cst$kw$undeclared_DASH_ns,cljs.core.cst$kw$non_DASH_dynamic_DASH_earmuffed_DASH_var,cljs.core.cst$kw$undeclared_DASH_ns_DASH_form,cljs.core.cst$kw$invalid_DASH_arithmetic,cljs.core.cst$kw$protocol_DASH_deprecated,cljs.core.cst$kw$fn_DASH_var,cljs.core.cst$kw$protocol_DASH_impl_DASH_recur_DASH_with_DASH_target,
+cljs.core.cst$kw$overload_DASH_arity,cljs.core.cst$kw$protocol_DASH_multiple_DASH_impls,cljs.core.cst$kw$redef_DASH_in_DASH_file,cljs.core.cst$kw$protocol_DASH_invalid_DASH_method,cljs.core.cst$kw$extend_DASH_type_DASH_invalid_DASH_method_DASH_shape,cljs.core.cst$kw$multiple_DASH_variadic_DASH_overloads,cljs.core.cst$kw$protocol_DASH_impl_DASH_with_DASH_variadic_DASH_method],[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1]);cljs.analyzer._STAR_cljs_warnings_STAR_=
+d;try{return cljs.analyzer.analyze.call(null,b,a)}finally{cljs.analyzer._STAR_cljs_warnings_STAR_=c}},c))&&cljs.core._EQ_.call(null,cljs.core.count.call(null,cljs.core.into.call(null,cljs.core.PersistentHashSet.EMPTY,c)),cljs.core.count.call(null,c))?cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentHashSet$,null,1,null),new cljs.core.List(null,null,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentArrayMap$,null,1,null),new cljs.core.List(null,null,null,1,null),new cljs.core.List(null,cljs.core.count.call(null,c),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_array,null,1,null),cljs.core.interleave.call(null,c,cljs.core.repeat.call(null,null))))),
+null,1,null),new cljs.core.List(null,null,null,1,null)))),null,1,null),new cljs.core.List(null,null,null,1,null)))):cljs.core.vary_meta.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$$createAsIfByAssoc,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_PersistentHashSet,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,
+cljs.core.cst$sym$cljs$core$macros_SLASH_array,null,1,null),c))),null,1,null)))),cljs.core.assoc,cljs.core.cst$kw$tag,cljs.core.cst$sym$cljs$core_SLASH_PersistentHashSet)};cljs.core$macros.hash_set.cljs$lang$applyTo=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.next.call(null,a);a=cljs.core.first.call(null,c);c=cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core$macros.hash_set.cljs$lang$maxFixedArity=2;return null}();
+cljs.core$macros.hash_set.cljs$lang$macro=!0;
+cljs.core$macros.js_obj_STAR_=function(a){var b=cljs.core.apply.call(null,cljs.core.str,cljs.core.interpose.call(null,",",cljs.core.take.call(null,cljs.core.count.call(null,a),cljs.core.repeat.call(null,"~{}:~{}"))));return cljs.core.vary_meta.call(null,cljs.core.list_STAR_.call(null,cljs.core.cst$sym$js_STAR_,["({",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),"})"].join(""),cljs.core.apply.call(null,cljs.core.concat,a)),cljs.core.assoc,cljs.core.cst$kw$tag,cljs.core.cst$sym$object)};
+var ret__4835__auto___26924=function(){cljs.core$macros.js_obj=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=a?cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_let,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core$macros.cs.call(null,a-1),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH__DASH_first,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$args,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.cst$sym$args,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH__DASH_rest,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$args,
+null,1,null)))),null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$if,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH__EQ__EQ_,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$argc,null,1,null),new cljs.core.List(null,a,null,1,null)))),
+null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$f,null,1,null),cljs.core.take.call(null,a,cljs.core$macros.cs)))),null,1,null),new cljs.core.List(null,cljs.core$macros.gen_apply_to_helper.call(null,a+1),null,1,null)))),null,1,null)))):cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$throw,null,1,null),new cljs.core.List(null,
+cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$js_SLASH_Error$,null,1,null),new cljs.core.List(null,"Only up to 20 arguments supported on functions",null,1,null)))),null,1,null))))};cljs.core$macros.gen_apply_to_helper.cljs$lang$maxFixedArity=1;
+var ret__4835__auto___26996=cljs.core$macros.gen_apply_to=function(a,b){return cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$do,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$set_BANG_,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$_STAR_unchecked_DASH_if_STAR_,null,1,null),new cljs.core.List(null,!0,null,
+1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_defn,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$apply_DASH_to,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$f,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$argc,
+null,1,null),new cljs.core.List(null,cljs.core.cst$sym$args,null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_let,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$args,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_seq,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$args,null,1,null)))),null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$if,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,
+cljs.core.cst$sym$cljs$core$macros_SLASH_zero_QMARK_,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$argc,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$f,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core$macros.gen_apply_to_helper.call(null),null,1,null)))),null,1,null)))),null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$set_BANG_,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$_STAR_unchecked_DASH_if_STAR_,null,1,null),new cljs.core.List(null,!1,null,1,null)))),null,1,null))))};cljs.core$macros.gen_apply_to.cljs$lang$macro=!0;
+cljs.core$macros.gen_apply_to_simple_helper=function(a,b,c){var d=cljs.core.symbol.call(null,["a",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")),e=["cljs$core$IFn$_invoke$arity$",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b+1)].join(""),f=cljs.core.symbol.call(null,[".-",e].join(""));e=cljs.core.symbol.call(null,[".",e].join(""));var g=cljs.core.symbol.call(null,["next_",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")),h=cljs.core.mapv.call(null,function(a){return cljs.core.symbol.call(null,
+["a",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))},cljs.core.range.call(null,b+1));return cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_let,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,d,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,
+cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH__DASH_first,null,1,null),new cljs.core.List(null,c,null,1,null)))),null,1,null),new cljs.core.List(null,g,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_next,null,1,null),new cljs.core.List(null,c,null,1,null)))),null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$if,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_nil_QMARK_,null,1,null),new cljs.core.List(null,g,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$if,
+null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,f,null,1,null),new cljs.core.List(null,a,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,e,null,1,null),new cljs.core.List(null,a,null,1,null),h))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,
+new cljs.core.List(null,cljs.core.cst$sym$$call,null,1,null),new cljs.core.List(null,a,null,1,null),new cljs.core.List(null,a,null,1,null),h))),null,1,null)))),null,1,null),new cljs.core.List(null,19<=b?cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_let,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,
+cljs.core.cst$sym$arr__26998__auto__,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_array,null,1,null),h))),null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_loop,null,1,null),new cljs.core.List(null,cljs.core.vec.call(null,
+cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$s__26999__auto__,null,1,null),new cljs.core.List(null,g,null,1,null))))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core$macros_SLASH_when,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$s__26999__auto__,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,
+cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$do,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$$push,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$arr__26998__auto__,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH__DASH_first,
+null,1,null),new cljs.core.List(null,cljs.core.cst$sym$s__26999__auto__,null,1,null)))),null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$recur,null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$cljs$core_SLASH_next,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$s__26999__auto__,
+null,1,null)))),null,1,null)))),null,1,null)))),null,1,null)))),null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,cljs.core.cst$sym$$apply,null,1,null),new cljs.core.List(null,a,null,1,null),new cljs.core.List(null,a,null,1,null),new cljs.core.List(null,cljs.core.cst$sym$arr__26998__auto__,null,1,null)))),null,1,null)))):cljs.core$macros.gen_apply_to_simple_helper.call(null,a,b+1,g),null,1,null)))),
+null,1,null))))};var ret__4835__auto___27000=cljs.core$macros.gen_apply_to_simple=function(a,b,c,d,e){return cljs.core$macros.gen_apply_to_simple_helper.call(null,c,d,e)};cljs.core$macros.gen_apply_to_simple.cljs$lang$macro=!0;
+var ret__4835__auto___27006=function(){cljs.core$macros.with_out_str=function(a){for(var b=[],c=arguments.length,d=0;;)if(d*=&?]+)\/[a-zA-Z0-9-]*$/,a));a=cljs.core.first.call(null,cljs.core.re_find.call(null,/:?([a-zA-Z0-9-.<>*=&?]*|^\(\/)$/,a));b=cljs.core.sort.call(null,cljs.core.filter.call(null,cljs.core.partial.call(null,klipse_clj.repl.is_completion_QMARK_,a),klipse_clj.repl.completion_candidates.call(null,b,c)));c=klipse_clj.repl.longest_common_prefix.call(null,b);return cljs.core.with_meta.call(null,cljs.core.empty_QMARK_.call(null,c)||cljs.core._EQ_.call(null,
+c,a)?cljs.core.into.call(null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null),b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,c],null),new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$ready,!0],null))};klipse_clj.lang={};klipse_clj.lang.clojure={};klipse_clj.lang.clojure.io={};klipse_clj.lang.clojure.io._STAR_klipse_settings_STAR_=cljs.core.PersistentArrayMap.EMPTY;klipse_clj.lang.clojure.io._STAR_verbose_QMARK__STAR_=!1;klipse_clj.lang.clojure.io._STAR_cache_buster_QMARK__STAR_=!1;klipse_clj.lang.clojure.io.edn=function(a){return cljs_http.util.transit_decode.call(null,JSON.stringify(cljs.core.clj__GT_js.call(null,a)),cljs.core.cst$kw$json,null)};
+klipse_clj.lang.clojure.io.macro_suffixes=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[".clj",".cljc"],null);klipse_clj.lang.clojure.io.cljs_suffixes=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[".cljs",".cljc"],null);
+if("undefined"===typeof klipse_clj||"undefined"===typeof klipse_clj.lang||"undefined"===typeof klipse_clj.lang.clojure||"undefined"===typeof klipse_clj.lang.clojure.io||"undefined"===typeof klipse_clj.lang.clojure.io.load_ns)klipse_clj.lang.clojure.io.load_ns=function(){var a=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),
+e=cljs.core.get.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.cst$kw$hierarchy,cljs.core.get_global_hierarchy.call(null));return new cljs.core.MultiFn(cljs.core.symbol.call(null,"klipse-clj.lang.clojure.io","load-ns"),function(a,b,c){c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;a=cljs.core.get.call(null,c,cljs.core.cst$kw$name);b=cljs.core.get.call(null,c,cljs.core.cst$kw$macros);c=
+cljs.core.get.call(null,c,cljs.core.cst$kw$path);new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c],null);return cljs.core.truth_(b)?cljs.core.cst$kw$macro:cljs.core.truth_(cljs.core.re_matches.call(null,/^goog\..*/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)))?cljs.core.cst$kw$goog:cljs.core.truth_(cljs.core.re_matches.call(null,/.*\.gist-.*/,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)))?cljs.core.cst$kw$gist:cljs.core.cst$kw$cljs},cljs.core.cst$kw$default,
+e,a,b,c,d)}();klipse_clj.lang.clojure.io.skip_ns_macros=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,7,[cljs.core.cst$sym$cljs$analyzer$macros,null,cljs.core.cst$sym$cljs$env$macros,null,cljs.core.cst$sym$cljs$pprint,null,cljs.core.cst$sym$cljs$repl,null,cljs.core.cst$sym$cljs$compiler$macros,null,cljs.core.cst$sym$cljs$core,null,cljs.core.cst$sym$cljs$js,null],null),null);
+klipse_clj.lang.clojure.io.the_ns_map=new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$sym$cljs$test,"https://raw.githubusercontent.com/clojure/clojurescript/master/src/main/cljs/",cljs.core.cst$sym$clojure$template,"https://raw.githubusercontent.com/viebel/clojure/master/src/clj/"],null);
+klipse_clj.lang.clojure.io.skip_ns_cljs=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs.core.cst$sym$cljs$source_DASH_map,null,cljs.core.cst$sym$cljs$core,null,cljs.core.cst$sym$cljs$env,null],null),null);
+klipse_clj.lang.clojure.io.filename_of=function(a){return cljs.core.truth_(klipse_clj.lang.clojure.io._STAR_cache_buster_QMARK__STAR_)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"?",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.call(null))].join(""):a};
+klipse_clj.lang.clojure.io.try_to_load_ns=function(a){for(var b=[],c=arguments.length,d=0;;)if(da){if(cljs.core.truth_(confirm(["A KLIPSE snippet has been running for more than ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," milliseconds. This is often because of a long-running computation or infinite loop. Would you like to interrupt the snippet? \n OK to interrupt the evaluation.\n Cancel to continue."].join(""))))throw"Infinite Loop";return klipse_clj.lang.clojure.guard._STAR_watchdog_tick_STAR_=
+cljs.core.system_time.call(null)}return null};goog.exportSymbol("klipse_clj.lang.clojure.guard.guard",klipse_clj.lang.clojure.guard.guard);klipse_clj.lang.clojure.guard.my_emits=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=Number(c)?a:a=-1Number(a)?"-":0<=b.indexOf("+")?"+":0<=b.indexOf(" ")?" ":"";0<=Number(a)&&(d=f+d);if(isNaN(c)||d.length>=Number(c))return d;d=isNaN(e)?Math.abs(Number(a)).toString():Math.abs(Number(a)).toFixed(e);a=Number(c)-d.length-f.length;0<=b.indexOf("-",0)?d=f+d+goog.string.repeat(" ",a):(b=0<=b.indexOf("0",0)?"0":" ",d=f+goog.string.repeat(b,a)+d);return d};
+goog.string.format.demuxes_.d=function(a,b,c,d,e,f,g,h){return goog.string.format.demuxes_.f(parseInt(a,10),b,c,d,0,f,g,h)};goog.string.format.demuxes_.i=goog.string.format.demuxes_.d;goog.string.format.demuxes_.u=goog.string.format.demuxes_.d;cljs.repl={};
+cljs.repl.print_doc=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,b,cljs.core.cst$kw$ns);var c=cljs.core.get.call(null,b,cljs.core.cst$kw$name);cljs.core.println.call(null,"-------------------------");cljs.core.println.call(null,function(){var a=cljs.core.cst$kw$spec.cljs$core$IFn$_invoke$arity$1(b);if(cljs.core.truth_(a))return a;a=cljs.core.cst$kw$ns.cljs$core$IFn$_invoke$arity$1(b);a=
+cljs.core.truth_(a)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"/"].join(""):null;return[a,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$name.cljs$core$IFn$_invoke$arity$1(b))].join("")}());cljs.core.truth_(cljs.core.cst$kw$protocol.cljs$core$IFn$_invoke$arity$1(b))&&cljs.core.println.call(null,"Protocol");if(cljs.core.truth_(cljs.core.cst$kw$forms.cljs$core$IFn$_invoke$arity$1(b)))for(var d=cljs.core.seq.call(null,cljs.core.cst$kw$forms.cljs$core$IFn$_invoke$arity$1(b)),e=null,
+f=0,g=0;;)if(gd?c:d}()))))};
+clojure.data.diff_set=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.not_empty.call(null,clojure.set.difference.call(null,a,b)),cljs.core.not_empty.call(null,clojure.set.difference.call(null,b,a)),cljs.core.not_empty.call(null,clojure.set.intersection.call(null,a,b))],null)};clojure.data.EqualityPartition=function(){};
+clojure.data.equality_partition=function(a){if(null!=a&&null!=a.clojure$data$EqualityPartition$equality_partition$arity$1)return a.clojure$data$EqualityPartition$equality_partition$arity$1(a);var b=clojure.data.equality_partition[goog.typeOf(null==a?null:a)];if(null!=b)return b.call(null,a);b=clojure.data.equality_partition._;if(null!=b)return b.call(null,a);throw cljs.core.missing_protocol.call(null,"EqualityPartition.equality-partition",a);};clojure.data.Diff=function(){};
+clojure.data.diff_similar=function(a,b){if(null!=a&&null!=a.clojure$data$Diff$diff_similar$arity$2)return a.clojure$data$Diff$diff_similar$arity$2(a,b);var c=clojure.data.diff_similar[goog.typeOf(null==a?null:a)];if(null!=c)return c.call(null,a,b);c=clojure.data.diff_similar._;if(null!=c)return c.call(null,a,b);throw cljs.core.missing_protocol.call(null,"Diff.diff-similar",a);};goog.object.set(clojure.data.EqualityPartition,"null",!0);goog.object.set(clojure.data.equality_partition,"null",function(a){return cljs.core.cst$kw$atom});
+goog.object.set(clojure.data.EqualityPartition,"string",!0);goog.object.set(clojure.data.equality_partition,"string",function(a){return cljs.core.cst$kw$atom});goog.object.set(clojure.data.EqualityPartition,"number",!0);goog.object.set(clojure.data.equality_partition,"number",function(a){return cljs.core.cst$kw$atom});goog.object.set(clojure.data.EqualityPartition,"array",!0);goog.object.set(clojure.data.equality_partition,"array",function(a){return cljs.core.cst$kw$sequential});
+goog.object.set(clojure.data.EqualityPartition,"function",!0);goog.object.set(clojure.data.equality_partition,"function",function(a){return cljs.core.cst$kw$atom});goog.object.set(clojure.data.EqualityPartition,"boolean",!0);goog.object.set(clojure.data.equality_partition,"boolean",function(a){return cljs.core.cst$kw$atom});goog.object.set(clojure.data.EqualityPartition,"_",!0);
+goog.object.set(clojure.data.equality_partition,"_",function(a){return(null!=a?a.cljs$lang$protocol_mask$partition0$&1024||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMap$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IMap,a)):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IMap,a))?cljs.core.cst$kw$map:(null!=a?a.cljs$lang$protocol_mask$partition0$&4096||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISet$||(a.cljs$lang$protocol_mask$partition0$?
+0:cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ISet,a)):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ISet,a))?cljs.core.cst$kw$set:(null!=a?a.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISequential$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ISequential,a)):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.ISequential,a))?cljs.core.cst$kw$sequential:cljs.core.cst$kw$atom});
+goog.object.set(clojure.data.Diff,"null",!0);goog.object.set(clojure.data.diff_similar,"null",function(a,b){return clojure.data.atom_diff.call(null,a,b)});goog.object.set(clojure.data.Diff,"string",!0);goog.object.set(clojure.data.diff_similar,"string",function(a,b){return clojure.data.atom_diff.call(null,a,b)});goog.object.set(clojure.data.Diff,"number",!0);goog.object.set(clojure.data.diff_similar,"number",function(a,b){return clojure.data.atom_diff.call(null,a,b)});
+goog.object.set(clojure.data.Diff,"array",!0);goog.object.set(clojure.data.diff_similar,"array",function(a,b){return clojure.data.diff_sequential.call(null,a,b)});goog.object.set(clojure.data.Diff,"function",!0);goog.object.set(clojure.data.diff_similar,"function",function(a,b){return clojure.data.atom_diff.call(null,a,b)});goog.object.set(clojure.data.Diff,"boolean",!0);goog.object.set(clojure.data.diff_similar,"boolean",function(a,b){return clojure.data.atom_diff.call(null,a,b)});
+goog.object.set(clojure.data.Diff,"_",!0);
+goog.object.set(clojure.data.diff_similar,"_",function(a,b){return function(){var b=clojure.data.equality_partition.call(null,a);b=b instanceof cljs.core.Keyword?b.fqn:null;switch(b){case "atom":return clojure.data.atom_diff;case "set":return clojure.data.diff_set;case "sequential":return clojure.data.diff_sequential;case "map":return clojure.data.diff_associative;default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));}}().call(null,a,b)});
+clojure.data.diff=function(a,b){return cljs.core._EQ_.call(null,a,b)?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[null,null,a],null):cljs.core._EQ_.call(null,clojure.data.equality_partition.call(null,a),clojure.data.equality_partition.call(null,b))?clojure.data.diff_similar.call(null,a,b):clojure.data.atom_diff.call(null,a,b)};klipse_clj.tools={};klipse_clj.tools.eval=function(a){return cljs.core.cst$kw$value.cljs$core$IFn$_invoke$arity$1(cljs.js.eval.call(null,cljs.js.empty_state.call(null),a,cljs.core.identity))};klipse_clj.lang.clojure.bundled_namespaces={};cljs.pprint={};cljs.pprint.print=function(a){for(var b=[],c=arguments.length,d=0;;)if(dc)return"";if(cljs.core._EQ_.call(null,cljs.core.nth.call(null,a,c),b))--c;else return cljs.core.subs.call(null,a,0,c+1)}else return a};
+cljs.pprint.ltrim=function(a,b){var c=cljs.core.count.call(null,a);if(0a?cljs.pprint.set_field.call(null,this,cljs.core.cst$kw$cur,cljs.pprint.get_field.call(null,this,cljs.core.cst$kw$cur)+cljs.core.count.call(null,b)):(cljs.pprint.set_field.call(null,this,cljs.core.cst$kw$cur,cljs.core.count.call(null,
+b)-a-1),cljs.pprint.set_field.call(null,this,cljs.core.cst$kw$line,cljs.pprint.get_field.call(null,this,cljs.core.cst$kw$line)+cljs.core.count.call(null,cljs.core.filter.call(null,function(a){return cljs.core._EQ_.call(null,a,"\n")},b)))),cljs.core._write.call(null,cljs.pprint.get_field.call(null,this,cljs.core.cst$kw$base),b);if(cljs.core.truth_(a.call(null,Number,c)))return cljs.pprint.c_write_char.call(null,this,b);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));
+},cljs.pprint.t_cljs$pprint29486.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$writer,cljs.core.cst$sym$max_DASH_columns,cljs.core.cst$sym$fields,cljs.core.cst$sym$meta29487],null)},cljs.pprint.t_cljs$pprint29486.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint29486.cljs$lang$ctorStr="cljs.pprint/t_cljs$pprint29486",cljs.pprint.t_cljs$pprint29486.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.pprint/t_cljs$pprint29486")},
+cljs.pprint.__GT_t_cljs$pprint29486=function(a,b,c,g){return new cljs.pprint.t_cljs$pprint29486(a,b,c,g)};return new cljs.pprint.t_cljs$pprint29486(a,b,c,cljs.core.PersistentArrayMap.EMPTY)};cljs.pprint.column_writer.cljs$lang$maxFixedArity=2;
+cljs.pprint.logical_block=function(a,b,c,d,e,f,g,h,k,l,m,n,p){this.parent=a;this.section=b;this.start_col=c;this.indent=d;this.done_nl=e;this.intra_block_nl=f;this.prefix=g;this.per_line_prefix=h;this.suffix=k;this.logical_block_callback=l;this.__meta=m;this.__extmap=n;this.__hash=p;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
+cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "parent":return this.parent;case "section":return this.section;case "start-col":return this.start_col;case "indent":return this.indent;case "done-nl":return this.done_nl;case "intra-block-nl":return this.intra_block_nl;case "prefix":return this.prefix;case "per-line-prefix":return this.per_line_prefix;case "suffix":return this.suffix;case "logical-block-callback":return this.logical_block_callback;
+default:return cljs.core.get.call(null,this.__extmap,b,c)}};cljs.pprint.logical_block.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.logical_block.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.logical-block{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$parent,this.parent],
+null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$section,this.section],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_col,this.start_col],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$indent,this.indent],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$done_DASH_nl,this.done_nl],
+null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$intra_DASH_block_DASH_nl,this.intra_block_nl],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$prefix,this.prefix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$per_DASH_line_DASH_prefix,this.per_line_prefix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.cst$kw$suffix,this.suffix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$logical_DASH_block_DASH_callback,this.logical_block_callback],null)],null),this.__extmap))};
+cljs.pprint.logical_block.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,10,new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$parent,cljs.core.cst$kw$section,cljs.core.cst$kw$start_DASH_col,cljs.core.cst$kw$indent,cljs.core.cst$kw$done_DASH_nl,cljs.core.cst$kw$intra_DASH_block_DASH_nl,cljs.core.cst$kw$prefix,cljs.core.cst$kw$per_DASH_line_DASH_prefix,cljs.core.cst$kw$suffix,cljs.core.cst$kw$logical_DASH_block_DASH_callback],
+null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};cljs.pprint.logical_block.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
+cljs.pprint.logical_block.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,this.__hash)};cljs.pprint.logical_block.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 10+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.logical_block.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return 1977012399^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.logical_block.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.parent,b.parent)&&cljs.core._EQ_.call(null,this.section,b.section)&&cljs.core._EQ_.call(null,this.start_col,b.start_col)&&cljs.core._EQ_.call(null,this.indent,b.indent)&&cljs.core._EQ_.call(null,this.done_nl,b.done_nl)&&cljs.core._EQ_.call(null,this.intra_block_nl,b.intra_block_nl)&&cljs.core._EQ_.call(null,this.prefix,b.prefix)&&cljs.core._EQ_.call(null,
+this.per_line_prefix,b.per_line_prefix)&&cljs.core._EQ_.call(null,this.suffix,b.suffix)&&cljs.core._EQ_.call(null,this.logical_block_callback,b.logical_block_callback)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.logical_block.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,10,[cljs.core.cst$kw$suffix,null,cljs.core.cst$kw$indent,null,cljs.core.cst$kw$parent,null,cljs.core.cst$kw$section,null,cljs.core.cst$kw$done_DASH_nl,null,cljs.core.cst$kw$start_DASH_col,null,cljs.core.cst$kw$prefix,null,cljs.core.cst$kw$per_DASH_line_DASH_prefix,null,cljs.core.cst$kw$logical_DASH_block_DASH_callback,
+null,cljs.core.cst$kw$intra_DASH_block_DASH_nl,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),b):new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.logical_block.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$parent,b))?new cljs.pprint.logical_block(c,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$section,b))?new cljs.pprint.logical_block(this.parent,
+c,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$start_DASH_col,b))?new cljs.pprint.logical_block(this.parent,this.section,c,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$indent,b))?new cljs.pprint.logical_block(this.parent,
+this.section,this.start_col,c,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$done_DASH_nl,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,c,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$intra_DASH_block_DASH_nl,
+b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,c,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$prefix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,c,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,
+cljs.core.cst$kw$per_DASH_line_DASH_prefix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,c,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$suffix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,c,this.logical_block_callback,this.__meta,this.__extmap,
+null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$logical_DASH_block_DASH_callback,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,c,this.__meta,this.__extmap,null):new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,cljs.core.assoc.call(null,
+this.__extmap,b,c),null)};
+cljs.pprint.logical_block.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$parent,this.parent,null),new cljs.core.MapEntry(cljs.core.cst$kw$section,this.section,null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_col,this.start_col,null),new cljs.core.MapEntry(cljs.core.cst$kw$indent,this.indent,null),new cljs.core.MapEntry(cljs.core.cst$kw$done_DASH_nl,
+this.done_nl,null),new cljs.core.MapEntry(cljs.core.cst$kw$intra_DASH_block_DASH_nl,this.intra_block_nl,null),new cljs.core.MapEntry(cljs.core.cst$kw$prefix,this.prefix,null),new cljs.core.MapEntry(cljs.core.cst$kw$per_DASH_line_DASH_prefix,this.per_line_prefix,null),new cljs.core.MapEntry(cljs.core.cst$kw$suffix,this.suffix,null),new cljs.core.MapEntry(cljs.core.cst$kw$logical_DASH_block_DASH_callback,this.logical_block_callback,null)],null),this.__extmap))};
+cljs.pprint.logical_block.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,b,this.__extmap,this.__hash)};
+cljs.pprint.logical_block.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.logical_block.getBasis=function(){return new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$parent,cljs.core.cst$sym$section,cljs.core.cst$sym$start_DASH_col,cljs.core.cst$sym$indent,cljs.core.cst$sym$done_DASH_nl,cljs.core.cst$sym$intra_DASH_block_DASH_nl,cljs.core.cst$sym$prefix,cljs.core.cst$sym$per_DASH_line_DASH_prefix,cljs.core.cst$sym$suffix,cljs.core.cst$sym$logical_DASH_block_DASH_callback],null)};
+cljs.pprint.logical_block.cljs$lang$type=!0;cljs.pprint.logical_block.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/logical-block",null,1,null)};cljs.pprint.logical_block.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/logical-block")};cljs.pprint.__GT_logical_block=function(a,b,c,d,e,f,g,h,k,l){return new cljs.pprint.logical_block(a,b,c,d,e,f,g,h,k,l,null,null,null)};
+cljs.pprint.map__GT_logical_block=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$parent,cljs.core.cst$kw$section,cljs.core.cst$kw$start_DASH_col,cljs.core.cst$kw$indent,cljs.core.cst$kw$done_DASH_nl,cljs.core.cst$kw$intra_DASH_block_DASH_nl,cljs.core.cst$kw$prefix,cljs.core.cst$kw$per_DASH_line_DASH_prefix,cljs.core.cst$kw$suffix,cljs.core.cst$kw$logical_DASH_block_DASH_callback);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):
+b;return new cljs.pprint.logical_block(cljs.core.cst$kw$parent.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$section.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_col.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$indent.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$prefix.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$suffix.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.ancestor_QMARK_=function(a,b){for(b=cljs.core.cst$kw$parent.cljs$core$IFn$_invoke$arity$1(b);;){if(null==b)return!1;if(a===b)return!0;b=cljs.core.cst$kw$parent.cljs$core$IFn$_invoke$arity$1(b)}};
+cljs.pprint.buffer_length=function(a){return(a=cljs.core.seq.call(null,a))?cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(cljs.core.last.call(null,a))-cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,a)):0};
+cljs.pprint.buffer_blob=function(a,b,c,d,e,f,g,h){this.type_tag=a;this.data=b;this.trailing_white_space=c;this.start_pos=d;this.end_pos=e;this.__meta=f;this.__extmap=g;this.__hash=h;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "data":return this.data;case "trailing-white-space":return this.trailing_white_space;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.buffer_blob.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.buffer_blob.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.buffer-blob{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,this.type_tag],
+null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$data,this.data],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$trailing_DASH_white_DASH_space,this.trailing_white_space],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$end_DASH_pos,
+this.end_pos],null)],null),this.__extmap))};cljs.pprint.buffer_blob.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,5,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$data,cljs.core.cst$kw$trailing_DASH_white_DASH_space,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};
+cljs.pprint.buffer_blob.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.buffer_blob.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.buffer_blob.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 5+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.buffer_blob.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return 1809113693^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.buffer_blob.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.type_tag,b.type_tag)&&cljs.core._EQ_.call(null,this.data,b.data)&&cljs.core._EQ_.call(null,this.trailing_white_space,b.trailing_white_space)&&cljs.core._EQ_.call(null,this.start_pos,b.start_pos)&&cljs.core._EQ_.call(null,this.end_pos,b.end_pos)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.buffer_blob.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$end_DASH_pos,null,cljs.core.cst$kw$trailing_DASH_white_DASH_space,null,cljs.core.cst$kw$type_DASH_tag,null,cljs.core.cst$kw$start_DASH_pos,null,cljs.core.cst$kw$data,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,
+this),this.__meta),b):new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.buffer_blob.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$type_DASH_tag,b))?new cljs.pprint.buffer_blob(c,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$data,b))?new cljs.pprint.buffer_blob(this.type_tag,c,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,
+null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$trailing_DASH_white_DASH_space,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$start_DASH_pos,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$end_DASH_pos,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,
+this.trailing_white_space,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.buffer_blob.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs.core.cst$kw$data,this.data,null),new cljs.core.MapEntry(cljs.core.cst$kw$trailing_DASH_white_DASH_space,this.trailing_white_space,null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_pos,
+this.start_pos,null),new cljs.core.MapEntry(cljs.core.cst$kw$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.buffer_blob.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
+cljs.pprint.buffer_blob.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.buffer_blob.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$type_DASH_tag,cljs.core.cst$sym$data,cljs.core.cst$sym$trailing_DASH_white_DASH_space,cljs.core.cst$sym$start_DASH_pos,cljs.core.cst$sym$end_DASH_pos],null)};cljs.pprint.buffer_blob.cljs$lang$type=!0;cljs.pprint.buffer_blob.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/buffer-blob",null,1,null)};
+cljs.pprint.buffer_blob.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/buffer-blob")};cljs.pprint.__GT_buffer_blob=function(a,b,c,d,e){return new cljs.pprint.buffer_blob(a,b,c,d,e,null,null,null)};
+cljs.pprint.map__GT_buffer_blob=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$data,cljs.core.cst$kw$trailing_DASH_white_DASH_space,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.buffer_blob(cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$data.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.make_buffer_blob=function(a,b,c,d){return new cljs.pprint.buffer_blob(cljs.core.cst$kw$buffer_DASH_blob,a,b,c,d,null,null,null)};
+cljs.pprint.buffer_blob_QMARK_=function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$buffer_DASH_blob)};cljs.pprint.nl_t=function(a,b,c,d,e,f,g,h){this.type_tag=a;this.type=b;this.logical_block=c;this.start_pos=d;this.end_pos=e;this.__meta=f;this.__extmap=g;this.__hash=h;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
+cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "type":return this.type;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.nl_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.nl_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.nl-t{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,this.type_tag],null),
+new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type,this.type],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$end_DASH_pos,
+this.end_pos],null)],null),this.__extmap))};cljs.pprint.nl_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,5,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$type,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};
+cljs.pprint.nl_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.nl_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.nl_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 5+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.nl_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return-1640656800^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.nl_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.type_tag,b.type_tag)&&cljs.core._EQ_.call(null,this.type,b.type)&&cljs.core._EQ_.call(null,this.logical_block,b.logical_block)&&cljs.core._EQ_.call(null,this.start_pos,b.start_pos)&&cljs.core._EQ_.call(null,this.end_pos,b.end_pos)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.nl_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$end_DASH_pos,null,cljs.core.cst$kw$type,null,cljs.core.cst$kw$logical_DASH_block,null,cljs.core.cst$kw$type_DASH_tag,null,cljs.core.cst$kw$start_DASH_pos,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,
+this),this.__meta),b):new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.nl_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$type_DASH_tag,b))?new cljs.pprint.nl_t(c,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$type,b))?new cljs.pprint.nl_t(this.type_tag,c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,
+cljs.core.cst$kw$logical_DASH_block,b))?new cljs.pprint.nl_t(this.type_tag,this.type,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$start_DASH_pos,b))?new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$end_DASH_pos,b))?new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.nl_t(this.type_tag,
+this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.nl_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs.core.cst$kw$type,this.type,null),new cljs.core.MapEntry(cljs.core.cst$kw$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_pos,this.start_pos,null),
+new cljs.core.MapEntry(cljs.core.cst$kw$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.nl_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
+cljs.pprint.nl_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.nl_t.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$type_DASH_tag,cljs.core.cst$sym$type,cljs.core.cst$sym$logical_DASH_block,cljs.core.cst$sym$start_DASH_pos,cljs.core.cst$sym$end_DASH_pos],null)};cljs.pprint.nl_t.cljs$lang$type=!0;cljs.pprint.nl_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/nl-t",null,1,null)};
+cljs.pprint.nl_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/nl-t")};cljs.pprint.__GT_nl_t=function(a,b,c,d,e){return new cljs.pprint.nl_t(a,b,c,d,e,null,null,null)};
+cljs.pprint.map__GT_nl_t=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$type,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.nl_t(cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$type.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.make_nl_t=function(a,b,c,d){return new cljs.pprint.nl_t(cljs.core.cst$kw$nl_DASH_t,a,b,c,d,null,null,null)};cljs.pprint.nl_t_QMARK_=function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$nl_DASH_t)};
+cljs.pprint.start_block_t=function(a,b,c,d,e,f,g){this.type_tag=a;this.logical_block=b;this.start_pos=c;this.end_pos=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.start_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.start_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.start-block-t{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,
+this.type_tag],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
+cljs.pprint.start_block_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};
+cljs.pprint.start_block_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.start_block_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.start_block_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.start_block_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return-414877272^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.start_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.type_tag,b.type_tag)&&cljs.core._EQ_.call(null,this.logical_block,b.logical_block)&&cljs.core._EQ_.call(null,this.start_pos,b.start_pos)&&cljs.core._EQ_.call(null,this.end_pos,b.end_pos)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.start_block_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$end_DASH_pos,null,cljs.core.cst$kw$logical_DASH_block,null,cljs.core.cst$kw$type_DASH_tag,null,cljs.core.cst$kw$start_DASH_pos,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),
+b):new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.start_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$type_DASH_tag,b))?new cljs.pprint.start_block_t(c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$logical_DASH_block,b))?new cljs.pprint.start_block_t(this.type_tag,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,
+cljs.core.cst$kw$start_DASH_pos,b))?new cljs.pprint.start_block_t(this.type_tag,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$end_DASH_pos,b))?new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.start_block_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs.core.cst$kw$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs.core.cst$kw$end_DASH_pos,
+this.end_pos,null)],null),this.__extmap))};cljs.pprint.start_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
+cljs.pprint.start_block_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.start_block_t.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$type_DASH_tag,cljs.core.cst$sym$logical_DASH_block,cljs.core.cst$sym$start_DASH_pos,cljs.core.cst$sym$end_DASH_pos],null)};cljs.pprint.start_block_t.cljs$lang$type=!0;cljs.pprint.start_block_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/start-block-t",null,1,null)};
+cljs.pprint.start_block_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/start-block-t")};cljs.pprint.__GT_start_block_t=function(a,b,c,d){return new cljs.pprint.start_block_t(a,b,c,d,null,null,null)};
+cljs.pprint.map__GT_start_block_t=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.start_block_t(cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.make_start_block_t=function(a,b,c){return new cljs.pprint.start_block_t(cljs.core.cst$kw$start_DASH_block_DASH_t,a,b,c,null,null,null)};cljs.pprint.start_block_t_QMARK_=function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_block_DASH_t)};
+cljs.pprint.end_block_t=function(a,b,c,d,e,f,g){this.type_tag=a;this.logical_block=b;this.start_pos=c;this.end_pos=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.end_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.end_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.end-block-t{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,this.type_tag],
+null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
+cljs.pprint.end_block_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};
+cljs.pprint.end_block_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.end_block_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.end_block_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.end_block_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return 1365867980^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.end_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.type_tag,b.type_tag)&&cljs.core._EQ_.call(null,this.logical_block,b.logical_block)&&cljs.core._EQ_.call(null,this.start_pos,b.start_pos)&&cljs.core._EQ_.call(null,this.end_pos,b.end_pos)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.end_block_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$end_DASH_pos,null,cljs.core.cst$kw$logical_DASH_block,null,cljs.core.cst$kw$type_DASH_tag,null,cljs.core.cst$kw$start_DASH_pos,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),
+b):new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.end_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$type_DASH_tag,b))?new cljs.pprint.end_block_t(c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$logical_DASH_block,b))?new cljs.pprint.end_block_t(this.type_tag,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,
+cljs.core.cst$kw$start_DASH_pos,b))?new cljs.pprint.end_block_t(this.type_tag,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$end_DASH_pos,b))?new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.end_block_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs.core.cst$kw$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs.core.cst$kw$end_DASH_pos,
+this.end_pos,null)],null),this.__extmap))};cljs.pprint.end_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
+cljs.pprint.end_block_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.end_block_t.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$type_DASH_tag,cljs.core.cst$sym$logical_DASH_block,cljs.core.cst$sym$start_DASH_pos,cljs.core.cst$sym$end_DASH_pos],null)};cljs.pprint.end_block_t.cljs$lang$type=!0;cljs.pprint.end_block_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/end-block-t",null,1,null)};
+cljs.pprint.end_block_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/end-block-t")};cljs.pprint.__GT_end_block_t=function(a,b,c,d){return new cljs.pprint.end_block_t(a,b,c,d,null,null,null)};
+cljs.pprint.map__GT_end_block_t=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.end_block_t(cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.make_end_block_t=function(a,b,c){return new cljs.pprint.end_block_t(cljs.core.cst$kw$end_DASH_block_DASH_t,a,b,c,null,null,null)};cljs.pprint.end_block_t_QMARK_=function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$end_DASH_block_DASH_t)};
+cljs.pprint.indent_t=function(a,b,c,d,e,f,g,h,k){this.type_tag=a;this.logical_block=b;this.relative_to=c;this.offset=d;this.start_pos=e;this.end_pos=f;this.__meta=g;this.__extmap=h;this.__hash=k;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "relative-to":return this.relative_to;case "offset":return this.offset;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.indent_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.indent_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.indent-t{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,this.type_tag],
+null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$relative_DASH_to,this.relative_to],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$offset,this.offset],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$start_DASH_pos,
+this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
+cljs.pprint.indent_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,6,new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$relative_DASH_to,cljs.core.cst$kw$offset,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};
+cljs.pprint.indent_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.indent_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.indent_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 6+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.indent_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return-1602780238^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.indent_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.type_tag,b.type_tag)&&cljs.core._EQ_.call(null,this.logical_block,b.logical_block)&&cljs.core._EQ_.call(null,this.relative_to,b.relative_to)&&cljs.core._EQ_.call(null,this.offset,b.offset)&&cljs.core._EQ_.call(null,this.start_pos,b.start_pos)&&cljs.core._EQ_.call(null,this.end_pos,b.end_pos)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.indent_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$offset,null,cljs.core.cst$kw$end_DASH_pos,null,cljs.core.cst$kw$relative_DASH_to,null,cljs.core.cst$kw$logical_DASH_block,null,cljs.core.cst$kw$type_DASH_tag,null,cljs.core.cst$kw$start_DASH_pos,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,
+cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),b):new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.indent_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$type_DASH_tag,b))?new cljs.pprint.indent_t(c,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$logical_DASH_block,b))?new cljs.pprint.indent_t(this.type_tag,c,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,
+this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$relative_DASH_to,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,c,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$offset,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$start_DASH_pos,b))?new cljs.pprint.indent_t(this.type_tag,
+this.logical_block,this.relative_to,this.offset,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$end_DASH_pos,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.indent_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs.core.cst$kw$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs.core.cst$kw$relative_DASH_to,this.relative_to,null),new cljs.core.MapEntry(cljs.core.cst$kw$offset,this.offset,
+null),new cljs.core.MapEntry(cljs.core.cst$kw$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs.core.cst$kw$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.indent_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
+cljs.pprint.indent_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.indent_t.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$type_DASH_tag,cljs.core.cst$sym$logical_DASH_block,cljs.core.cst$sym$relative_DASH_to,cljs.core.cst$sym$offset,cljs.core.cst$sym$start_DASH_pos,cljs.core.cst$sym$end_DASH_pos],null)};cljs.pprint.indent_t.cljs$lang$type=!0;cljs.pprint.indent_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/indent-t",null,1,null)};
+cljs.pprint.indent_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/indent-t")};cljs.pprint.__GT_indent_t=function(a,b,c,d,e,f){return new cljs.pprint.indent_t(a,b,c,d,e,f,null,null,null)};
+cljs.pprint.map__GT_indent_t=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$type_DASH_tag,cljs.core.cst$kw$logical_DASH_block,cljs.core.cst$kw$relative_DASH_to,cljs.core.cst$kw$offset,cljs.core.cst$kw$start_DASH_pos,cljs.core.cst$kw$end_DASH_pos);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.indent_t(cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),
+cljs.core.cst$kw$relative_DASH_to.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$offset.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty.call(null,b),null)};cljs.pprint.make_indent_t=function(a,b,c,d,e){return new cljs.pprint.indent_t(cljs.core.cst$kw$indent_DASH_t,a,b,c,d,e,null,null,null)};
+cljs.pprint.indent_t_QMARK_=function(a){return cljs.core._EQ_.call(null,cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$indent_DASH_t)};cljs.pprint.pp_newline=function(){return"\n"};
+if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.write_token)cljs.pprint.write_token=function(){var a=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.cst$kw$hierarchy,cljs.core.get_global_hierarchy.call(null));
+return new cljs.core.MultiFn(cljs.core.symbol.call(null,"cljs.pprint","write-token"),function(a,b){return cljs.core.cst$kw$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(b)},cljs.core.cst$kw$default,e,a,b,c,d)}();
+cljs.core._add_method.call(null,cljs.pprint.write_token,cljs.core.cst$kw$start_DASH_block_DASH_t,function(a,b){var c=cljs.core.cst$kw$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));cljs.core.truth_(c)&&c.call(null,cljs.core.cst$kw$start);b=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);c=cljs.core.cst$kw$prefix.cljs$core$IFn$_invoke$arity$1(b);cljs.core.truth_(c)&&cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,
+cljs.core.deref.call(null,a))),c);a=cljs.pprint.get_column.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))));cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$start_DASH_col.cljs$core$IFn$_invoke$arity$1(b),a);return cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$indent.cljs$core$IFn$_invoke$arity$1(b),a)});
+cljs.core._add_method.call(null,cljs.pprint.write_token,cljs.core.cst$kw$end_DASH_block_DASH_t,function(a,b){var c=cljs.core.cst$kw$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));cljs.core.truth_(c)&&c.call(null,cljs.core.cst$kw$end);b=cljs.core.cst$kw$suffix.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b));return cljs.core.truth_(b)?cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,
+cljs.core.deref.call(null,a))),b):null});
+cljs.core._add_method.call(null,cljs.pprint.write_token,cljs.core.cst$kw$indent_DASH_t,function(a,b){var c=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$indent.cljs$core$IFn$_invoke$arity$1(c),cljs.core.cst$kw$offset.cljs$core$IFn$_invoke$arity$1(b)+function(){var d=cljs.core._EQ_,e=cljs.core.cst$kw$relative_DASH_to.cljs$core$IFn$_invoke$arity$1(b);if(cljs.core.truth_(d.call(null,cljs.core.cst$kw$block,e)))return cljs.core.deref.call(null,
+cljs.core.cst$kw$start_DASH_col.cljs$core$IFn$_invoke$arity$1(c));if(cljs.core.truth_(d.call(null,cljs.core.cst$kw$current,e)))return cljs.pprint.get_column.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)].join(""));}())});
+cljs.core._add_method.call(null,cljs.pprint.write_token,cljs.core.cst$kw$buffer_DASH_blob,function(a,b){return cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),cljs.core.cst$kw$data.cljs$core$IFn$_invoke$arity$1(b))});
+cljs.core._add_method.call(null,cljs.pprint.write_token,cljs.core.cst$kw$nl_DASH_t,function(a,b){if(cljs.core.truth_(function(){var a=cljs.core._EQ_.call(null,cljs.core.cst$kw$type.cljs$core$IFn$_invoke$arity$1(b),cljs.core.cst$kw$mandatory);return a?a:cljs.core._EQ_.call(null,cljs.core.cst$kw$type.cljs$core$IFn$_invoke$arity$1(b),cljs.core.cst$kw$fill)?!1:cljs.core.deref.call(null,cljs.core.cst$kw$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b)))}()))cljs.pprint.emit_nl.call(null,
+a,b);else{var c=cljs.core.cst$kw$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));cljs.core.truth_(c)&&cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),c)}return cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$trailing_DASH_white_DASH_space,null)});
+cljs.pprint.write_tokens=function(a,b,c){b=cljs.core.seq.call(null,b);for(var d=null,e=0,f=0;;)if(f=e-d?cljs.pprint.linear_nl_QMARK_.call(null,a,b,c):!1:e:d};
+if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.emit_nl_QMARK_)cljs.pprint.emit_nl_QMARK_=function(){var a=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.cst$kw$hierarchy,cljs.core.get_global_hierarchy.call(null));
+return new cljs.core.MultiFn(cljs.core.symbol.call(null,"cljs.pprint","emit-nl?"),function(a,b,c,d){return cljs.core.cst$kw$type.cljs$core$IFn$_invoke$arity$1(a)},cljs.core.cst$kw$default,e,a,b,c,d)}();cljs.core._add_method.call(null,cljs.pprint.emit_nl_QMARK_,cljs.core.cst$kw$linear,function(a,b,c,d){a=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return cljs.pprint.linear_nl_QMARK_.call(null,b,a,c)});
+cljs.core._add_method.call(null,cljs.pprint.emit_nl_QMARK_,cljs.core.cst$kw$miser,function(a,b,c,d){a=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return cljs.pprint.miser_nl_QMARK_.call(null,b,a,c)});
+cljs.core._add_method.call(null,cljs.pprint.emit_nl_QMARK_,cljs.core.cst$kw$fill,function(a,b,c,d){a=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);var e=cljs.core.deref.call(null,cljs.core.cst$kw$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a));return cljs.core.truth_(e)?e:(d=!cljs.pprint.tokens_fit_QMARK_.call(null,b,d))?d:cljs.pprint.miser_nl_QMARK_.call(null,b,a,c)});
+cljs.core._add_method.call(null,cljs.pprint.emit_nl_QMARK_,cljs.core.cst$kw$mandatory,function(a,b,c,d){return!0});
+cljs.pprint.get_section=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);b=cljs.core.seq.call(null,cljs.core.take_while.call(null,function(a){return!(cljs.pprint.nl_t_QMARK_.call(null,a)&&cljs.pprint.ancestor_QMARK_.call(null,cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),c))},cljs.core.next.call(null,a)));return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.core.seq.call(null,
+cljs.core.drop.call(null,cljs.core.count.call(null,b)+1,a))],null)};
+cljs.pprint.get_sub_section=function(a){var b=cljs.core.first.call(null,a),c=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.seq.call(null,cljs.core.take_while.call(null,function(a){var b=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return!(cljs.pprint.nl_t_QMARK_.call(null,a)&&(cljs.core._EQ_.call(null,b,c)||cljs.pprint.ancestor_QMARK_.call(null,b,c)))},cljs.core.next.call(null,a)))};
+cljs.pprint.update_nl_state=function(a){cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0);cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0);for(a=cljs.core.cst$kw$parent.cljs$core$IFn$_invoke$arity$1(a);;)if(cljs.core.truth_(a))cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0),cljs.core.reset_BANG_.call(null,cljs.core.cst$kw$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),
+!0),a=cljs.core.cst$kw$parent.cljs$core$IFn$_invoke$arity$1(a);else return null};
+cljs.pprint.emit_nl=function(a,b){cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),cljs.pprint.pp_newline.call(null));cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$trailing_DASH_white_DASH_space,null);b=cljs.core.cst$kw$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);var c=cljs.core.cst$kw$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b);cljs.core.truth_(c)&&
+cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),c);c=cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,cljs.core.deref.call(null,cljs.core.cst$kw$indent.cljs$core$IFn$_invoke$arity$1(b))-cljs.core.count.call(null,c)," "));cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),c);return cljs.pprint.update_nl_state.call(null,
+b)};cljs.pprint.split_at_newline=function(a){var b=cljs.core.seq.call(null,cljs.core.take_while.call(null,function(a){return!cljs.pprint.nl_t_QMARK_.call(null,a)},a));return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.core.seq.call(null,cljs.core.drop.call(null,cljs.core.count.call(null,b),a))],null)};
+cljs.pprint.write_token_string=function(a,b){var c=cljs.pprint.split_at_newline.call(null,b);b=cljs.core.nth.call(null,c,0,null);var d=cljs.core.nth.call(null,c,1,null);cljs.core.truth_(b)&&cljs.pprint.write_tokens.call(null,a,b,!1);if(cljs.core.truth_(d)){c=cljs.pprint.get_section.call(null,d);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);var e=cljs.core.first.call(null,d),f=cljs.pprint.emit_nl_QMARK_.call(null,e,a,b,cljs.pprint.get_sub_section.call(null,d));cljs.core.truth_(f)&&
+(cljs.pprint.emit_nl.call(null,a,e),d=cljs.core.next.call(null,d));cljs.pprint.tokens_fit_QMARK_.call(null,a,d)?a=d:(d=cljs.pprint.write_token_string.call(null,a,b),cljs.core._EQ_.call(null,d,b)?(cljs.pprint.write_tokens.call(null,a,b,!1),a=c):a=cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,cljs.core.concat.call(null,d,c)));return a}return null};
+cljs.pprint.write_line=function(a){for(var b=cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));;){cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$buffer,cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,b));if(cljs.pprint.tokens_fit_QMARK_.call(null,a,b))return null;var c=cljs.pprint.write_token_string.call(null,a,b);if(b!==c)b=c;else return null}};
+cljs.pprint.add_to_buffer=function(a,b){cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$buffer,cljs.core.conj.call(null,cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),b));return cljs.pprint.tokens_fit_QMARK_.call(null,a,cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))))?null:cljs.pprint.write_line.call(null,a)};
+cljs.pprint.write_buffered_output=function(a){cljs.pprint.write_line.call(null,a);var b=cljs.core.cst$kw$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));return cljs.core.truth_(b)?(cljs.pprint.write_tokens.call(null,a,b,!0),cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$buffer,cljs.core.PersistentVector.EMPTY)):null};
+cljs.pprint.write_white_space=function(a){var b=cljs.core.cst$kw$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)));return cljs.core.truth_(b)?(cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),b),cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$trailing_DASH_white_DASH_space,null)):null};
+cljs.pprint.write_initial_lines=function(a,b){var c=clojure.string.split.call(null,b,"\n",-1);if(cljs.core._EQ_.call(null,cljs.core.count.call(null,c),1))return b;b=cljs.core.cst$kw$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,cljs.core.cst$kw$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a)))));var d=cljs.core.first.call(null,c);if(cljs.core._EQ_.call(null,cljs.core.cst$kw$buffering,cljs.core.cst$kw$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,
+cljs.core.deref.call(null,a))))){var e=cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),f=e+cljs.core.count.call(null,d);cljs.core.swap_BANG_.call(null,cljs.core.deref.call(null,a),cljs.core.assoc,cljs.core.cst$kw$pos,f);cljs.pprint.add_to_buffer.call(null,a,cljs.pprint.make_buffer_blob.call(null,d,null,e,f));cljs.pprint.write_buffered_output.call(null,a)}else cljs.pprint.write_white_space.call(null,a),cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,
+cljs.core.deref.call(null,a))),d);cljs.core._write.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,a))),"\n");d=cljs.core.seq.call(null,cljs.core.next.call(null,cljs.core.butlast.call(null,c)));e=null;for(var g=f=0;;)if(g=cljs.core._STAR_print_length_STAR_:b);cljs.core.not.call(null,cljs.pprint._STAR_print_pretty_STAR_)?cljs.pprint.pr.call(null,a):cljs.core.truth_(b)?cljs.core._write.call(null,cljs.core._STAR_out_STAR_,"..."):(cljs.core.truth_(cljs.pprint._STAR_current_length_STAR_)&&(cljs.pprint._STAR_current_length_STAR_+=
+1),cljs.pprint._STAR_print_pprint_dispatch_STAR_.call(null,a));return b};cljs.pprint.write=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=cljs.core._STAR_print_level_STAR_:a};
+cljs.pprint.pprint_newline=function(a){cljs.pprint.check_enumerated_arg.call(null,a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$mandatory,null,cljs.core.cst$kw$miser,null,cljs.core.cst$kw$fill,null,cljs.core.cst$kw$linear,null],null),null));return cljs.pprint.nl.call(null,cljs.core._STAR_out_STAR_,a)};
+cljs.pprint.pprint_indent=function(a,b){cljs.pprint.check_enumerated_arg.call(null,a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$block,null,cljs.core.cst$kw$current,null],null),null));return cljs.pprint.indent.call(null,cljs.core._STAR_out_STAR_,a,b)};
+cljs.pprint.pprint_tab=function(a,b,c){cljs.pprint.check_enumerated_arg.call(null,a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$section,null,cljs.core.cst$kw$line,null,cljs.core.cst$kw$line_DASH_relative,null,cljs.core.cst$kw$section_DASH_relative,null],null),null));throw Error("pprint-tab is not yet implemented");};
+cljs.pprint.cl_format=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(a)?cljs.pprint.relative_reposition.call(null,a,cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(a)-b):new cljs.pprint.arg_navigator(cljs.core.cst$kw$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.drop.call(null,b,cljs.core.cst$kw$seq.cljs$core$IFn$_invoke$arity$1(a)),b,null,null,null)};
+cljs.pprint.relative_reposition=function(a,b){var c=cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(a)+b;return 0>b?cljs.pprint.absolute_reposition.call(null,a,c):new cljs.pprint.arg_navigator(cljs.core.cst$kw$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.drop.call(null,b,cljs.core.cst$kw$rest.cljs$core$IFn$_invoke$arity$1(a)),c,null,null,null)};
+cljs.pprint.compiled_directive=function(a,b,c,d,e,f,g){this.func=a;this.def=b;this.params=c;this.offset=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
+cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "func":return this.func;case "def":return this.def;case "params":return this.params;case "offset":return this.offset;default:return cljs.core.get.call(null,this.__extmap,b,c)}};
+cljs.pprint.compiled_directive.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.call(null,function(a,c){var d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);return b.call(null,a,d,c)},c,this)};
+cljs.pprint.compiled_directive.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer.call(null,b,function(a){return cljs.core.pr_sequential_writer.call(null,b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.compiled-directive{",", ","}",c,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$func,
+this.func],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$def,this.def],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$params,this.params],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$offset,this.offset],null)],null),this.__extmap))};
+cljs.pprint.compiled_directive.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$func,cljs.core.cst$kw$def,cljs.core.cst$kw$params,cljs.core.cst$kw$offset],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator.call(null,this.__extmap):cljs.core.nil_iter.call(null))};cljs.pprint.compiled_directive.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
+cljs.pprint.compiled_directive.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,this.__meta,this.__extmap,this.__hash)};cljs.pprint.compiled_directive.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count.call(null,this.__extmap)};
+cljs.pprint.compiled_directive.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=function(a){return-829256337^cljs.core.hash_unordered_coll.call(null,a)}.call(null,this)};
+cljs.pprint.compiled_directive.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.call(null,this.func,b.func)&&cljs.core._EQ_.call(null,this.def,b.def)&&cljs.core._EQ_.call(null,this.params,b.params)&&cljs.core._EQ_.call(null,this.offset,b.offset)&&cljs.core._EQ_.call(null,this.__extmap,b.__extmap)};
+cljs.pprint.compiled_directive.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$offset,null,cljs.core.cst$kw$func,null,cljs.core.cst$kw$params,null,cljs.core.cst$kw$def,null],null),null),b)?cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this),this.__meta),b):new cljs.pprint.compiled_directive(this.func,
+this.def,this.params,this.offset,this.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,this.__extmap,b)),null)};
+cljs.pprint.compiled_directive.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.call(null,cljs.core.cst$kw$func,b))?new cljs.pprint.compiled_directive(c,this.def,this.params,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$def,b))?new cljs.pprint.compiled_directive(this.func,c,this.params,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$params,
+b))?new cljs.pprint.compiled_directive(this.func,this.def,c,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.call(null,cljs.core.cst$kw$offset,b))?new cljs.pprint.compiled_directive(this.func,this.def,this.params,c,this.__meta,this.__extmap,null):new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,this.__meta,cljs.core.assoc.call(null,this.__extmap,b,c),null)};
+cljs.pprint.compiled_directive.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs.core.cst$kw$func,this.func,null),new cljs.core.MapEntry(cljs.core.cst$kw$def,this.def,null),new cljs.core.MapEntry(cljs.core.cst$kw$params,this.params,null),new cljs.core.MapEntry(cljs.core.cst$kw$offset,this.offset,null)],null),this.__extmap))};
+cljs.pprint.compiled_directive.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,b,this.__extmap,this.__hash)};
+cljs.pprint.compiled_directive.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_.call(null,b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,b,0),cljs.core._nth.call(null,b,1)):cljs.core.reduce.call(null,cljs.core._conj,this,b)};
+cljs.pprint.compiled_directive.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$func,cljs.core.cst$sym$def,cljs.core.cst$sym$params,cljs.core.cst$sym$offset],null)};cljs.pprint.compiled_directive.cljs$lang$type=!0;cljs.pprint.compiled_directive.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/compiled-directive",null,1,null)};
+cljs.pprint.compiled_directive.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write.call(null,b,"cljs.pprint/compiled-directive")};cljs.pprint.__GT_compiled_directive=function(a,b,c,d){return new cljs.pprint.compiled_directive(a,b,c,d,null,null,null)};
+cljs.pprint.map__GT_compiled_directive=function(a){var b=cljs.core.dissoc.call(null,a,cljs.core.cst$kw$func,cljs.core.cst$kw$def,cljs.core.cst$kw$params,cljs.core.cst$kw$offset);b=cljs.core.record_QMARK_.call(null,a)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.compiled_directive(cljs.core.cst$kw$func.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$def.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$offset.cljs$core$IFn$_invoke$arity$1(a),
+null,cljs.core.not_empty.call(null,b),null)};
+cljs.pprint.realize_parameter=function(a,b){var c=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);var d=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);d=cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$colon,null,cljs.core.cst$kw$at,null],null),null),c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b],null):cljs.core._EQ_.call(null,d,cljs.core.cst$kw$parameter_DASH_from_DASH_args)?
+cljs.pprint.next_arg.call(null,b):cljs.core._EQ_.call(null,d,cljs.core.cst$kw$remaining_DASH_arg_DASH_count)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.count.call(null,cljs.core.cst$kw$rest.cljs$core$IFn$_invoke$arity$1(b)),b],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b],null);b=cljs.core.nth.call(null,d,0,null);d=cljs.core.nth.call(null,d,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)],null),d],null)};
+cljs.pprint.realize_parameter_list=function(a,b){b=cljs.pprint.map_passing_context.call(null,cljs.pprint.realize_parameter,b,a);a=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,a),b],null)};cljs.pprint.special_radix_markers=new cljs.core.PersistentArrayMap(null,3,[2,"#b",8,"#o",16,"#x"],null);
+cljs.pprint.format_simple_number=function(a){return cljs.core.integer_QMARK_.call(null,a)?cljs.core._EQ_.call(null,cljs.pprint._STAR_print_base_STAR_,10)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?".":null].join(""):[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?function(){var a=cljs.core.get.call(null,cljs.pprint.special_radix_markers,cljs.pprint._STAR_print_base_STAR_);return cljs.core.truth_(a)?
+a:["#",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_print_base_STAR_),"r"].join("")}():null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint.opt_base_str.call(null,cljs.pprint._STAR_print_base_STAR_,a))].join(""):null};
+cljs.pprint.format_ascii=function(a,b,c,d){c=cljs.pprint.next_arg.call(null,c);d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);var e=cljs.pprint.format_simple_number.call(null,d);a=cljs.core.truth_(e)?e:a.call(null,d);d=a.length;e=d+cljs.core.cst$kw$minpad.cljs$core$IFn$_invoke$arity$1(b);e=e>=cljs.core.cst$kw$mincol.cljs$core$IFn$_invoke$arity$1(b)?e:e+(cljs.core.quot.call(null,cljs.core.cst$kw$mincol.cljs$core$IFn$_invoke$arity$1(b)-e-1,cljs.core.cst$kw$colinc.cljs$core$IFn$_invoke$arity$1(b))+
+1)*cljs.core.cst$kw$colinc.cljs$core$IFn$_invoke$arity$1(b);d=cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,e-d,cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(b)));cljs.core.truth_(cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(b))?cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")):cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""));
+return c};cljs.pprint.integral_QMARK_=function(a){return cljs.core.integer_QMARK_.call(null,a)?!0:cljs.pprint.float_QMARK_.call(null,a)?cljs.core._EQ_.call(null,a,Math.floor(a)):!1};
+cljs.pprint.remainders=function(a,b){return cljs.core.reverse.call(null,cljs.core.first.call(null,cljs.pprint.consume.call(null,function(b){return 0a?cljs.core.char$.call(null,cljs.pprint.char_code.call(null,"0")+a):cljs.core.char$.call(null,cljs.pprint.char_code.call(null,"a")+(a-10))},cljs.pprint.remainders.call(null,a,b)))};cljs.pprint.javascript_base_formats=new cljs.core.PersistentArrayMap(null,3,[8,"%o",10,"%d",16,"%x"],null);
+cljs.pprint.opt_base_str=function(a,b){return cljs.pprint.base_str.call(null,a,b)};cljs.pprint.group_by_STAR_=function(a,b){return cljs.core.reverse.call(null,cljs.core.first.call(null,cljs.pprint.consume.call(null,function(b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.seq.call(null,cljs.core.reverse.call(null,cljs.core.take.call(null,a,b))),cljs.core.seq.call(null,cljs.core.drop.call(null,a,b))],null)},cljs.core.reverse.call(null,b))))};
+cljs.pprint.format_integer=function(a,b,c,d){c=cljs.pprint.next_arg.call(null,c);d=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);if(cljs.pprint.integral_QMARK_.call(null,d)){var e=0>d,f=cljs.pprint.opt_base_str.call(null,a,e?-d:d);a=cljs.core.truth_(cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(b))?function(){var a=cljs.core.map.call(null,function(a){return cljs.core.apply.call(null,cljs.core.str,a)},cljs.pprint.group_by_STAR_.call(null,cljs.core.cst$kw$commainterval.cljs$core$IFn$_invoke$arity$1(b),
+f)),c=cljs.core.repeat.call(null,cljs.core.count.call(null,a),cljs.core.cst$kw$commachar.cljs$core$IFn$_invoke$arity$1(b));return cljs.core.apply.call(null,cljs.core.str,cljs.core.next.call(null,cljs.core.interleave.call(null,c,a)))}():f;a=e?["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):cljs.core.truth_(cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(b))?["+",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):a;a=a.lengthc?cljs.core.nth.call(null,cljs.pprint.english_cardinal_units,c):function(){var a=cljs.core.quot.call(null,c,10),b=cljs.core.rem.call(null,c,10);return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<
+a?cljs.core.nth.call(null,cljs.pprint.english_cardinal_tens,a):null),0a?-a:a),cljs.core.count.call(null,c)<=cljs.core.count.call(null,cljs.pprint.english_scale_numbers)?(c=cljs.core.map.call(null,cljs.pprint.format_simple_cardinal,c),c=cljs.pprint.add_english_scales.call(null,c,0),cljs.pprint.print.call(null,
+[0>a?"minus ":null,c].join(""))):cljs.pprint.format_integer.call(null,10,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$mincol,0,cljs.core.cst$kw$padchar," ",cljs.core.cst$kw$commachar,",",cljs.core.cst$kw$commainterval,3,cljs.core.cst$kw$colon,!0],null),cljs.pprint.init_navigator.call(null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null)),new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$mincol,0,cljs.core.cst$kw$padchar,0,cljs.core.cst$kw$commachar,
+0,cljs.core.cst$kw$commainterval,0],null)));return b};
+cljs.pprint.format_simple_ordinal=function(a){var b=cljs.core.quot.call(null,a,100),c=cljs.core.rem.call(null,a,100);return[0c?cljs.core.nth.call(null,cljs.pprint.english_ordinal_units,c):function(){var a=cljs.core.quot.call(null,c,10),b=cljs.core.rem.call(null,c,10);return 0b?-b:b),cljs.core.count.call(null,c)<=cljs.core.count.call(null,cljs.pprint.english_scale_numbers)){var d=cljs.core.map.call(null,cljs.pprint.format_simple_cardinal,cljs.core.drop_last.call(null,c));d=cljs.pprint.add_english_scales.call(null,
+d,1);c=cljs.pprint.format_simple_ordinal.call(null,cljs.core.last.call(null,c));cljs.pprint.print.call(null,[0>b?"minus ":null,cljs.core.empty_QMARK_.call(null,d)||cljs.core.empty_QMARK_.call(null,c)?cljs.core.empty_QMARK_.call(null,d)?c:[d,"th"].join(""):[d,", ",c].join("")].join(""))}else cljs.pprint.format_integer.call(null,10,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$mincol,0,cljs.core.cst$kw$padchar," ",cljs.core.cst$kw$commachar,",",cljs.core.cst$kw$commainterval,3,cljs.core.cst$kw$colon,
+!0],null),cljs.pprint.init_navigator.call(null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null)),new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$mincol,0,cljs.core.cst$kw$padchar,0,cljs.core.cst$kw$commachar,0,cljs.core.cst$kw$commainterval,0],null)),c=cljs.core.rem.call(null,b,100),b=11c,c=cljs.core.rem.call(null,c,10),cljs.pprint.print.call(null,1===c&&b?"st":2===c&&b?"nd":3===c&&b?"rd":"th");return a};
+cljs.pprint.old_roman_table=new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"I II III IIII V VI VII VIII VIIII".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"X XX XXX XXXX L LX LXX LXXX LXXXX".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"C CC CCC CCCC D DC DCC DCCC DCCCC".split(" "),null),new cljs.core.PersistentVector(null,
+3,5,cljs.core.PersistentVector.EMPTY_NODE,["M","MM","MMM"],null)],null);
+cljs.pprint.new_roman_table=new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"I II III IV V VI VII VIII IX".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"X XX XXX XL L LX LXX LXXX XC".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"C CC CCC CD D DC DCC DCCC CM".split(" "),null),new cljs.core.PersistentVector(null,
+3,5,cljs.core.PersistentVector.EMPTY_NODE,["M","MM","MMM"],null)],null);
+cljs.pprint.format_roman=function(a,b,c,d){b=cljs.pprint.next_arg.call(null,c);c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);if("number"===typeof c&&0c){var e=cljs.pprint.remainders.call(null,10,c);c=cljs.core.PersistentVector.EMPTY;for(d=cljs.core.count.call(null,e)-1;;)if(cljs.core.empty_QMARK_.call(null,e)){cljs.pprint.print.call(null,cljs.core.apply.call(null,cljs.core.str,c));break}else{var f=cljs.core.first.call(null,e);c=cljs.core._EQ_.call(null,0,f)?c:cljs.core.conj.call(null,
+c,cljs.core.nth.call(null,cljs.core.nth.call(null,a,d),f-1));--d;e=cljs.core.next.call(null,e)}}else cljs.pprint.format_integer.call(null,10,new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$mincol,0,cljs.core.cst$kw$padchar," ",cljs.core.cst$kw$commachar,",",cljs.core.cst$kw$commainterval,3,cljs.core.cst$kw$colon,!0],null),cljs.pprint.init_navigator.call(null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null)),new cljs.core.PersistentArrayMap(null,4,[cljs.core.cst$kw$mincol,
+0,cljs.core.cst$kw$padchar,0,cljs.core.cst$kw$commachar,0,cljs.core.cst$kw$commainterval,0],null));return b};cljs.pprint.format_old_roman=function(a,b,c){return cljs.pprint.format_roman.call(null,cljs.pprint.old_roman_table,a,b,c)};cljs.pprint.format_new_roman=function(a,b,c){return cljs.pprint.format_roman.call(null,cljs.pprint.new_roman_table,a,b,c)};cljs.pprint.special_chars=new cljs.core.PersistentArrayMap(null,5,[8,"Backspace",9,"Tab",10,"Newline",13,"Return",32,"Space"],null);
+cljs.pprint.pretty_character=function(a,b,c){a=cljs.pprint.next_arg.call(null,b);b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);c=cljs.pprint.char_code.call(null,b);b=c&127;c&=128;var d=cljs.core.get.call(null,cljs.pprint.special_chars,b);0b?["Control-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.char$.call(null,b+64))].join(""):cljs.core._EQ_.call(null,b,127)?"Control-?":
+cljs.core.char$.call(null,b));return a};
+cljs.pprint.readable_character=function(a,b,c){c=cljs.pprint.next_arg.call(null,b);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);var d=cljs.core._EQ_;a=cljs.core.cst$kw$char_DASH_format.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.truth_(d.call(null,"o",a)))cljs.pprint.cl_format.call(null,!0,"\\o~3, '0o",cljs.pprint.char_code.call(null,b));else if(cljs.core.truth_(d.call(null,"u",a)))cljs.pprint.cl_format.call(null,!0,"\\u~4, '0x",cljs.pprint.char_code.call(null,b));else if(cljs.core.truth_(d.call(null,
+null,a)))cljs.pprint.print_char.call(null,b);else throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));return c};cljs.pprint.plain_character=function(a,b,c){b=cljs.pprint.next_arg.call(null,b);a=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);cljs.pprint.print.call(null,a);return b};
+cljs.pprint.abort_QMARK_=function(a){a=cljs.core.first.call(null,a);return cljs.core._EQ_.call(null,cljs.core.cst$kw$up_DASH_arrow,a)||cljs.core._EQ_.call(null,cljs.core.cst$kw$colon_DASH_up_DASH_arrow,a)};
+cljs.pprint.execute_sub_format=function(a,b,c){return cljs.core.second.call(null,cljs.pprint.map_passing_context.call(null,function(a,b){if(cljs.pprint.abort_QMARK_.call(null,b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.pprint.realize_parameter_list.call(null,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a),b);var d=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);var e=cljs.pprint.unzip_map.call(null,d);
+d=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);d=cljs.core.assoc.call(null,d,cljs.core.cst$kw$base_DASH_args,c);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.apply.call(null,cljs.core.cst$kw$func.cljs$core$IFn$_invoke$arity$1(a),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b,e],null))],null)},b,a))};
+cljs.pprint.float_parts_base=function(a){a=clojure.string.lower_case.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));var b=a.indexOf("e"),c=a.indexOf(".");return 0>b?0>c?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.length-1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.subs.call(null,a,0,c),cljs.core.subs.call(null,a,c+1)].join(""),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c-
+1)],null):0>c?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.subs.call(null,a,0,b),cljs.core.subs.call(null,a,b+1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.subs.call(null,a,0,1),cljs.core.subs.call(null,a,2,b)].join(""),cljs.core.subs.call(null,a,b+1)],null)};
+cljs.pprint.float_parts=function(a){a=cljs.pprint.float_parts_base.call(null,a);var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);var c=cljs.pprint.rtrim.call(null,b,"0");b=cljs.pprint.ltrim.call(null,c,"0");c=cljs.core.count.call(null,c)-cljs.core.count.call(null,b);a=0c)return cljs.core.apply.call(null,cljs.core.str,"1",cljs.core.repeat.call(null,b+1,"0"));if(cljs.core._EQ_.call(null,"9",a.charAt(c)))--c;else return cljs.core.apply.call(null,cljs.core.str,cljs.core.subs.call(null,a,0,c),cljs.core.char$.call(null,cljs.pprint.char_code.call(null,a.charAt(c))+1),cljs.core.repeat.call(null,b-c,"0"))}};
+cljs.pprint.round_str=function(a,b,c,d){if(cljs.core.truth_(cljs.core.truth_(c)?c:d)){var e=cljs.core.count.call(null,a);d=cljs.core.truth_(d)?2>d?2:d:0;cljs.core.truth_(c)?c=b+c+1:0<=b?(c=b+1,--d,c=c>d?c:d):c=d+b;var f=cljs.core._EQ_.call(null,c,0)?new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[["0",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),b+1,1,e+1],null):new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,e],null);
+c=cljs.core.nth.call(null,f,0,null);e=cljs.core.nth.call(null,f,1,null);d=cljs.core.nth.call(null,f,2,null);f=cljs.core.nth.call(null,f,3,null);if(cljs.core.truth_(d)){if(0>d)return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,["0",0,!1],null);if(f>d)return a=cljs.core.nth.call(null,c,d),b=cljs.core.subs.call(null,c,0,d),cljs.pprint.char_code.call(null,a)>=cljs.pprint.char_code.call(null,"5")?(a=cljs.pprint.inc_s.call(null,b),b=cljs.core.count.call(null,a)>b.length,
+new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b?cljs.core.subs.call(null,a,0,cljs.core.count.call(null,a)-1):a,e,b],null)):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,e,!1],null)}}return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,!1],null)};
+cljs.pprint.expand_fixed=function(a,b,c){b=0>b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,-b-1,"0"))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),-1],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null);a=cljs.core.nth.call(null,b,0,null);var d=cljs.core.nth.call(null,b,1,null);b=cljs.core.count.call(null,
+a);c=cljs.core.truth_(c)?d+c+1:d+1;return bb)return[".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("");b+=1;return[cljs.core.subs.call(null,a,0,b),".",cljs.core.subs.call(null,a,b)].join("")};
+cljs.pprint.get_fixed=function(a,b,c){return cljs.pprint.insert_decimal.call(null,cljs.pprint.expand_fixed.call(null,a,b,c),b)};cljs.pprint.insert_scaled_decimal=function(a,b){return 0>b?[".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):[cljs.core.subs.call(null,a,0,b),".",cljs.core.subs.call(null,a,b)].join("")};cljs.pprint.convert_ratio=function(a){return a};
+cljs.pprint.fixed_float=function(a,b,c){c=cljs.core.cst$kw$w.cljs$core$IFn$_invoke$arity$1(a);var d=cljs.core.cst$kw$d.cljs$core$IFn$_invoke$arity$1(a);b=cljs.pprint.next_arg.call(null,b);var e=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);var f=0>e?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["-",-e],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["+",e],null),g=cljs.core.nth.call(null,f,0,null);f=cljs.core.nth.call(null,
+f,1,null);f=cljs.pprint.convert_ratio.call(null,f);f=cljs.pprint.float_parts.call(null,f);var h=cljs.core.nth.call(null,f,0,null),k=cljs.core.nth.call(null,f,1,null)+cljs.core.cst$kw$k.cljs$core$IFn$_invoke$arity$1(a);f=cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a);e=cljs.core.truth_(f)?f:0>e;f=cljs.core.not.call(null,d)&&cljs.core.count.call(null,h)-1<=k;var l=cljs.pprint.round_str.call(null,h,k,d,cljs.core.truth_(c)?c-(cljs.core.truth_(e)?1:0):null);h=cljs.core.nth.call(null,l,0,null);k=
+cljs.core.nth.call(null,l,1,null);l=cljs.core.nth.call(null,l,2,null);h=cljs.pprint.get_fixed.call(null,h,cljs.core.truth_(l)?k+1:k,d);d=cljs.core.truth_(cljs.core.truth_(c)?cljs.core.truth_(d)?1<=d&&cljs.core._EQ_.call(null,h.charAt(0),"0")&&cljs.core._EQ_.call(null,h.charAt(1),".")&&h.length>c-(cljs.core.truth_(e)?1:0):d:c)?cljs.core.subs.call(null,h,1):h;k=cljs.core._EQ_.call(null,cljs.core.first.call(null,d),".");cljs.core.truth_(c)?(h=d.length,h=cljs.core.truth_(e)?h+1:h,k=k&&!(h>=c),f=f&&!(h>=
+c),h=k||f?h+1:h,cljs.core.truth_(h>c?cljs.core.cst$kw$overflowchar.cljs$core$IFn$_invoke$arity$1(a):!1)?cljs.pprint.print.call(null,cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,c,cljs.core.cst$kw$overflowchar.cljs$core$IFn$_invoke$arity$1(a)))):cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,c-h,cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(a)))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(e)?
+g:null),k?"0":null,d,f?"0":null].join(""))):cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(e)?g:null),k?"0":null,d,f?"0":null].join(""));return b};
+cljs.pprint.exponential_float=function(a,b,c){b=cljs.pprint.next_arg.call(null,b);c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);var d=cljs.pprint.convert_ratio.call(null,c);c=cljs.pprint.float_parts.call(null,0>d?-d:d);cljs.core.nth.call(null,c,0,null);for(cljs.core.nth.call(null,c,1,null);;){var e=cljs.core.nth.call(null,c,0,null),f=cljs.core.nth.call(null,c,1,null),g=cljs.core.cst$kw$w.cljs$core$IFn$_invoke$arity$1(a),h=cljs.core.cst$kw$d.cljs$core$IFn$_invoke$arity$1(a),
+k=cljs.core.cst$kw$e.cljs$core$IFn$_invoke$arity$1(a),l=cljs.core.cst$kw$k.cljs$core$IFn$_invoke$arity$1(a),m=function(){var b=cljs.core.cst$kw$exponentchar.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:"E"}();c=function(){var b=cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:0>d}();var n=0>=l,p=f-(l-1),q=cljs.core.str.cljs$core$IFn$_invoke$arity$1(Math.abs(p));m=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(m),0>p?"-":"+",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(k)?
+cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,k-q.length,"0")):null),q].join("");var r=m.length;p=cljs.core.count.call(null,e);e=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,-l,"0"))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(h)?cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,h-(p-1)-(0>l?-l:0),"0")):null)].join("");p=cljs.core.truth_(g)?
+g-r:null;e=cljs.pprint.round_str.call(null,e,0,cljs.core._EQ_.call(null,l,0)?h-1:0l?h-1:null,cljs.core.truth_(p)?p-(cljs.core.truth_(c)?1:0):null);p=cljs.core.nth.call(null,e,0,null);cljs.core.nth.call(null,e,1,null);q=cljs.core.nth.call(null,e,2,null);e=cljs.pprint.insert_scaled_decimal.call(null,p,l);h=cljs.core._EQ_.call(null,l,cljs.core.count.call(null,p))&&null==h;if(cljs.core.not.call(null,q)){if(cljs.core.truth_(g)){f=e.length+r;f=cljs.core.truth_(c)?f+1:f;var t=(n=n&&!cljs.core._EQ_.call(null,
+f,g))?f+1:f;f=h&&tg;b||(b=k,b=cljs.core.truth_(b)?r-2>k:b);return cljs.core.truth_(b)?cljs.core.cst$kw$overflowchar.cljs$core$IFn$_invoke$arity$1(a):b}())?cljs.pprint.print.call(null,cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,g,cljs.core.cst$kw$overflowchar.cljs$core$IFn$_invoke$arity$1(a)))):cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,g-t-
+(f?1:0),cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(a)))),cljs.core.truth_(c)?0>d?"-":"+":null,n?"0":null,e,f?"0":null,m].join(""))}else cljs.pprint.print.call(null,[cljs.core.truth_(c)?0>d?"-":"+":null,n?"0":null,e,h?"0":null,m].join(""));break}else c=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[p,f+1],null)}return b};
+cljs.pprint.general_float=function(a,b,c){var d=cljs.pprint.next_arg.call(null,b),e=cljs.core.nth.call(null,d,0,null);cljs.core.nth.call(null,d,1,null);d=cljs.pprint.convert_ratio.call(null,e);e=cljs.pprint.float_parts.call(null,0>d?-d:d);var f=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);var g=cljs.core.cst$kw$w.cljs$core$IFn$_invoke$arity$1(a),h=cljs.core.cst$kw$d.cljs$core$IFn$_invoke$arity$1(a),k=cljs.core.cst$kw$e.cljs$core$IFn$_invoke$arity$1(a);e=cljs.core._EQ_.call(null,
+d,0)?0:e+1;d=cljs.core.truth_(k)?k+2:4;g=cljs.core.truth_(g)?g-d:null;cljs.core.truth_(h)?f=h:(f=cljs.core.count.call(null,f),h=7>e?e:7,f=f>h?f:h);e=f-e;return 0<=e&&e<=f?(a=cljs.pprint.fixed_float.call(null,new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$w,g,cljs.core.cst$kw$d,e,cljs.core.cst$kw$k,0,cljs.core.cst$kw$overflowchar,cljs.core.cst$kw$overflowchar.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$padchar,cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cst$kw$at,
+cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a)],null),b,c),cljs.pprint.print.call(null,cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,d," "))),a):cljs.pprint.exponential_float.call(null,a,b,c)};
+cljs.pprint.dollar_float=function(a,b,c){b=cljs.pprint.next_arg.call(null,b);var d=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);c=cljs.pprint.float_parts.call(null,Math.abs(d));var e=cljs.core.nth.call(null,c,0,null),f=cljs.core.nth.call(null,c,1,null),g=cljs.core.cst$kw$d.cljs$core$IFn$_invoke$arity$1(a),h=cljs.core.cst$kw$n.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.cst$kw$w.cljs$core$IFn$_invoke$arity$1(a);var k=function(){var b=cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a);
+return cljs.core.truth_(b)?b:0>d}(),l=cljs.pprint.round_str.call(null,e,f,g,null);e=cljs.core.nth.call(null,l,0,null);f=cljs.core.nth.call(null,l,1,null);l=cljs.core.nth.call(null,l,2,null);g=cljs.pprint.get_fixed.call(null,e,cljs.core.truth_(l)?f+1:f,g);h=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,h-g.indexOf("."),"0"))),g].join("");g=h.length+(cljs.core.truth_(k)?1:0);cljs.pprint.print.call(null,[cljs.core.truth_(function(){var b=
+cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?k:b}())?0>d?"-":"+":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,c-g,cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(a)))),cljs.core.truth_(cljs.core.not.call(null,cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(a))?k:!1)?0>d?"-":"+":null,h].join(""));return b};
+cljs.pprint.choice_conditional=function(a,b,c){c=cljs.core.cst$kw$selector.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.truth_(c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null):cljs.pprint.next_arg.call(null,b);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);var d=cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a);b=0>b||b>=cljs.core.count.call(null,d)?cljs.core.first.call(null,cljs.core.cst$kw$else.cljs$core$IFn$_invoke$arity$1(a)):
+cljs.core.nth.call(null,d,b);return cljs.core.truth_(b)?cljs.pprint.execute_sub_format.call(null,b,c,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):c};
+cljs.pprint.boolean_conditional=function(a,b,c){c=cljs.pprint.next_arg.call(null,b);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);var d=cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a);b=cljs.core.truth_(b)?cljs.core.second.call(null,d):cljs.core.first.call(null,d);return cljs.core.truth_(b)?cljs.pprint.execute_sub_format.call(null,b,c,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):c};
+cljs.pprint.check_arg_conditional=function(a,b,c){var d=cljs.pprint.next_arg.call(null,b);c=cljs.core.nth.call(null,d,0,null);d=cljs.core.nth.call(null,d,1,null);var e=cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a);e=cljs.core.truth_(c)?cljs.core.first.call(null,e):null;return cljs.core.truth_(c)?cljs.core.truth_(e)?cljs.pprint.execute_sub_format.call(null,e,b,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):b:d};
+cljs.pprint.iterate_sublist=function(a,b,c){var d=cljs.core.cst$kw$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first.call(null,cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_.call(null,c)?cljs.pprint.get_format_arg.call(null,b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);c=cljs.pprint.next_arg.call(null,c);var e=cljs.core.nth.call(null,
+c,0,null);c=cljs.core.nth.call(null,c,1,null);var f=0,g=cljs.pprint.init_navigator.call(null,e);for(e=-1;;){if(cljs.core.not.call(null,d)&&cljs.core._EQ_.call(null,cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(g),e)&&1=d:d}()))return c;var h=cljs.pprint.execute_sub_format.call(null,b,g,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));if(cljs.core._EQ_.call(null,cljs.core.cst$kw$up_DASH_arrow,cljs.core.first.call(null,h)))return c;e=f+1;var k=cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(g);f=e;g=h;e=k}};
+cljs.pprint.iterate_list_of_sublists=function(a,b,c){var d=cljs.core.cst$kw$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first.call(null,cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_.call(null,c)?cljs.pprint.get_format_arg.call(null,b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);c=cljs.pprint.next_arg.call(null,c);var e=cljs.core.nth.call(null,
+c,0,null);c=cljs.core.nth.call(null,c,1,null);for(var f=0,g=e;;){if(cljs.core.truth_(function(){var b=cljs.core.empty_QMARK_.call(null,g)&&(cljs.core.not.call(null,cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||0=d:d}()))return c;e=cljs.pprint.execute_sub_format.call(null,b,cljs.pprint.init_navigator.call(null,cljs.core.first.call(null,g)),cljs.pprint.init_navigator.call(null,cljs.core.next.call(null,
+g)));if(cljs.core._EQ_.call(null,cljs.core.cst$kw$colon_DASH_up_DASH_arrow,cljs.core.first.call(null,e)))return c;e=f+1;var h=cljs.core.next.call(null,g);f=e;g=h}};
+cljs.pprint.iterate_main_list=function(a,b,c){var d=cljs.core.cst$kw$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first.call(null,cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_.call(null,c)?cljs.pprint.get_format_arg.call(null,b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.call(null,c,0,null);var e=0,f=cljs.core.nth.call(null,c,1,null);for(c=-1;;){if(cljs.core.not.call(null,d)&&cljs.core._EQ_.call(null,
+cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(f),c)&&1=d:d}()))return f;var g=cljs.pprint.execute_sub_format.call(null,
+b,f,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));if(cljs.core._EQ_.call(null,cljs.core.cst$kw$up_DASH_arrow,cljs.core.first.call(null,g)))return cljs.core.second.call(null,g);c=e+1;var h=cljs.core.cst$kw$pos.cljs$core$IFn$_invoke$arity$1(f);e=c;f=g;c=h}};
+cljs.pprint.iterate_main_sublists=function(a,b,c){var d=cljs.core.cst$kw$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first.call(null,cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_.call(null,c)?cljs.pprint.get_format_arg.call(null,b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.call(null,c,0,null);for(var e=0,f=cljs.core.nth.call(null,c,1,null);;){if(cljs.core.truth_(function(){var b=
+cljs.core.empty_QMARK_.call(null,cljs.core.cst$kw$rest.cljs$core$IFn$_invoke$arity$1(f))&&(cljs.core.not.call(null,cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||0=d:d}()))return f;var g=cljs.pprint.next_arg_or_nil.call(null,f);c=cljs.core.nth.call(null,g,0,null);g=cljs.core.nth.call(null,g,1,null);c=cljs.pprint.execute_sub_format.call(null,b,cljs.pprint.init_navigator.call(null,c),g);
+if(cljs.core._EQ_.call(null,cljs.core.cst$kw$colon_DASH_up_DASH_arrow,cljs.core.first.call(null,c)))return g;c=g;e+=1;f=c}};cljs.pprint.logical_block_or_justify=function(a,b,c){return cljs.core.truth_(cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))?cljs.pprint.format_logical_block.call(null,a,b,c):cljs.pprint.justify_clauses.call(null,a,b,c)};
+cljs.pprint.render_clauses=function(a,b,c){for(var d=cljs.core.PersistentVector.EMPTY;;){if(cljs.core.empty_QMARK_.call(null,a))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b],null);var e=cljs.core.first.call(null,a);a:{var f=new goog.string.StringBuffer,g=cljs.core._STAR_out_STAR_,h=new cljs.core.StringBufferWriter(f);cljs.core._STAR_out_STAR_=h;try{var k=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.execute_sub_format.call(null,
+e,b,c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)],null);break a}finally{cljs.core._STAR_out_STAR_=g}k=void 0}b=cljs.core.nth.call(null,k,0,null);e=cljs.core.nth.call(null,k,1,null);if(cljs.core._EQ_.call(null,cljs.core.cst$kw$up_DASH_arrow,cljs.core.first.call(null,b)))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,cljs.core.second.call(null,b)],null);a=cljs.core.next.call(null,a);d=cljs.core.conj.call(null,d,e)}};
+cljs.pprint.justify_clauses=function(a,b,c){var d=function(){var c=cljs.core.cst$kw$else.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(c)?cljs.pprint.render_clauses.call(null,c,b,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):null}();c=cljs.core.nth.call(null,d,0,null);c=cljs.core.nth.call(null,c,0,null);d=cljs.core.nth.call(null,d,1,null);var e=cljs.core.truth_(d)?d:b;d=function(){var b=cljs.core.cst$kw$else_DASH_params.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?
+cljs.pprint.realize_parameter_list.call(null,b,e):null}();var f=cljs.core.nth.call(null,d,0,null);d=cljs.core.nth.call(null,d,1,null);var g=cljs.core.truth_(d)?d:e;d=function(){var a=cljs.core.first.call(null,cljs.core.cst$kw$min_DASH_remaining.cljs$core$IFn$_invoke$arity$1(f));return cljs.core.truth_(a)?a:0}();var h=function(){var a=cljs.core.first.call(null,cljs.core.cst$kw$max_DASH_columns.cljs$core$IFn$_invoke$arity$1(f));return cljs.core.truth_(a)?a:cljs.pprint.get_max_column.call(null,cljs.core._STAR_out_STAR_)}(),
+k=cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(a);g=cljs.pprint.render_clauses.call(null,k,g,cljs.core.cst$kw$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));var l=cljs.core.nth.call(null,g,0,null);g=cljs.core.nth.call(null,g,1,null);var m=function(){var b=cljs.core.count.call(null,l)-1+(cljs.core.truth_(cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(a))?1:0)+(cljs.core.truth_(cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a))?1:0);return 1>b?1:b}();k=cljs.core.reduce.call(null,
+cljs.core._PLUS_,cljs.core.map.call(null,cljs.core.count,l));var n=cljs.core.cst$kw$mincol.cljs$core$IFn$_invoke$arity$1(a),p=cljs.core.cst$kw$minpad.cljs$core$IFn$_invoke$arity$1(a),q=cljs.core.cst$kw$colinc.cljs$core$IFn$_invoke$arity$1(a),r=k+m*p;n=r<=n?n:n+q*(1+cljs.core.quot.call(null,r-n-1,q));var t=n-k;k=function(){var a=cljs.core.quot.call(null,t,m);return p>a?p:a}();q=t-k*m;k=cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,k,cljs.core.cst$kw$padchar.cljs$core$IFn$_invoke$arity$1(a)));
+cljs.core.truth_(cljs.core.truth_(c)?cljs.pprint.get_column.call(null,cljs.core.cst$kw$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,cljs.core.deref.call(null,cljs.core._STAR_out_STAR_))))+d+n>h:c)&&cljs.pprint.print.call(null,c);d=q;for(var u=l,v=function(){var b=cljs.core.cst$kw$colon.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:cljs.core._EQ_.call(null,cljs.core.count.call(null,u),1)&&cljs.core.not.call(null,cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a))}();;)if(cljs.core.seq.call(null,
+u))cljs.pprint.print.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.not.call(null,v)?cljs.core.first.call(null,u):null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(function(){var b=v;return cljs.core.truth_(b)?b:(b=cljs.core.next.call(null,u))?b:cljs.core.cst$kw$at.cljs$core$IFn$_invoke$arity$1(a)}())?k:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(0cljs.core.count.call(null,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a))&&cljs.pprint.format_error.call(null,cljs.pprint.cl_format.call(null,null,'Too many parameters for directive "~C": ~D~:* ~[were~;was~:;were~] specified but only ~D~:* ~[are~;is~:;are~] allowed',cljs.core.cst$kw$directive.cljs$core$IFn$_invoke$arity$1(a),cljs.core.count.call(null,b),cljs.core.count.call(null,
+cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a))),cljs.core.second.call(null,cljs.core.first.call(null,b)));cljs.core.doall.call(null,cljs.core.map.call(null,function(b,c){var d=cljs.core.first.call(null,b);return null==d||cljs.core.contains_QMARK_.call(null,cljs.pprint.special_params,d)||cljs.core._EQ_.call(null,cljs.core.second.call(null,cljs.core.second.call(null,c)),cljs.core.type.call(null,d))?null:cljs.pprint.format_error.call(null,["Parameter ",cljs.core.name.call(null,cljs.core.first.call(null,
+c)),' has bad type in directive "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$directive.cljs$core$IFn$_invoke$arity$1(a)),'": ',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type.call(null,d))].join(""),cljs.core.second.call(null,b))},b,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a)));return cljs.core.merge.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.reverse.call(null,function(){return function g(a){return new cljs.core.LazySeq(null,
+function(){for(;;){var b=cljs.core.seq.call(null,a);if(b){if(cljs.core.chunked_seq_QMARK_.call(null,b)){var c=cljs.core.chunk_first.call(null,b),f=cljs.core.count.call(null,c),m=cljs.core.chunk_buffer.call(null,f);a:for(var n=0;;)if(nc?new cljs.core.PersistentVector(null,2,
+5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.compile_raw_string.call(null,b,a),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["",a+b.length],null)],null):0===c?cljs.pprint.compile_directive.call(null,cljs.core.subs.call(null,b,1),a+1):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.compile_raw_string.call(null,cljs.core.subs.call(null,b,0,c),a),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
+[cljs.core.subs.call(null,b,c),c+a],null)],null)},new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,0],null))))}finally{cljs.pprint._STAR_format_str_STAR_=b}};
+cljs.pprint.needs_pretty=function(a){for(var b=a;;){if(cljs.core.empty_QMARK_.call(null,b))return!1;if(cljs.core.truth_(function(){var a=cljs.core.cst$kw$pretty.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$flags.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$def.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,b))));if(cljs.core.truth_(a))return a;a=cljs.core.some.call(null,cljs.pprint.needs_pretty,cljs.core.first.call(null,cljs.core.cst$kw$clauses.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,
+b)))));return cljs.core.truth_(a)?a:cljs.core.some.call(null,cljs.pprint.needs_pretty,cljs.core.first.call(null,cljs.core.cst$kw$else.cljs$core$IFn$_invoke$arity$1(cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,b)))))}()))return!0;b=cljs.core.next.call(null,b)}};
+cljs.pprint.execute_format=function(a){switch(arguments.length){case 3:return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 2:return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new goog.string.StringBuffer,e=cljs.core.not.call(null,a)||!0===a?new cljs.core.StringBufferWriter(d):a,f=cljs.pprint.needs_pretty.call(null,b)&&cljs.core.not.call(null,cljs.pprint.pretty_writer_QMARK_.call(null,e))?cljs.pprint.get_pretty_writer.call(null,e):e,g=cljs.core._STAR_out_STAR_;cljs.core._STAR_out_STAR_=f;try{try{cljs.pprint.execute_format.call(null,b,c)}finally{e!==f&&cljs.core._flush.call(null,f)}return cljs.core.not.call(null,
+a)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(d):!0===a?cljs.core.string_print.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)):null}finally{cljs.core._STAR_out_STAR_=g}};
+cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2=function(a,b){cljs.pprint.map_passing_context.call(null,function(a,b){if(cljs.pprint.abort_QMARK_.call(null,b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.pprint.realize_parameter_list.call(null,cljs.core.cst$kw$params.cljs$core$IFn$_invoke$arity$1(a),b);var c=cljs.core.nth.call(null,b,0,null);b=cljs.core.nth.call(null,b,1,null);var d=cljs.pprint.unzip_map.call(null,c);c=cljs.core.nth.call(null,
+d,0,null);d=cljs.core.nth.call(null,d,1,null);c=cljs.core.assoc.call(null,c,cljs.core.cst$kw$base_DASH_args,b);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.apply.call(null,cljs.core.cst$kw$func.cljs$core$IFn$_invoke$arity$1(a),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b,d],null))],null)},b,a);return null};cljs.pprint.execute_format.cljs$lang$maxFixedArity=3;
+cljs.pprint.cached_compile=cljs.core.memoize.call(null,cljs.pprint.compile_format);cljs.pprint.use_method=function(a,b,c){return cljs.core._add_method.call(null,a,b,c)};cljs.pprint.reader_macros=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$sym$quote,"'",cljs.core.cst$sym$var,"#'",cljs.core.cst$sym$clojure$core_SLASH_deref,"@",cljs.core.cst$sym$clojure$core_SLASH_unquote,"~",cljs.core.cst$sym$cljs$core_SLASH_deref,"@",cljs.core.cst$sym$cljs$core_SLASH_unquote,"~"],null);
+cljs.pprint.pprint_reader_macro=function(a){var b=cljs.pprint.reader_macros.call(null,cljs.core.first.call(null,a));return cljs.core.truth_(cljs.core.truth_(b)?cljs.core._EQ_.call(null,2,cljs.core.count.call(null,a)):b)?(cljs.core._write.call(null,cljs.core._STAR_out_STAR_,b),cljs.pprint.write_out.call(null,cljs.core.second.call(null,a)),!0):null};
+cljs.pprint.pprint_simple_list=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded.call(null)))cljs.core._write.call(null,cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block.call(null,cljs.core._STAR_out_STAR_,"(",null,")");for(var d=0,e=cljs.core.seq.call(null,a);;){if(cljs.core.not.call(null,cljs.core._STAR_print_length_STAR_)||
+da?0:a," ")),b)};
+cljs.pprint.print_table=function(a){switch(arguments.length){case 2:return cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 1:return cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2=function(a,b){if(cljs.core.seq.call(null,b)){var c=cljs.core.map.call(null,function(a){return cljs.core.apply.call(null,cljs.core.max,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length,cljs.core.map.call(null,function(b){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.call(null,b,a)).length},b))},a),d=cljs.core.map.call(null,function(a){return cljs.core.apply.call(null,cljs.core.str,cljs.core.repeat.call(null,a,"-"))},c),e=
+function(b,d,e,f){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.call(null,cljs.core.str,cljs.core.interpose.call(null,d,function(){return function t(a){return new cljs.core.LazySeq(null,function(){for(;;){var b=cljs.core.seq.call(null,a);if(b){if(cljs.core.chunked_seq_QMARK_.call(null,b)){var c=cljs.core.chunk_first.call(null,b),d=cljs.core.count.call(null,c),e=cljs.core.chunk_buffer.call(null,d);a:for(var f=0;;)if(fa?e:a}();cljs.core.truth_(f)&&cljs.core.partial.call(null,klipse_clj.lang.clojure.guard.my_emits,c);cljs.js.eval_str.call(null,h,a,"compile.klipse",new cljs.core.PersistentArrayMap(null,
+6,[cljs.core.cst$kw$eval,klipse_clj.lang.clojure.eval_for_compilation,cljs.core.cst$kw$ns,cljs.core.deref.call(null,k),cljs.core.cst$kw$static_DASH_fns,b,cljs.core.cst$kw$_STAR_compiler_STAR_,cljs.env._STAR_compiler_STAR_=h,cljs.core.cst$kw$verbose,g,cljs.core.cst$kw$load,cljs.core.partial.call(null,klipse_clj.lang.clojure.io.load_ns,d)],null),function(a){klipse_clj.lang.clojure.update_current_ns.call(null,a,g,k);return cljs.core.async.put_BANG_.call(null,l,a)});return l};
+klipse_clj.lang.clojure.warning_handler=function(a,b,c,d){return cljs.core.truth_(b.call(null,cljs.analyzer._STAR_cljs_warnings_STAR_))?(b=cljs.analyzer.error_message.call(null,b,d),cljs.core.truth_(b)?cljs.core.async.put_BANG_.call(null,a,[cljs.analyzer.message.call(null,c,["WARNING: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")),"\n"].join("")):null):null};
+klipse_clj.lang.clojure.read_until_closed_BANG_=function(a){var b=cljs.core.async.chan.call(null),c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(1===d)return d=cljs.core.PersistentVector.EMPTY,c[7]=d,c[2]=null,c[1]=2,cljs.core.cst$kw$recur;if(2===d)return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,4,a);if(3===d)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,c[2]);if(4===d)return d=
+c[2],c[8]=d,cljs.core.truth_(null==d)?c[1]=5:c[1]=6,cljs.core.cst$kw$recur;if(5===d)return d=c[7],d=cljs.core.async.put_BANG_.call(null,b,d),c[2]=d,c[1]=7,cljs.core.cst$kw$recur;if(6===d){d=c[7];var e=c[8];d=cljs.core.conj.call(null,d,e);c[7]=d;c[2]=null;c[1]=2;return cljs.core.cst$kw$recur}return 7===d?(c[2]=c[2],c[1]=3,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=
+c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;
+a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return b};
+klipse_clj.lang.clojure.core_eval_an_exp=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;b=cljs.core.get.call(null,c,cljs.core.cst$kw$static_DASH_fns,!1);var d=cljs.core.get.call(null,c,cljs.core.cst$kw$external_DASH_libs,null),e=cljs.core.get.call(null,c,cljs.core.cst$kw$max_DASH_eval_DASH_duration,klipse_clj.lang.clojure.guard.min_max_eval_duration),f=cljs.core.get.call(null,
+c,cljs.core.cst$kw$verbose_QMARK_,!1),g=cljs.core.get.call(null,c,cljs.core.cst$kw$st,null),h=cljs.core.get.call(null,c,cljs.core.cst$kw$ns),k=cljs.core.async.chan.call(null),l=cljs.core.async.chan.call(null,1024),m=cljs.core.async.chan.call(null);(function(){var a=klipse_clj.lang.clojure.guard.min_max_eval_duration;return e>a?e:a})();c=cljs.analyzer._STAR_cljs_warning_handlers_STAR_;var n=new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.partial.call(null,klipse_clj.lang.clojure.warning_handler,
+l)],null);cljs.analyzer._STAR_cljs_warning_handlers_STAR_=n;try{return cljs.js.eval_str.call(null,g,a,"my.klipse",new cljs.core.PersistentArrayMap(null,8,[cljs.core.cst$kw$eval,klipse_clj.lang.clojure.my_eval,cljs.core.cst$kw$ns,cljs.core.deref.call(null,h),cljs.core.cst$kw$def_DASH_emits_DASH_var,!0,cljs.core.cst$kw$verbose,f,cljs.core.cst$kw$_STAR_compiler_STAR_,cljs.env._STAR_compiler_STAR_=g,cljs.core.cst$kw$context,cljs.core.cst$kw$expr,cljs.core.cst$kw$static_DASH_fns,b,cljs.core.cst$kw$load,
+cljs.core.partial.call(null,klipse_clj.lang.clojure.io.load_ns,d)],null),function(a){cljs.core.async.close_BANG_.call(null,l);var b=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var c=function(){var b=function(b){var c=b[1];if(1===c)return c=klipse_clj.lang.clojure.read_until_closed_BANG_.call(null,l),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,2,c);if(2===c){var d=b[2];c=klipse_clj.lang.clojure.update_current_ns.call(null,a,f,h);var e=cljs.core.async.put_BANG_.call(null,
+k,a);d=clojure.string.join.call(null,"",d);d=cljs.core.async.put_BANG_.call(null,m,d);b[7]=c;b[8]=e;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,d)}return null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(P){d=P;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=
+cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),d=function(){var a=c.call(null);a[6]=b;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,
+d)});return b}),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[k,m],null)}finally{cljs.analyzer._STAR_cljs_warning_handlers_STAR_=c}};klipse_clj.lang.clojure.read_chars=function(a){for(var b=cljs.core.PersistentVector.EMPTY;;){var c=cljs.tools.reader.reader_types.read_char.call(null,a);if(cljs.core.truth_(c))b=cljs.core.conj.call(null,b,c);else return b}};
+klipse_clj.lang.clojure.reader_content=function(a){return cljs.core.apply.call(null,cljs.core.str,klipse_clj.lang.clojure.read_chars.call(null,a))};klipse_clj.lang.clojure.data_readers=function(){return cljs.tagged_literals._STAR_cljs_data_readers_STAR_};
+klipse_clj.lang.clojure.first_exp_and_rest=function(a,b,c){var d=cljs.tools.reader._STAR_alias_map_STAR_,e=cljs.core._STAR_ns_STAR_,f=cljs.analyzer._STAR_cljs_ns_STAR_,g=cljs.env._STAR_compiler_STAR_,h=cljs.tools.reader.resolve_symbol,k=cljs.tools.reader._STAR_data_readers_STAR_,l=klipse_clj.repl.current_alias_map.call(null,c,b),m=cljs.analyzer.resolve_symbol,n=klipse_clj.lang.clojure.data_readers.call(null);cljs.tools.reader._STAR_alias_map_STAR_=l;cljs.core._STAR_ns_STAR_=c;cljs.analyzer._STAR_cljs_ns_STAR_=
+c;cljs.env._STAR_compiler_STAR_=b;cljs.tools.reader.resolve_symbol=m;cljs.tools.reader._STAR_data_readers_STAR_=n;try{b={};var p=cljs.tools.reader.reader_types.string_push_back_reader.call(null,a),q=cljs.tools.reader.read.call(null,p,!1,b);if(cljs.core._EQ_.call(null,b,q))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["",""],null);var r=klipse_clj.lang.clojure.reader_content.call(null,p),t=cljs.core.subs.call(null,a,0,cljs.core.count.call(null,a)-cljs.core.count.call(null,
+r));return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[clojure.string.replace.call(null,t,/^[\s\n]*/,""),r],null)}finally{cljs.tools.reader._STAR_data_readers_STAR_=k,cljs.tools.reader.resolve_symbol=h,cljs.env._STAR_compiler_STAR_=g,cljs.analyzer._STAR_cljs_ns_STAR_=f,cljs.core._STAR_ns_STAR_=e,cljs.tools.reader._STAR_alias_map_STAR_=d}};
+klipse_clj.lang.clojure.read_string=function(a){switch(arguments.length){case 1:return klipse_clj.lang.clojure.read_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return klipse_clj.lang.clojure.read_string.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+klipse_clj.lang.clojure.read_string.cljs$core$IFn$_invoke$arity$1=function(a){return klipse_clj.lang.clojure.read_string.call(null,a,cljs.core.deref.call(null,klipse_clj.repl.st),cljs.core.deref.call(null,klipse_clj.repl.current_ns_eval))};
+klipse_clj.lang.clojure.read_string.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.tools.reader._STAR_alias_map_STAR_,e=cljs.core._STAR_ns_STAR_,f=cljs.analyzer._STAR_cljs_ns_STAR_,g=cljs.env._STAR_compiler_STAR_,h=cljs.tools.reader.resolve_symbol,k=cljs.tools.reader._STAR_data_readers_STAR_,l=klipse_clj.repl.current_alias_map.call(null,c,b),m=cljs.analyzer.resolve_symbol,n=klipse_clj.lang.clojure.data_readers.call(null);cljs.tools.reader._STAR_alias_map_STAR_=l;cljs.core._STAR_ns_STAR_=
+c;cljs.analyzer._STAR_cljs_ns_STAR_=c;cljs.env._STAR_compiler_STAR_=b;cljs.tools.reader.resolve_symbol=m;cljs.tools.reader._STAR_data_readers_STAR_=n;try{var p=cljs.tools.reader.reader_types.string_push_back_reader.call(null,a);return cljs.tools.reader.read.call(null,p)}finally{cljs.tools.reader._STAR_data_readers_STAR_=k,cljs.tools.reader.resolve_symbol=h,cljs.env._STAR_compiler_STAR_=g,cljs.analyzer._STAR_cljs_ns_STAR_=f,cljs.core._STAR_ns_STAR_=e,cljs.tools.reader._STAR_alias_map_STAR_=d}};
+klipse_clj.lang.clojure.read_string.cljs$lang$maxFixedArity=3;
+klipse_clj.lang.clojure.split_expressions=function(a){var b=a;for(a=cljs.core.PersistentVector.EMPTY;;){if(cljs.core.empty_QMARK_.call(null,b))return a;var c=klipse_clj.lang.clojure.first_exp_and_rest.call(null,b,cljs.core.deref.call(null,klipse_clj.repl.st),cljs.core.deref.call(null,klipse_clj.repl.current_ns_eval));b=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);cljs.core.empty_QMARK_.call(null,b)?b=c:(a=cljs.core.conj.call(null,a,b),b=c)}};
+klipse_clj.lang.clojure.populate_err=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;b=cljs.core.get.call(null,c,cljs.core.cst$kw$result_DASH_element);c=cljs.core.get.call(null,c,cljs.core.cst$kw$container);cljs.core.truth_(cljs.core.truth_(c)?cljs.core.not.call(null,b):c)&&goog.dom.setTextContent(c,klipse_clj.lang.clojure.display_err.call(null,cljs.core.cst$kw$error.cljs$core$IFn$_invoke$arity$1(a)));
+return a};klipse_clj.lang.clojure.completions=klipse_clj.repl.get_completions;
+klipse_clj.lang.clojure.core_eval=function(a,b){var c=cljs.core.async.chan.call(null),d=cljs.core.async.chan.call(null),e=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var f=function(){var e=function(e){var f=e[1];if(7===f){f=e[7];var g=cljs.core.nth.call(null,f,0,null);f=cljs.core.nth.call(null,f,1,null);var h=!cljs.core.empty_QMARK_.call(null,g);e[8]=g;e[9]=f;e[1]=h?9:10;return cljs.core.cst$kw$recur}if(1===f)return e[2]=null,e[1]=2,cljs.core.cst$kw$recur;
+if(4===f)return h=e[2],f=cljs.core.async.close_BANG_.call(null,d),g=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$error],[h]),g=cljs.core.async.put_BANG_.call(null,c,g),h=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$error],[h]),h=klipse_clj.lang.clojure.populate_err.call(null,h,b),e[10]=f,e[11]=g,e[2]=h,e[1]=3,cljs.core.cst$kw$recur;if(15===f)return e[2]=e[2],e[1]=11,cljs.core.cst$kw$recur;if(13===f)return f=e[12],g=cljs.core.async.close_BANG_.call(null,d),h=cljs.core.async.put_BANG_.call(null,
+c,f),f=klipse_clj.lang.clojure.populate_err.call(null,f,b),e[13]=g,e[14]=h,e[2]=f,e[1]=15,cljs.core.cst$kw$recur;if(6===f){f=e[2];g=cljs.core.deref.call(null,klipse_clj.repl.st);h=cljs.core.deref.call(null,klipse_clj.repl.current_ns_eval);g=klipse_clj.lang.clojure.first_exp_and_rest.call(null,a,g,h);h=cljs.core.nth.call(null,g,0,null);var k=cljs.core.nth.call(null,g,1,null);e[15]=f;e[16]=h;e[17]=k;e[7]=g;e[18]=null;e[19]="";e[2]=null;e[1]=7;return cljs.core.cst$kw$recur}if(3===f)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,
+e,e[2]);if(12===f)return g=e[2],f=cljs.core.cst$kw$error.cljs$core$IFn$_invoke$arity$1(g),e[12]=g,cljs.core.truth_(f)?e[1]=13:e[1]=14,cljs.core.cst$kw$recur;if(2===f)return e[4]=cljs.core.cons.call(null,5,e[4]),f=klipse_clj.lang.clojure.create_state_eval.call(null),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,e,6,f);if(11===f)return e[2]=e[2],e[1]=8,cljs.core.cst$kw$recur;if(9===f)return f=e[8],g=cljs.core.deref.call(null,klipse_clj.repl.st),g=cljs.core.assoc.call(null,b,cljs.core.cst$kw$st,
+g,cljs.core.cst$kw$ns,klipse_clj.repl.current_ns_eval),g=klipse_clj.lang.clojure.core_eval_an_exp.call(null,f,g),f=cljs.core.nth.call(null,g,0,null),g=cljs.core.nth.call(null,g,1,null),e[20]=g,cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,e,12,f);if(5===f){e[4]=cljs.core.rest.call(null,e[4]);f=e[2];e[5]=f;if(f instanceof Object)e[1]=4,e[5]=null;else throw f;return cljs.core.cst$kw$recur}return 14===f?(f=e[9],g=e[20],h=cljs.core.deref.call(null,klipse_clj.repl.st),k=cljs.core.deref.call(null,
+klipse_clj.repl.current_ns_eval),h=klipse_clj.lang.clojure.first_exp_and_rest.call(null,f,h,k),e[21]=h,cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,e,16,g)):16===f?(g=e[19],h=e[21],f=e[12],k=e[2],g=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(g),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join(""),e[7]=h,e[18]=f,e[19]=g,e[2]=null,e[1]=7,cljs.core.cst$kw$recur):10===f?(g=e[19],f=e[18],g=cljs.core.async.put_BANG_.call(null,d,g),f=cljs.core.async.put_BANG_.call(null,c,f),e[22]=g,e[2]=f,
+e[1]=11,cljs.core.cst$kw$recur):8===f?(f=e[2],e[4]=cljs.core.rest.call(null,e[4]),e[2]=f,e[1]=3,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},c=function(a){for(;;){a:try{for(;;){var b=e.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var c=b;break a}}}catch(r){c=r;a[2]=c;if(cljs.core.seq.call(null,
+a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw c;c=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur))return c}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return c.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=c;return a}()}(),g=function(){var a=f.call(null);a[6]=e;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,
+g)});return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,d],null)};
+klipse_clj.lang.clojure.core_compile=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(7===d)return d=c[2],c[4]=cljs.core.rest.call(null,c[4]),c[2]=d,c[1]=3,cljs.core.cst$kw$recur;if(1===d)return c[2]=null,c[1]=2,cljs.core.cst$kw$recur;if(4===d)return d=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$error],[c[2]]),c[2]=d,c[1]=3,cljs.core.cst$kw$recur;if(13===d){d=c[7];var e=c[8],f=
+c[9],g=klipse_clj.repl.create_state_compile.call(null),n=cljs.core.deref.call(null,klipse_clj.repl.current_ns_compile);d=klipse_clj.lang.clojure.first_exp_and_rest.call(null,d,g,n);e=cljs.core.cst$kw$value.cljs$core$IFn$_invoke$arity$1(e);f=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(f),cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)].join("");c[10]=d;c[9]=f;c[2]=null;c[1]=6;return cljs.core.cst$kw$recur}if(6===d)return d=c[10],f=cljs.core.nth.call(null,d,0,null),d=cljs.core.nth.call(null,d,1,null),
+e=!cljs.core.empty_QMARK_.call(null,f),c[11]=f,c[7]=d,c[1]=e?8:9,cljs.core.cst$kw$recur;if(3===d)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,c[2]);if(12===d)return e=c[8],c[2]=e,c[1]=14,cljs.core.cst$kw$recur;if(2===d)return c[4]=cljs.core.cons.call(null,5,c[4]),d=klipse_clj.repl.create_state_compile.call(null),f=cljs.core.deref.call(null,klipse_clj.repl.current_ns_compile),d=klipse_clj.lang.clojure.first_exp_and_rest.call(null,a,d,f),f=cljs.core.nth.call(null,d,0,null),e=cljs.core.nth.call(null,
+d,1,null),c[12]=f,c[13]=e,c[10]=d,c[9]="",c[2]=null,c[1]=6,cljs.core.cst$kw$recur;if(11===d)return f=c[2],d=cljs.core.cst$kw$error.cljs$core$IFn$_invoke$arity$1(f),c[8]=f,cljs.core.truth_(d)?c[1]=12:c[1]=13,cljs.core.cst$kw$recur;if(9===d)return f=c[9],d=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$value],[f]),c[2]=d,c[1]=10,cljs.core.cst$kw$recur;if(5===d){c[4]=cljs.core.rest.call(null,c[4]);d=c[2];c[5]=d;if(d instanceof Object)c[1]=4,c[5]=null;else throw d;return cljs.core.cst$kw$recur}return 14===
+d?(c[2]=c[2],c[1]=10,cljs.core.cst$kw$recur):10===d?(c[2]=c[2],c[1]=7,cljs.core.cst$kw$recur):8===d?(d=c[11],f=klipse_clj.repl.create_state_compile.call(null),f=cljs.core.assoc.call(null,b,cljs.core.cst$kw$st,f,cljs.core.cst$kw$ns,klipse_clj.repl.current_ns_compile),d=klipse_clj.lang.clojure.core_compile_an_exp.call(null,d,f),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,11,d)):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null,null,null,
+null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+
+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse_clj.lang.clojure.eval_async_map=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(1===d){var e=klipse_clj.lang.clojure.core_eval.call(null,a,b);d=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);c[7]=e;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)}return 2===d?(e=c[7],d=klipse_clj.lang.clojure.result_as_str.call(null,c[2],b),c[8]=d,cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,
+c,3,e)):3===d?(d=c[8],d=cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$warnings,cljs.core.cst$kw$res],[c[2],d]),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,
+a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,
+e)});return c};
+klipse_clj.lang.clojure.eval_async=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(1===d){var e=klipse_clj.lang.clojure.core_eval.call(null,a,b);d=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);c[7]=e;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)}return 2===d?(e=c[7],d=klipse_clj.lang.clojure.result_as_str.call(null,c[2],b),c[8]=d,cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,
+c,3,e)):3===d?(d=c[8],c[9]=c[2],cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,
+d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse_clj.lang.clojure.the_eval=function(a){switch(arguments.length){case 1:return klipse_clj.lang.clojure.the_eval.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return klipse_clj.lang.clojure.the_eval.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+klipse_clj.lang.clojure.the_eval.cljs$core$IFn$_invoke$arity$1=function(a){return klipse_clj.lang.clojure.the_eval.call(null,a,cljs.core.PersistentArrayMap.EMPTY)};
+klipse_clj.lang.clojure.the_eval.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];return 1===d?(d=klipse_clj.lang.clojure.core_eval.call(null,a,b),d=cljs.core.first.call(null,d),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)):2===d?(d=klipse_clj.lang.clojure.read_result.call(null,c[2]),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};
+return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);
+case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};klipse_clj.lang.clojure.the_eval.cljs$lang$maxFixedArity=2;
+klipse_clj.lang.clojure.eval_and_callback=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];return 1===d?(d=klipse_clj.lang.clojure.the_eval.call(null,a),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)):2===d?(d=cljs.core.clj__GT_js.call(null,c[2]),d=b.call(null,d),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=null,b=function(){var b=[null,
+null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,
+a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse_clj.lang.clojure.str_compile=function(a){switch(arguments.length){case 1:return klipse_clj.lang.clojure.str_compile.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return klipse_clj.lang.clojure.str_compile.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+klipse_clj.lang.clojure.str_compile.cljs$core$IFn$_invoke$arity$1=function(a){return klipse_clj.lang.clojure.str_compile.call(null,a,cljs.core.PersistentArrayMap.EMPTY)};
+klipse_clj.lang.clojure.str_compile.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];return 1===d?(d=klipse_clj.lang.clojure.core_compile.call(null,a,b),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)):2===d?(d=klipse_clj.lang.clojure.convert_compile_res.call(null,c[2]),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=
+null,b=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);
+case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};klipse_clj.lang.clojure.str_compile.cljs$lang$maxFixedArity=2;
+klipse_clj.lang.clojure.compile_async=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];return 1===d?(d=klipse_clj.lang.clojure.core_compile.call(null,a,b),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)):2===d?(d=klipse_clj.lang.clojure.convert_compile_res.call(null,c[2]),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=null,b=function(){var b=
+[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,
+a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse_clj.lang.clojure.str_compile_async=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];return 1===d?(d=klipse_clj.lang.clojure.compile_async.call(null,a,b),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,2,d)):2===d?(d=cljs.core.second.call(null,c[2]),d=cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)):null};return function(){var a=
+null,b=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);
+case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse_clj.lang.clojure.str_eval_async=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b,d=cljs.core.get.call(null,c,cljs.core.cst$kw$container_DASH_id),e=cljs.core.get.call(null,c,cljs.core.cst$kw$setup_DASH_container_DASH_fn);b=cljs.core.get.call(null,c,cljs.core.cst$kw$verbose_QMARK_);var f=cljs.core.async.chan.call(null);cljs.core.truth_(b)&&console.info("[clojure] evaluating",
+a);var g=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var g=b[1];if(7===g){var h=b[7],k=b[8];g=b[2];h=cljs.core._STAR_print_newline_STAR_;k=cljs.core._STAR_print_fn_STAR_;var l=function(){return function(a){return cljs.core.async.put_BANG_.call(null,f,a)}}(),m=cljs.core._STAR_print_newline_STAR_=!0;l=cljs.core._STAR_print_fn_STAR_=l;b[9]=g;b[7]=h;b[8]=k;b[10]=m;b[11]=l;g=b;g[2]=null;g[1]=8;return cljs.core.cst$kw$recur}if(20===
+g)return g=b[12],b[2]=g,b[1]=21,cljs.core.cst$kw$recur;if(1===g)return g=clojure.string.blank_QMARK_.call(null,a),b[1]=g?2:3,cljs.core.cst$kw$recur;if(4===g)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]);if(15===g)return h=b[2],g=b,cljs.core.truth_(h)?g[1]=19:g[1]=20,cljs.core.cst$kw$recur;if(21===g)return h=b[2],g=cljs.core.get.call(null,h,cljs.core.cst$kw$warnings),h=cljs.core.get.call(null,h,cljs.core.cst$kw$res),h=cljs.core.second.call(null,h),g=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(g),
+cljs.core.str.cljs$core$IFn$_invoke$arity$1(h)].join(""),g=cljs.core.async.put_BANG_.call(null,f,g),b[4]=cljs.core.rest.call(null,b[4]),b[2]=g,b[1]=10,cljs.core.cst$kw$recur;if(13===g)return g=b[12],h=cljs.core.PROTOCOL_SENTINEL===g.cljs$core$ISeq$,h=g.cljs$lang$protocol_mask$partition0$&64||h,g=b,cljs.core.truth_(h)?g[1]=16:g[1]=17,cljs.core.cst$kw$recur;if(6===g)return b[2]=null,b[1]=7,cljs.core.cst$kw$recur;if(17===g)return b[2]=!1,b[1]=18,cljs.core.cst$kw$recur;if(3===g)return g=b,cljs.core.truth_(e)?
+g[1]=5:g[1]=6,cljs.core.cst$kw$recur;if(12===g)return g=b[12],g=b[2],h=cljs.core.not.call(null,null==g),b[12]=g,b[1]=h?13:14,cljs.core.cst$kw$recur;if(2===g)return g=cljs.core.async.put_BANG_.call(null,f,""),b[2]=g,b[1]=4,cljs.core.cst$kw$recur;if(19===g)return g=b[12],g=cljs.core.apply.call(null,cljs.core.hash_map,g),b[2]=g,b[1]=21,cljs.core.cst$kw$recur;if(11===g)throw b[4]=cljs.core.rest.call(null,b[4]),g=b,h=g[2],g[5]=h,h;return 9===g?(b[2]=b[2],b[1]=4,cljs.core.cst$kw$recur):5===g?(g=e.call(null,
+d),b[2]=g,b[1]=7,cljs.core.cst$kw$recur):14===g?(b[2]=!1,b[1]=15,cljs.core.cst$kw$recur):16===g?(b[2]=!0,b[1]=18,cljs.core.cst$kw$recur):10===g?(k=b[8],h=b[7],b[4]=cljs.core.rest.call(null,b[4]),g=b[2],k=cljs.core._STAR_print_fn_STAR_=k,h=cljs.core._STAR_print_newline_STAR_=h,function(){var a=b[5];if(cljs.core.truth_(a))throw a;return null}(),b[13]=k,b[14]=h,h=b,h[2]=g,h[1]=9,cljs.core.cst$kw$recur):18===g?(b[2]=b[2],b[1]=15,cljs.core.cst$kw$recur):8===g?(b[4]=cljs.core.cons.call(null,10,b[4]),b[4]=
+cljs.core.cons.call(null,11,b[4]),g=klipse_clj.lang.clojure.eval_async_map.call(null,a,c),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,12,g)):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(u){d=u;a[2]=d;if(cljs.core.seq.call(null,
+a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),k=function(){var a=b.call(null);a[6]=g;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,
+k)});return f};klipse_clj.lang.clojure.eval_async_prepl=function(a){switch(arguments.length){case 1:return klipse_clj.lang.clojure.eval_async_prepl.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return klipse_clj.lang.clojure.eval_async_prepl.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
+klipse_clj.lang.clojure.eval_async_prepl.cljs$core$IFn$_invoke$arity$1=function(a){return klipse_clj.lang.clojure.eval_async_prepl.call(null,a,cljs.core.PersistentArrayMap.EMPTY)};
+klipse_clj.lang.clojure.eval_async_prepl.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.async.chan.call(null),d=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var e=function(){var d=function(d){var e=d[1];if(1===e){var f=d[7];e=cljs.core._STAR_print_fn_STAR_;f=function(){return function(a){return cljs.core.async.put_BANG_.call(null,c,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$val,a,cljs.core.cst$kw$tag,cljs.core.cst$kw$out],null))}}();
+f=cljs.core._STAR_print_fn_STAR_=f;d[7]=e;d[8]=f;e=d;e[2]=null;e[1]=2;return cljs.core.cst$kw$recur}if(2===e)return d[4]=cljs.core.cons.call(null,4,d[4]),d[4]=cljs.core.cons.call(null,5,d[4]),e=klipse_clj.lang.clojure.core_eval.call(null,a,b),e=cljs.core.first.call(null,e),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,d,6,e);if(3===e)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,d,d[2]);if(4===e)return f=d[7],d[4]=cljs.core.rest.call(null,d[4]),e=d[2],f=cljs.core._STAR_print_fn_STAR_=
+f,function(){var a=d[5];if(cljs.core.truth_(a))throw a;return null}(),d[9]=f,f=d,f[2]=e,f[1]=3,cljs.core.cst$kw$recur;if(5===e)throw d[4]=cljs.core.rest.call(null,d[4]),e=d,f=e[2],e[5]=f,f;return 6===e?(e=klipse_clj.lang.clojure.result_as_prepl_map.call(null,a,d[2],b),e=cljs.core.async.put_BANG_.call(null,c,e),d[4]=cljs.core.rest.call(null,d[4]),d[2]=e,d[1]=4,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=
+1;return b},c=function(a){for(;;){a:try{for(;;){var b=d.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var c=b;break a}}}catch(q){c=q;a[2]=c;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw c;c=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur))return c}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return c.call(this,a)}throw Error("Invalid arity: "+
+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=c;return a}()}(),f=function(){var a=e.call(null);a[6]=d;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,f)});return c};klipse_clj.lang.clojure.eval_async_prepl.cljs$lang$maxFixedArity=2;klipse_clj.lang.clojure.main=function(){return console.log("main")};klipse.lang.hiccup={};
+klipse.lang.hiccup.transpile_hiccup=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){var d=c[1];if(7===d)return d=c[2],c[7]=d,cljs.core.truth_(d)?c[1]=8:c[1]=9,cljs.core.cst$kw$recur;if(1===d)return c[2]=null,c[1]=2,cljs.core.cst$kw$recur;if(4===d){d=c[2];var e=cljs.core.not.call(null,null==d);c[8]=d;c[1]=e?5:6;return cljs.core.cst$kw$recur}if(6===d)return c[2]=void 0,c[1]=7,cljs.core.cst$kw$recur;if(3===
+d)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,c[2]);if(12===d)return d=klipse_clj.lang.clojure.read_string.call(null,c[2]),d=html_beautify(d),c[4]=cljs.core.rest.call(null,c[4]),c[2]=d,c[1]=3,cljs.core.cst$kw$recur;if(2===d)return c[4]=cljs.core.cons.call(null,11,c[4]),e=klipse_clj.lang.clojure.read_string.call(null,a),d=new cljs.core.List(null,cljs.core.cst$sym$hoquet$runtime_SLASH_render_DASH_html,null,1,null),e=new cljs.core.List(null,e,null,1,null),d=cljs.core.concat.call(null,
+d,e),d=cljs.core.seq.call(null,d),d=cljs.core.sequence.call(null,d),d=cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),d=klipse_clj.lang.clojure.str_eval_async.call(null,d,b),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,c,12,d);if(11===d){c[4]=cljs.core.rest.call(null,c[4]);d=c[2];c[5]=d;if(d instanceof Object)c[1]=4,c[5]=null;else throw d;return cljs.core.cst$kw$recur}return 9===d?(d=c[8],d=cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),c[2]=d,c[1]=10,cljs.core.cst$kw$recur):5===d?(d=c[8],
+c[2]=d.message,c[1]=7,cljs.core.cst$kw$recur):10===d?(c[2]=c[2],c[1]=3,cljs.core.cst$kw$recur):8===d?(d=c[7],c[2]=d,c[1]=10,cljs.core.cst$kw$recur):null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,
+a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse.lang.hiccup.render_hiccup=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b,d=cljs.core.get.call(null,c,cljs.core.cst$kw$container),e=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var e=b[1];if(7===e)return e=b[2],b[7]=e,cljs.core.truth_(e)?b[1]=8:b[1]=9,cljs.core.cst$kw$recur;if(1===e)return b[2]=
+null,b[1]=2,cljs.core.cst$kw$recur;if(4===e){e=b[2];var f=cljs.core.not.call(null,null==e);b[8]=e;b[1]=f?5:6;return cljs.core.cst$kw$recur}if(15===e)return f=b[9],e=b[2],f=klipse_clj.lang.clojure.read_string.call(null,f),f=e.innerHTML=f,b[4]=cljs.core.rest.call(null,b[4]),b[10]=f,b[2]=e,b[1]=3,cljs.core.cst$kw$recur;if(13===e)return b[2]=b[11],b[1]=15,cljs.core.cst$kw$recur;if(6===e)return b[2]=void 0,b[1]=7,cljs.core.cst$kw$recur;if(3===e)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,
+b,b[2]);if(12===e)return f=b[2],e=cljs.core.not.call(null,null==d),b[9]=f,b[11]=d,b[1]=e?13:14,cljs.core.cst$kw$recur;if(2===e)return b[4]=cljs.core.cons.call(null,11,b[4]),f=klipse_clj.lang.clojure.read_string.call(null,a),e=new cljs.core.List(null,cljs.core.cst$sym$hoquet$runtime_SLASH_render_DASH_html,null,1,null),f=new cljs.core.List(null,f,null,1,null),e=cljs.core.concat.call(null,e,f),e=cljs.core.seq.call(null,e),e=cljs.core.sequence.call(null,e),e=cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),
+e=klipse_clj.lang.clojure.str_eval_async.call(null,e,c),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,12,e);if(11===e){b[4]=cljs.core.rest.call(null,b[4]);e=b[2];b[5]=e;if(e instanceof Object)b[1]=4,b[5]=null;else throw e;return cljs.core.cst$kw$recur}return 9===e?(e=b[8],e=cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),b[2]=e,b[1]=10,cljs.core.cst$kw$recur):5===e?(e=b[8],b[2]=e.message,b[1]=7,cljs.core.cst$kw$recur):14===e?(b[2]={},b[1]=15,cljs.core.cst$kw$recur):10===e?(b[2]=b[2],b[1]=
+3,cljs.core.cst$kw$recur):8===e?(e=b[7],b[2]=e,b[1]=10,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(r){d=r;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,
+d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),g=function(){var a=b.call(null);a[6]=e;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,g)});return e};
+klipse.lang.hiccup.transpile_opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"clojure",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"htmlmixed",cljs.core.cst$kw$eval_DASH_fn,new cljs.core.Var(function(){return klipse.lang.hiccup.transpile_hiccup},cljs.core.cst$sym$klipse$lang$hiccup_SLASH_transpile_DASH_hiccup,cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$ns,cljs.core.cst$kw$name,cljs.core.cst$kw$file,cljs.core.cst$kw$end_DASH_column,cljs.core.cst$kw$column,
+cljs.core.cst$kw$line,cljs.core.cst$kw$end_DASH_line,cljs.core.cst$kw$arglists,cljs.core.cst$kw$doc,cljs.core.cst$kw$test],[cljs.core.cst$sym$klipse$lang$hiccup,cljs.core.cst$sym$transpile_DASH_hiccup,"/Users/viebel/prj/klipse/src/klipse/lang/hiccup.cljs",23,1,14,14,cljs.core.list(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$src,cljs.core.cst$sym$opts],null)),null,cljs.core.truth_(klipse.lang.hiccup.transpile_hiccup)?klipse.lang.hiccup.transpile_hiccup.cljs$lang$test:
+null])),cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clojure"),klipse.common.registry.codemirror_mode_src.call(null,"xml"),klipse.common.registry.codemirror_mode_src.call(null,"htmlmixed"),klipse.common.registry.scripts_src.call(null,"beautify-html-1.11.0.js")],null),cljs.core.cst$kw$comment_DASH_str,";"],null);
+klipse.lang.hiccup.render_opts=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"clojure",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"clojure",cljs.core.cst$kw$eval_DASH_fn,new cljs.core.Var(function(){return klipse.lang.hiccup.render_hiccup},cljs.core.cst$sym$klipse$lang$hiccup_SLASH_render_DASH_hiccup,cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$ns,cljs.core.cst$kw$name,cljs.core.cst$kw$file,cljs.core.cst$kw$end_DASH_column,cljs.core.cst$kw$column,cljs.core.cst$kw$line,
+cljs.core.cst$kw$end_DASH_line,cljs.core.cst$kw$arglists,cljs.core.cst$kw$doc,cljs.core.cst$kw$test],[cljs.core.cst$sym$klipse$lang$hiccup,cljs.core.cst$sym$render_DASH_hiccup,"/Users/viebel/prj/klipse/src/klipse/lang/hiccup.cljs",20,1,25,25,cljs.core.list(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$src,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$keys,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$container],
+null),cljs.core.cst$kw$as,cljs.core.cst$sym$opts],null)],null)),null,cljs.core.truth_(klipse.lang.hiccup.render_hiccup)?klipse.lang.hiccup.render_hiccup.cljs$lang$test:null])),cljs.core.cst$kw$no_DASH_result,!0,cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clojure")],null),cljs.core.cst$kw$comment_DASH_str,";"],null);
+klipse.common.registry.register_mode.call(null,"transpile-hiccup","selector_transpile_hiccup",klipse.lang.hiccup.transpile_opts);klipse.common.registry.register_mode.call(null,"render-hiccup","selector_render_hiccup",klipse.lang.hiccup.render_opts);klipse.lang.oblivion={};klipse.lang.oblivion.render_STAR_=function(a,b){b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;b=cljs.core.get.call(null,b,cljs.core.cst$kw$container);try{goog.dom.setTextContent(b,"");var c=Oblivion;var d=c.Compile.call(c,a,2);var e=cljs.core.nth.call(null,d,0,null),f=cljs.core.nth.call(null,d,1,null);return"string"===typeof e?((null!=b?b:{}).innerHTML=f,e):cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)}catch(g){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)}};
+klipse.lang.oblivion.render=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var d=function(){var c=function(c){if(1===c[1]){var d=klipse.lang.oblivion.render_STAR_.call(null,a,b);return cljs.core.async.impl.ioc_helpers.return_chan.call(null,c,d)}return null};return function(){var a=null,b=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var b=c.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,
+b,cljs.core.cst$kw$recur)){var d=b;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return b.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=
+d.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse.lang.oblivion.opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"ruby",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"text",cljs.core.cst$kw$eval_DASH_fn,klipse.lang.oblivion.render,cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"ruby"),klipse.common.registry.scripts_src.call(null,"Oblivion.js")],null),cljs.core.cst$kw$comment_DASH_str,
+";"],null);klipse.common.registry.register_mode.call(null,"oblivion","selector_oblivion",klipse.lang.oblivion.opts);klipse.lang.clojure={};klipse_clj.lang.clojure.io._STAR_klipse_settings_STAR_=klipse.utils.klipse_settings.call(null);klipse_clj.lang.clojure.io._STAR_verbose_QMARK__STAR_=klipse.utils.verbose_QMARK_.call(null);klipse_clj.lang.clojure.io._STAR_cache_buster_QMARK__STAR_=cljs.core.boolean$.call(null,cljs.reader.read_string.call(null,function(){var a=cljs.core.cst$kw$cache_DASH_buster.cljs$core$IFn$_invoke$arity$1(klipse.utils.url_parameters.call(null));return cljs.core.truth_(a)?a:"false"}()));
+klipse.lang.clojure.eval_opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"clojure",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"clojure",cljs.core.cst$kw$eval_DASH_fn,function(a,b){return klipse_clj.lang.clojure.str_eval_async.call(null,a,cljs.core.assoc.call(null,b,cljs.core.cst$kw$setup_DASH_container_DASH_fn,klipse.utils.setup_container_BANG_,cljs.core.cst$kw$verbose,klipse.utils.verbose_QMARK_.call(null)))},cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,
+1,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clojure")],null),cljs.core.cst$kw$comment_DASH_str,";"],null);
+klipse.lang.clojure.compile_opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"clojure",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"javascript",cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clojure"),klipse.common.registry.codemirror_mode_src.call(null,"javascript")],null),cljs.core.cst$kw$eval_DASH_fn,function(a,b){return klipse_clj.lang.clojure.str_compile_async.call(null,
+a,cljs.core.assoc.call(null,b,cljs.core.cst$kw$verbose,klipse.utils.verbose_QMARK_.call(null)))},cljs.core.cst$kw$comment_DASH_str,";"],null);klipse.common.registry.register_mode.call(null,"eval-clojure","selector",klipse.lang.clojure.eval_opts);klipse.common.registry.register_mode.call(null,"transpile-clojurescript","selector_js",klipse.lang.clojure.compile_opts);klipse.lang.markdown={};
+klipse.lang.markdown.str_eval_async=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){if(1===b[1]){var c=markdown.toHTML(a);return cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,c)}return null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,
+cljs.core.cst$kw$recur)){var d=c;break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=
+b.call(null);a[6]=c;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse.lang.markdown.opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"markdown",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"htmlmixed",cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.scripts_src.call(null,"markdown.min.js?"),klipse.common.registry.codemirror_mode_src.call(null,"xml"),klipse.common.registry.codemirror_mode_src.call(null,"htmlmixed"),klipse.common.registry.codemirror_mode_src.call(null,
+"javascript"),klipse.common.registry.codemirror_mode_src.call(null,"css")],null),cljs.core.cst$kw$eval_DASH_fn,klipse.lang.markdown.str_eval_async,cljs.core.cst$kw$comment_DASH_str,"[comment]: "],null);klipse.common.registry.register_mode.call(null,"eval-markdown","selector_eval_markdown",klipse.lang.markdown.opts);klipse.lang.pyodide={};if("undefined"===typeof klipse||"undefined"===typeof klipse.lang||"undefined"===typeof klipse.lang.pyodide||"undefined"===typeof klipse.lang.pyodide._STAR_loaded_STAR_)klipse.lang.pyodide._STAR_loaded_STAR_=!1;klipse.lang.pyodide.new_print="\nimport io\nimport builtins\nstring_out \x3d io.StringIO()\n\ndef print(*args, **kwargs):\n if not 'file' in kwargs:\n kwargs['file'] \x3d string_out\n return builtins.print(*args, **kwargs)\n";
+klipse.lang.pyodide.load_pyodide=cljs.core.memoize.call(null,function(){var a=function(){var a=window;return a.loadPyodide.call(a)}();a.then(function(){var a=pyodide;a.runPython.call(a,klipse.lang.pyodide.new_print);return klipse.lang.pyodide._STAR_loaded_STAR_=!0});return a});
+klipse.lang.pyodide.ensure_loaded_BANG_=function(a){var b=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var c=function(){var b=function(b){var c=b[1];if(1===c){var d=cljs.core.async.chan.call(null);b[7]=d;cljs.core.truth_(klipse.lang.pyodide._STAR_loaded_STAR_)?b[1]=2:b[1]=3;return cljs.core.cst$kw$recur}if(2===c)return b[2]=null,b[1]=4,cljs.core.cst$kw$recur;if(3===c){d=b[7];c=cljs.core.async.put_BANG_.call(null,a,"Loading...");var e=klipse.lang.pyodide.load_pyodide.call(null),
+f=function(){var b=d;return function(){cljs.core.async.put_BANG_.call(null,a,"Ready to evaluate...");return cljs.core.async.put_BANG_.call(null,b,"Ready to evaluate...")}}();e=e.then(f);b[8]=c;b[9]=e;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,5,d)}return 4===c?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]):5===c?(b[2]=b[2],b[1]=4,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null,null];b[0]=
+a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(n){d=n;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+
+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),d=function(){var a=c.call(null);a[6]=b;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,d)});return b};
+klipse.lang.pyodide.eval_python=function(a,b){var c=cljs.core.async.chan.call(null),d=function(a){return cljs.core.async.put_BANG_.call(null,c,a)},e=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var e=b[1];if(1===e)return e=klipse.lang.pyodide.ensure_loaded_BANG_.call(null,c),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,2,e);if(2===e)return b[7]=b[2],b[2]=null,b[1]=3,cljs.core.cst$kw$recur;if(3===e){b[4]=cljs.core.cons.call(null,
+6,b[4]);e=pyodide;e=e.runPythonAsync.call(e,a,d,d);var f=function(){return function(a){cljs.core.async.put_BANG_.call(null,c,"\nOutput:\n");null!=a&&d.call(null,a);cljs.core.async.put_BANG_.call(null,c,["\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(function(){var a=pyodide.globals.string_out;return a.getvalue.call(a)}())].join(""));a=pyodide;return a.runPython.call(a," string_out \x3d io.StringIO()")}}();f=e.then(f);var g=e.catch(d);b[4]=cljs.core.rest.call(null,b[4]);b[8]=f;b[9]=g;b[2]=e;b[1]=
+4;return cljs.core.cst$kw$recur}return 4===e?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]):5===e?(e=cljs.core.str.cljs$core$IFn$_invoke$arity$1(b[2]),e=cljs.core.async.put_BANG_.call(null,c,e),b[2]=e,b[1]=4,cljs.core.cst$kw$recur):6===e?(b[4]=cljs.core.rest.call(null,b[4]),b[5]=b[2],b[1]=5,b[5]=null,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=
+b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(r){d=r;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;
+a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),g=function(){var a=b.call(null);a[6]=e;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,g)});return c};
+klipse.lang.pyodide.opts=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"python",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"html",cljs.core.cst$kw$eval_DASH_fn,klipse.lang.pyodide.eval_python,cljs.core.cst$kw$beautify_QMARK_,!1,cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"python"),"https://cdn.jsdelivr.net/pyodide/v0.17.0/full/pyodide.js"],
+null),cljs.core.cst$kw$comment_DASH_str,"#"],null);klipse.common.registry.register_mode.call(null,"pyodide","selector_pyodide",klipse.lang.pyodide.opts);klipse.lang.reagent={};if("undefined"===typeof klipse||"undefined"===typeof klipse.lang||"undefined"===typeof klipse.lang.reagent||"undefined"===typeof klipse.lang.reagent.initialized)klipse.lang.reagent.initialized=cljs.core.atom.call(null,!1);
+klipse.lang.reagent.init_reagent_BANG_=function(a){var b=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var c=function(){var b=function(b){var c=b[1];if(1===c)return c=cljs.core.deref.call(null,klipse.lang.reagent.initialized),cljs.core.truth_(c)?b[1]=2:b[1]=3,cljs.core.cst$kw$recur;if(2===c)return b[2]=null,b[1]=4,cljs.core.cst$kw$recur;if(3===c){c=cljs.core.reset_BANG_.call(null,klipse.lang.reagent.initialized,!0);var d=klipse_clj.lang.clojure.str_eval_async.call(null,
+"(require 'reagent.dom)",a);b[7]=c;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,5,d)}return 4===c?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]):5===c?(b[2]=b[2],b[1]=4,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(n){d=
+n;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),d=function(){var a=c.call(null);a[6]=b;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,
+d)});return b};
+klipse.lang.reagent.eval_reagent=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b,d=cljs.core.get.call(null,c,cljs.core.cst$kw$container_DASH_id),e=cljs.core.get.call(null,c,cljs.core.cst$kw$container),f=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var f=b[1];if(7===f)return f=b[7],b[2]=f,b[1]=9,cljs.core.cst$kw$recur;
+if(1===f)return b[2]=null,b[1]=2,cljs.core.cst$kw$recur;if(4===f){f=cljs.core.str.cljs$core$IFn$_invoke$arity$1(b[2]);var g=goog.dom.setTextContent(e,f);f=cljs.core.async.chan.call(null);var h=cljs.core.async.close_BANG_.call(null,f);b[8]=g;b[9]=h;b[2]=f;b[1]=3;return cljs.core.cst$kw$recur}if(6===f){f=b[2];g=klipse_clj.lang.clojure.split_expressions.call(null,a);h=cljs.core.last.call(null,g);h=klipse_clj.lang.clojure.read_string.call(null,h);var k=cljs.core.vector_QMARK_.call(null,h);b[11]=f;b[10]=
+g;b[7]=h;b[1]=k?7:8;return cljs.core.cst$kw$recur}if(3===f)return cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]);if(2===f)return b[4]=cljs.core.cons.call(null,5,b[4]),f=klipse.lang.reagent.init_reagent_BANG_.call(null,c),cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,6,f);if(9===f){f=b[10];h=b[2];f=cljs.core.drop_last.call(null,1,f);f=clojure.string.join.call(null,"\n",f);g=new cljs.core.List(null,cljs.core.cst$sym$reagent$dom_SLASH_render,null,1,null);h=new cljs.core.List(null,
+h,null,1,null);k=new cljs.core.List(null,cljs.core.cst$sym$js_SLASH_document$getElementById,null,1,null);var l=new cljs.core.List(null,d,null,1,null);k=cljs.core.concat.call(null,k,l);k=cljs.core.seq.call(null,k);k=cljs.core.sequence.call(null,k);k=new cljs.core.List(null,k,null,1,null);g=cljs.core.concat.call(null,g,h,k);g=cljs.core.seq.call(null,g);g=cljs.core.sequence.call(null,g);f=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(f),cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)].join("");f=klipse_clj.lang.clojure.str_eval_async.call(null,
+f,c);b[4]=cljs.core.rest.call(null,b[4]);b[2]=f;b[1]=3;return cljs.core.cst$kw$recur}return 5===f?(b[4]=cljs.core.rest.call(null,b[4]),b[5]=b[2],b[1]=4,b[5]=null,cljs.core.cst$kw$recur):8===f?(f=b[7],f=new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[f],null),b[2]=f,b[1]=9,cljs.core.cst$kw$recur):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=
+b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(t){d=t;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;
+a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),h=function(){var a=b.call(null);a[6]=f;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,h)});return f};klipse.lang.reagent.run=function(){return reagent.dom.render(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$div,1],null),document.getElementById("klipse-container-3"))};
+klipse.lang.reagent.opts=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"clojure",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"clojure",cljs.core.cst$kw$eval_DASH_fn,new cljs.core.Var(function(){return klipse.lang.reagent.eval_reagent},cljs.core.cst$sym$klipse$lang$reagent_SLASH_eval_DASH_reagent,cljs.core.PersistentHashMap.fromArrays([cljs.core.cst$kw$ns,cljs.core.cst$kw$name,cljs.core.cst$kw$file,cljs.core.cst$kw$end_DASH_column,cljs.core.cst$kw$column,cljs.core.cst$kw$line,
+cljs.core.cst$kw$end_DASH_line,cljs.core.cst$kw$arglists,cljs.core.cst$kw$doc,cljs.core.cst$kw$test],[cljs.core.cst$sym$klipse$lang$reagent,cljs.core.cst$sym$eval_DASH_reagent,"/Users/viebel/prj/klipse/src/klipse/lang/reagent.cljs",19,1,18,18,cljs.core.list(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$src,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$keys,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$sym$container_DASH_id,
+cljs.core.cst$sym$container],null),cljs.core.cst$kw$as,cljs.core.cst$sym$opts],null)],null)),null,cljs.core.truth_(klipse.lang.reagent.eval_reagent)?klipse.lang.reagent.eval_reagent.cljs$lang$test:null])),cljs.core.cst$kw$no_DASH_result,!0,cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clojure")],null),cljs.core.cst$kw$comment_DASH_str,";"],null);
+klipse.common.registry.register_mode.call(null,"eval-reagent","selector_reagent",klipse.lang.reagent.opts);klipse.lang.cpp={};
+klipse.lang.cpp.eval_in_chan=function(a,b){try{var c=cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$stdio,new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$write,function(a){return cljs.core.async.put_BANG_.call(null,b,a)}],null)],null)),d=function(){var b=JSCPP;return b.run.call(b,a,"",c)}();return cljs.core._EQ_.call(null,0,d)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$ok,0],null):new cljs.core.PersistentVector(null,
+2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$error,d],null)}catch(e){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.cst$kw$exception,e],null)}};
+klipse.lang.cpp.str_eval_async=function(a,b){b=cljs.core.async.chan.call(null);var c=klipse.lang.cpp.eval_in_chan.call(null,a,b);a=cljs.core.nth.call(null,c,0,null);c=cljs.core.nth.call(null,c,1,null);a=a instanceof cljs.core.Keyword?a.fqn:null;switch(a){case "ok":cljs.core.async.put_BANG_.call(null,b,["\nexit code: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));break;case "error":cljs.core.async.put_BANG_.call(null,b,["\nexit code:",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));
+break;case "exception":cljs.core.async.put_BANG_.call(null,b,["\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));break;default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));}return b};
+klipse.lang.cpp.opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"text/x-c++src",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"text",cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"clike"),klipse.common.registry.scripts_src.call(null,"JSCPP.es5.min.js")],null),cljs.core.cst$kw$eval_DASH_fn,klipse.lang.cpp.str_eval_async,cljs.core.cst$kw$comment_DASH_str,
+"//"],null);klipse.common.registry.register_mode.call(null,"eval-cpp","selector_eval_cpp",klipse.lang.cpp.opts);klipse.lang.html={};
+klipse.lang.html.my_eval=function(a,b){var c=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){return 1===b[1]?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,a):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;
+break a}}}catch(p){d=p;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),e=function(){var a=b.call(null);a[6]=c;return a}();
+return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,e)});return c};
+klipse.lang.html.opts=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"text/html",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"text",cljs.core.cst$kw$default_DASH_editor,"html",cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"xml"),klipse.common.registry.codemirror_mode_src.call(null,"htmlmixed")],null),cljs.core.cst$kw$eval_DASH_fn,klipse.lang.html.my_eval,
+cljs.core.cst$kw$comment_DASH_str,"; "],null);klipse.common.registry.register_mode.call(null,"eval-html","selector_eval_html",klipse.lang.html.opts);klipse.lang.python={};klipse.lang.python.builtin_read=function(a){if(null==function(){var a=Sk;if(null!=a)return a.builtinFiles}()||null==function(){var a=Sk;a=null!=a?a.builtinFiles:void 0;if(null!=a)return a.files}()[a])throw["File not found: '",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"'"].join("");return function(){var a=Sk;a=null!=a?a.builtinFiles:void 0;if(null!=a)return a.files}()[a]};
+klipse.lang.python.init=klipse.utils.runonce.call(null,function(){var a=Sk;a=null!=a?a:{};a.TurtleGraphics={};return a});
+klipse.lang.python.str_eval_async=function(a,b){b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,b):b;var c=cljs.core.get.call(null,b,cljs.core.cst$kw$container_DASH_id);klipse.lang.python.init.call(null);var d=cljs.core.async.chan.call(null);b=Sk;b.configure.call(b,{output:function(a){return cljs.core.async.put_BANG_.call(null,d,a)},read:klipse.lang.python.builtin_read,retainglobals:!0});(function(){var b=
+Sk.misceval;return b.asyncToPromise.call(b,function(){cljs.core.async.put_BANG_.call(null,d,"Output:\n");var b=Sk;b=null!=b?b:{};var e=b.TurtleGraphics;null!=e?b=e:(e={},b=b.TurtleGraphics=e);b.target=c;b=Sk;return b.importMainWithBody.call(b,"\x3cstdin\x3e",!1,a,!0)})})().then(function(a){a=console;return a.info.call(a,"success to eval skulpt: ")},function(a){return cljs.core.async.put_BANG_.call(null,d,["error: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))});return d};
+klipse.lang.python.opts=new cljs.core.PersistentArrayMap(null,6,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"python",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"python",cljs.core.cst$kw$eval_DASH_fn,klipse.lang.python.str_eval_async,cljs.core.cst$kw$beautify_QMARK_,!1,cljs.core.cst$kw$external_DASH_scripts,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[klipse.common.registry.codemirror_mode_src.call(null,"python"),klipse.common.registry.scripts_src.call(null,"skulpt.0.10.0.min.js"),
+klipse.common.registry.scripts_src.call(null,"skulpt-stdlib.0.10.0.js")],null),cljs.core.cst$kw$comment_DASH_str,"#"],null);klipse.common.registry.register_mode.call(null,"eval-python-client","selector_eval_python_client",klipse.lang.python.opts);klipse.lang.js_compile={};
+klipse.lang.js_compile.advanced_compile=function(a){a=cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.cst$kw$jsCode,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,1,[cljs.core.cst$kw$src,a],null)],null),cljs.core.cst$kw$compilationLevel,"ADVANCED"],null));console.log(a);a=cljs.core.js__GT_clj.call(null,compile(a),cljs.core.cst$kw$keywordize_DASH_keys,!0);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||
+cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;var b=cljs.core.get.call(null,a,cljs.core.cst$kw$compiledCode),c=cljs.core.get.call(null,a,cljs.core.cst$kw$errors);cljs.core.get.call(null,a,cljs.core.cst$kw$warnings);return cljs.core.seq.call(null,c)?["//errors during compilation:\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(JSON.stringify(cljs.core.clj__GT_js.call(null,c)))].join(""):b};
+klipse.lang.js_compile.str_compile_js_async=function(a,b){var c=cljs.core.async.chan.call(null),d=cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,function(){var b=function(){var b=function(b){var d=b[1];if(1===d)return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,b,2,c,"//compiling...\n");if(2===d){d=b[2];var e=cljs.core.async.timeout.call(null,0);b[7]=d;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,b,3,e)}return 3===d?(d=b[2],e=klipse.lang.js_compile.advanced_compile.call(null,
+a),b[8]=d,cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,b,4,c,e)):4===d?cljs.core.async.impl.ioc_helpers.return_chan.call(null,b,b[2]):null};return function(){var a=null,c=function(){var b=[null,null,null,null,null,null,null,null,null];b[0]=a;b[1]=1;return b},d=function(a){for(;;){a:try{for(;;){var c=b.call(null,a);if(!cljs.core.keyword_identical_QMARK_.call(null,c,cljs.core.cst$kw$recur)){var d=c;break a}}}catch(q){d=q;a[2]=d;if(cljs.core.seq.call(null,a[4]))a[1]=cljs.core.first.call(null,
+a[4]);else throw d;d=cljs.core.cst$kw$recur}if(!cljs.core.keyword_identical_QMARK_.call(null,d,cljs.core.cst$kw$recur))return d}};a=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,a)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=c;a.cljs$core$IFn$_invoke$arity$1=d;return a}()}(),f=function(){var a=b.call(null);a[6]=d;return a}();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,f)});return c};
+klipse.lang.js_compile.opts=new cljs.core.PersistentArrayMap(null,5,[cljs.core.cst$kw$editor_DASH_in_DASH_mode,"javascript",cljs.core.cst$kw$editor_DASH_out_DASH_mode,"javascript",cljs.core.cst$kw$eval_DASH_fn,klipse.lang.js_compile.str_compile_js_async,cljs.core.cst$kw$min_DASH_eval_DASH_idle_DASH_msec,5E3,cljs.core.cst$kw$comment_DASH_str,"//"],null);klipse.common.registry.register_mode.call(null,"compile-javascript","selector_compile_js",klipse.lang.js_compile.opts);klipse.run={};klipse.run.plugin={};klipse.run.plugin.plugin={};console.info("settings: ",window.klipse_settings);klipse.run.plugin.plugin.settings=function(){return window.klipse_settings};goog.exportSymbol("klipse.run.plugin.plugin.settings",klipse.run.plugin.plugin.settings);cljs.core.truth_(klipse.run.plugin.plugin.settings.call(null))&&klipse.plugin.init.call(null,klipse.run.plugin.plugin.settings.call(null));
+// @license-end
diff --git a/assets/klipse/klipse_plugin.min.js b/assets/klipse/klipse_plugin.min.js
index 29911dd..afbc19f 100644
--- a/assets/klipse/klipse_plugin.min.js
+++ b/assets/klipse/klipse_plugin.min.js
@@ -1068,1088 +1068,1081 @@ s,m))}1==n[0].level&&(r=h.match(/^\s+/))&&(n[0].from=r[0].length,n.unshift(new b
}
});
-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)}
+var h,aa=aa||{},ba=this;function ca(a){return"string"==typeof a}function da(){}
+function ha(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 ia(a){return"array"==ha(a)}function ja(a){var b=ha(a);return"array"==b||"object"==b&&"number"==typeof a.length}function ka(a){return"function"==ha(a)}function la(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function ma(a){return a[oa]||(a[oa]=++pa)}var oa="closure_uid_"+(1E9*Math.random()>>>0),pa=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/g,Ga=/"/g,Ha=/'/g,Ia=/\x00/g,Ca=/[\x00&<>"']/;function Ja(a,b){return ab?1:0}
+function Ka(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};function La(a){if(Error.captureStackTrace)Error.captureStackTrace(this,La);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}ya(La,Error);La.prototype.name="CustomError";function Ma(a,b){b.unshift(a);La.call(this,za.apply(null,b));b.shift()}ya(Ma,La);Ma.prototype.name="AssertionError";function Na(a,b){throw new Ma("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var Oa=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 Ua(a){return Array.prototype.concat.apply([],arguments)}function Va(a){var b=a.length;if(0b?1:a2*this.Aa&&lb(this),!0):!1};
+function lb(a){if(a.Aa!=a.gb.length){for(var b=0,c=0;bb)throw Error("Bad port number "+b);a.Ac=b}else a.Ac=null}
+function zb(a,b,c){wb(a);a.cc=c?Bb(b,!0):b}function Ab(a,b,c){wb(a);b instanceof Cb?(a.yb=b,a.yb.zf(a.Fb)):(c||(b=Db(b,Ib)),a.yb=new Cb(b,a.Fb))}h.getQuery=function(){return this.yb.toString()};function Jb(a,b,c){wb(a);ia(c)||(c=[String(c)]);Kb(a.yb,b,c)}h.removeParameter=function(a){wb(this);this.yb.remove(a);return this};h.isReadOnly=function(){return this.bg};function wb(a){if(a.bg)throw Error("Tried to modify a read-only Uri");}h.zf=function(a){this.Fb=a;this.yb&&this.yb.zf(a)};
+function Bb(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}function Db(a,b,c){return ca(a)?(a=encodeURI(a).replace(b,Lb),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Lb(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var Eb=/[#\/\?@]/g,Gb=/[#\?:]/g,Fb=/[#\?]/g,Ib=/[#\?@]/g,Hb=/#/g;function Cb(a,b){this.Aa=this.Ga=null;this.vb=a||null;this.Fb=!!b}
+function Mb(a){a.Ga||(a.Ga=new kb,a.Aa=0,a.vb&&rb(a.vb,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}h=Cb.prototype;h.Zf=function(){Mb(this);return this.Aa};h.add=function(a,b){Mb(this);this.vb=null;a=Nb(this,a);var c=this.Ga.get(a);c||this.Ga.set(a,c=[]);c.push(b);this.Aa+=1;return this};h.remove=function(a){Mb(this);a=Nb(this,a);return this.Ga.Od(a)?(this.vb=null,this.Aa-=this.Ga.get(a).length,this.Ga.remove(a)):!1};h.clear=function(){this.Ga=this.vb=null;this.Aa=0};
+h.Qc=function(){Mb(this);return 0==this.Aa};h.Od=function(a){Mb(this);a=Nb(this,a);return this.Ga.Od(a)};h.forEach=function(a,b){Mb(this);this.Ga.forEach(function(c,d){Pa(c,function(c){a.call(b,c,d,this)},this)},this)};h.wb=function(){Mb(this);for(var a=this.Ga.Mb(),b=this.Ga.wb(),c=[],d=0;da){var b=Pb[a];if(b)return b}b=new Ob([a|0],0>a?-1:0);-128<=a&&128>a&&(Pb[a]=b);return b}function Sb(a){if(isNaN(a)||!isFinite(a))return Tb;if(0>a)return Sb(-a).ha();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=Ub;return new Ob(b,0)}var Ub=4294967296,Tb=Qb(0),Vb=Qb(1),Xb=Qb(16777216);h=Ob.prototype;
+h.ge=function(){return 0a||36>>0).toString(a);c=e;if(c.$a())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};function Yb(a,b){return 0>b?0:bthis.compare(a)};h.tf=function(a){return 0>=this.compare(a)};
+h.compare=function(a){a=this.rc(a);return a.ma()?-1:a.$a()?0:1};h.ha=function(){return this.uf().add(Vb)};h.add=function(a){for(var b=Math.max(this.oa.length,a.oa.length),c=[],d=0,e=0;e<=b;e++){var f=d+(Yb(this,e)&65535)+(Yb(a,e)&65535),g=(f>>>16)+(Yb(this,e)>>>16)+(Yb(a,e)>>>16);d=g>>>16;f&=65535;g&=65535;c[e]=g<<16|f}return new Ob(c,c[c.length-1]&-2147483648?-1:0)};h.rc=function(a){return this.add(a.ha())};
+h.multiply=function(a){if(this.$a()||a.$a())return Tb;if(this.ma())return a.ma()?this.ha().multiply(a.ha()):this.ha().multiply(a).ha();if(a.ma())return this.multiply(a.ha()).ha();if(this.sd(Xb)&&a.sd(Xb))return Sb(this.Vb()*a.Vb());for(var b=this.oa.length+a.oa.length,c=[],d=0;d<2*b;d++)c[d]=0;for(d=0;d>>16,g=Yb(this,d)&65535,k=Yb(a,e)>>>16,l=Yb(a,e)&65535;c[2*d+2*e]+=g*l;$b(c,2*d+2*e);c[2*d+2*e+1]+=f*l;$b(c,2*d+2*e+1);c[2*d+2*e+
+1]+=g*k;$b(c,2*d+2*e+1);c[2*d+2*e+2]+=f*k;$b(c,2*d+2*e+2)}for(d=0;d>>16,a[b]&=65535,b++}
+function Zb(a,b){if(b.$a())throw Error("division by zero");if(a.$a())return Tb;if(a.ma())return b.ma()?Zb(a.ha(),b.ha()):Zb(a.ha(),b).ha();if(b.ma())return Zb(a,b.ha()).ha();if(30=e?1:Math.pow(2,e-48);f=Sb(d);for(var g=f.multiply(b);g.ma()||g.xe(a);)d-=e,f=Sb(d),g=f.multiply(b);f.$a()&&(f=Vb);c=c.add(f);a=a.rc(g)}return c}h.uf=function(){for(var a=this.oa.length,b=[],c=0;c>5;a%=32;for(var c=this.oa.length+b+(0>>32-a:Yb(this,e-b);return new Ob(d,this.mb)};
+h.Bc=function(a){var b=a>>5;a%=32;for(var c=this.oa.length-b,d=[],e=0;e>>a|Yb(this,e+b+1)<<32-a:Yb(this,e+b);return new Ob(d,this.mb)};function ac(a,b){null!=a&&this.append.apply(this,arguments)}h=ac.prototype;h.uc="";h.set=function(a){this.uc=""+a};h.append=function(a,b,c){this.uc+=String(a);if(null!=b)for(var d=1;da?-1:0)})}function ic(a){a|=0;return-128<=a&&128>a?hc(a):new dc(a,0>a?-1:0)}function jc(a){return isNaN(a)?hc(0):a<=-kc?lc():a+1>=kc?mc():0>a?jc(-a).ha():new dc(a%nc|0,a/nc|0)}function oc(a,b){return new dc(a,b)}
+function pc(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=jc(Math.pow(b,f)),d=d.multiply(f).add(jc(g))):(d=d.multiply(c),d=d.add(jc(g)))}return d}
+var nc=4294967296,kc=nc*nc/2;function mc(){return cc(fc,qc,function(){return oc(-1,2147483647)})}function lc(){return cc(fc,rc,function(){return oc(0,-2147483648)})}function sc(){return cc(fc,tc,function(){return ic(16777216)})}h=dc.prototype;h.ge=function(){return this.Ba};h.Vb=function(){return this.Fa*nc+(0<=this.Ba?this.Ba:nc+this.Ba)};
+h.toString=function(a){a=a||10;if(2>a||36