diff --git a/docs/v1/browser-compiler/coffee-script.js b/docs/v1/browser-compiler/coffee-script.js
index 5edf935e..ba26f8ab 100644
--- a/docs/v1/browser-compiler/coffee-script.js
+++ b/docs/v1/browser-compiler/coffee-script.js
@@ -1,12 +1,394 @@
/**
- * CoffeeScript Compiler v1.11.1
+ * CoffeeScript Compiler v1.12.0
* http://coffeescript.org
*
* Copyright 2011, Jeremy Ashkenas
* Released under the MIT License
*/
-(function(root){var CoffeeScript=function(){function require(e){return require[e]}return require["./helpers"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=o=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,o;for(n=[],r=0,o=e.length;o>r;r++)t=e[r],"[object Array]"===Object.prototype.toString.call(t)?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i,r;for(r=this,n=0,i=r.length;i>n;n++)if(t=r[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,o,s;for(o=e.split("\n"),s=[],n=0,r=o.length;r>n;n++)t=o[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?s.push(t):(i=/^\s*$/.test(t))?s.push(t):s.push("# "+t);return s}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=s,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===s&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},s=function(){var e,t,n,i,r,s,a,c,l,u,h,p,d,f,m;return this.code&&this.location?(h=this.location,a=h.first_line,s=h.first_column,l=h.last_line,c=h.last_column,null==l&&(l=a),null==c&&(c=s),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=s,i=a===l?c+1:e.length,u=e.slice(0,m).replace(/[^\s]/g," ")+o("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return"[1;31m"+e+"[0m"},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),u=t(u)),r+":"+(a+1)+":"+(s+1)+": error: "+this.message+"\n"+e+"\n"+u):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),require["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,s,a,c,l;for(l=this.tokens,i=0;c=l[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);s=c[0],k.call(o,s)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,o,s;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,o=r.length;o>=0?o>i:i>o;n=o>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),s=this.tag(t+n+e),0>k.call(r[n],s)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,o),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,s,a,c,l,u;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(o,c)||this.tokens[e].generated)&&(l=this.tag(e),0>k.call(h,l))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),s=this.tag(e),k.call(o,s)>=0&&n.length&&n.pop(),e-=1;return u=this.tag(e),k.call(t,u)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,u,p){var d,m,g,b,y,v,w,T,N,L,C,F,E,D,_,x,S,I,R,A,O,$,P,M,j,B,V,U;if(U=i[0],C=(F=u>0?p[u-1]:[])[0],N=(p.length-1>u?p[u+1]:[])[0],P=function(){return e[e.length-1]},M=u,g=function(e){return u-M+e},b=function(){var e,t;return null!=(e=P())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return b()&&"("===(null!=(e=P())?e[0]:void 0)},w=function(){var e;return b()&&"{"===(null!=(e=P())?e[0]:void 0)},v=function(){var e;return b&&"CONTROL"===(null!=(e=P())?e[0]:void 0)},j=function(t){var n;return n=null!=t?t:u,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?u+=1:void 0},d=function(){return e.pop(),p.splice(u,0,f("CALL_END",")",["","end of input",i[2]])),u+=1},B=function(t,n){var r,o;return null==n&&(n=!0),r=null!=t?t:u,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),o=new String("{"),o.generated=!0,p.splice(r,0,f("{",o,i)),null==t?u+=1:void 0},m=function(t){return t=null!=t?t:u,e.pop(),p.splice(t,0,f("}","}",i)),u+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",u,{ours:!0}]),g(1);if("INDENT"===U&&b()){if("=>"!==C&&"->"!==C&&"["!==C&&"("!==C&&","!==C&&"{"!==C&&"TRY"!==C&&"ELSE"!==C&&"="!==C)for(;y();)d();return v()&&e.pop(),e.push([U,u]),g(1)}if(k.call(o,U)>=0)return e.push([U,u]),g(1);if(k.call(r,U)>=0){for(;b();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&u>0&&!p[u-1].spaced)&&(k.call(s,N)>=0||k.call(l,N)>=0&&!(null!=(E=p[u+1])?E.spaced:void 0)&&!(null!=(D=p[u+1])?D.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),j(u+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(u+1,"INDENT")>-1&&this.looksObjectish(u+2)&&!this.findTagsBackwards(u,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return j(u+1),e.push(["INDENT",u+2]),g(3);if(":"===U){for(R=function(){var e;switch(!1){case e=this.tag(u-1),0>k.call(r,e):return t[1];case"@"!==this.tag(u-2):return u-2;default:return u-1}}.call(this);"HERECOMMENT"===this.tag(R-2);)R-=2;return this.insideForDeclaration="FOR"===N,V=0===R||(_=this.tag(R-1),k.call(h,_)>=0)||p[R-1].newLine,P()&&(x=P(),$=x[0],O=x[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(V||","===this.tag(R-1)||"{"===this.tag(R-1)))?g(1):(B(R,!!V),g(2))}if(w()&&k.call(h,U)>=0&&(P()[2].sameLine=!1),T="OUTDENT"===C||F.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;b();)if(S=P(),$=S[0],O=S[1],I=S[2],A=I.sameLine,V=I.startsLine,y()&&","!==C)d();else if(w()&&!this.insideForDeclaration&&A&&"TERMINATOR"!==U&&":"!==C)m();else{if(!w()||"TERMINATOR"!==U||","===C||V&&this.looksObjectish(u+1))break;if("HERECOMMENT"===N)return g(1);m()}if(!(","!==U||this.looksObjectish(u+1)||!w()||this.insideForDeclaration||"TERMINATOR"===N&&this.looksObjectish(u+2)))for(L="OUTDENT"===N?1:0;w();)m(u+L);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,o,s,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(o=null!=(a=n[t+1])?a[2]:void 0)?(r=o.first_line,i=o.first_column):(s=null!=(c=n[t-1])?c[2]:void 0)?(r=s.last_line,i=s.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,o,s;return s=r=o=null,t=function(e,t){var r,o,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(o=this.tag(t+1),k.call(i,o)>=0))&&!("ELSE"===e[0]&&"THEN"!==s)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==s&&"=>"!==s)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,o)},this.scanTokens(function(n,a,c){var l,u,h,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(h=this.tag(a+1),k.call(i,h)>=0)return c.splice(a,1),0}if("CATCH"===m)for(l=u=1;2>=u;l=++u)if("OUTDENT"===(p=this.tag(a+l))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+l,0].concat(w.call(this.indentation()))),2+l;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(s=m,f=this.indentation(c[a]),r=f[0],o=f[1],"THEN"===s&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=u={},o=[],r=[],m=0,b=t.length;b>m;m++)y=t[m],g=y[0],v=y[1],o.push(u[v]=g),r.push(u[g]=v);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],s=["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","UNDEFINED","NULL","BOOL","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],l=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],h=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),require["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,T,N,L,C,F,E,D,_,x,S,I,R,A,O,$,P,M,j,B,V,U,H,G,q,Y,X,W,J,z,K,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,lt,ut,ht=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},pt=[].slice;st=require("./rewriter"),B=st.Rewriter,w=st.INVERSES,at=require("./helpers"),tt=at.count,lt=at.starts,et=at.compact,ct=at.repeat,nt=at.invertLiterate,ot=at.locationDataToString,ut=at.throwSyntaxError,e.Lexer=D=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,o;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),o=this.getLineAndColumnFromChunk(n),this.chunkLine=o[0],this.chunkColumn=o[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new B).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(J,""),Z.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=nt(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,l,u,h,p,d,f,m,g,y;return(l=b.exec(this.chunk))?(c=l[0],i=l[1],t=l[2],r=i.length,u=void 0,"own"===i&&"FOR"===this.tag()?(this.token("OWN",i),i.length):"from"===i&&"YIELD"===this.tag()?(this.token("FROM",i),i.length):"as"!==i||!this.seenImport||"IDENTIFIER"!==this.tag()&&"*"!==this.value()?"as"===i&&this.seenExport&&"IDENTIFIER"===this.tag()?(this.token("AS",i),i.length):"default"===i&&this.seenExport?(this.token("DEFAULT",i),i.length):(p=this.tokens,h=p[p.length-1],g=t||null!=h&&("."===(d=h[0])||"?."===d||"::"===d||"?::"===d||!h.spaced&&"@"===h[0])?"PROPERTY":"IDENTIFIER","IDENTIFIER"===g&&(ht.call(N,i)>=0||ht.call(a,i)>=0)&&(g=i.toUpperCase(),"WHEN"===g&&(f=this.tag(),ht.call(C,f)>=0)?g="LEADING_WHEN":"FOR"===g?this.seenFor=!0:"UNLESS"===g?g="IF":"IMPORT"===g?this.seenImport=!0:"EXPORT"===g?this.seenExport=!0:ht.call(z,g)>=0?g="UNARY":ht.call(M,g)>=0&&("INSTANCEOF"!==g&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION","!"===this.value()&&(u=this.tokens.pop(),i="!"+i)))),"IDENTIFIER"===g&&ht.call(j,i)>=0&&this.error("reserved word '"+i+"'",{length:i.length}),"PROPERTY"!==g&&(ht.call(o,i)>=0&&(e=i,i=s[i]),g=function(){switch(i){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),y=this.token(g,i,0,r),e&&(y.origin=[g,e,y[2]]),u&&(m=[u[2].first_line,u[2].first_column],y[2].first_line=m[0],y[2].first_column=m[1]),t&&(n=c.lastIndexOf(":"),this.token(":",":",n,t.length)),c.length):("*"===this.value()&&(this.tokens[this.tokens.length-1][0]="IMPORT_ALL"),this.token("AS",i),i.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r,o,s;if(!(n=I.exec(this.chunk)))return 0;switch(i=n[0],t=i.length,!1){case!/^0[BOX]/.test(i):this.error("radix prefix in '"+i+"' must be lowercase",{offset:1});break;case!/^(?!0x).*E/.test(i):this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")});break;case!/^0\d*[89]/.test(i):this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t});break;case!/^0\d+/.test(i):this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t})}return e=function(){switch(i.charAt(1)){case"b":return 2;case"o":return 8;case"x":return 16;default:return null}}(),r=null!=e?parseInt(i.slice(2),e):parseFloat(i),("b"===(o=i.charAt(1))||"o"===o)&&(i="0x"+r.toString(16)),s=Infinity===r?"INFINITY":"NUMBER",this.token(s,i,0,t),t},e.prototype.stringToken=function(){var e,t,n,i,r,o,s,a,c,l,u,h,m,g,b,y;if(u=(X.exec(this.chunk)||[])[0],!u)return 0;if(this.tokens.length&&"from"===this.value()&&(this.seenImport||this.seenExport)&&(this.tokens[this.tokens.length-1][0]="FROM"),g=function(){switch(u){case"'":return Y;case'"':return G;case"'''":return f;case'"""':return p}}(),o=3===u.length,h=this.matchWithInterpolations(g,u),y=h.tokens,r=h.index,e=y.length-1,n=u.charAt(0),o){for(a=null,i=function(){var e,t,n;for(n=[],s=e=0,t=y.length;t>e;s=++e)b=y[s],"NEOSTRING"===b[0]&&n.push(b[1]);return n}().join("#{}");l=d.exec(i);)t=l[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("\\n"+a,"g")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),c&&(n=n.replace(c,"\n")),0===i&&(n=n.replace(L,"")),i===e&&(n=n.replace(W,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(U,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=h.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,o,s,a,c,l,u,h,p,d;switch(!1){case!(s=P.exec(this.chunk)):this.error("regular expressions cannot begin with "+s[2],{offset:s.index+s[1].length});break;case!(s=this.matchWithInterpolations(m,"///")):d=s.tokens,o=s.index;break;case!(s=O.exec(this.chunk)):if(p=s[0],e=s[1],t=s[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),o=p.length,l=this.tokens,c=l[l.length-1],c)if(c.spaced&&(u=c[0],ht.call(i,u)>=0)){if(!t||A.test(p))return 0}else if(h=c[0],ht.call(S,h)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=$.exec(this.chunk.slice(o))[0],n=o+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Q.test(r):this.error("invalid regular expression flags "+r,{offset:o,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",o,0),this.token("STRING",'"'+r+'"',o,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=x.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,o,s;for(i=this.indent-e;e>0;)o=this.indents[this.indents.length-1],o?o===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>o?(this.outdebt-=o,e-=o):(r=this.indents.pop()+this.outdebt,n&&(s=this.chunk[n],ht.call(y,s)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=Z.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,o,s,a,c,h,p,d,f,m,g;if((e=R.exec(this.chunk))?(g=e[0],r.test(g)&&this.tagParameters()):g=this.chunk.charAt(0),f=g,s=this.tokens,o=s[s.length-1],o&&ht.call(["="].concat(pt.call(u)),g)>=0&&(d=!1,"="!==g||"||"!==(a=o[1])&&"&&"!==a||o.spaced||(o[0]="COMPOUND_ASSIGN",o[1]+="=",o=this.tokens[this.tokens.length-2],d=!0),o&&"PROPERTY"!==o[0]&&(n=null!=(c=o.origin)?c:o,t=it(o[1],n[1]),t&&this.error(t,n[2])),d))return g.length;if(";"===g)this.seenFor=this.seenImport=this.seenExport=!1,f="TERMINATOR";else if("*"===g&&"EXPORT"===o[0])f="EXPORT_ALL";else if(ht.call(_,g)>=0)f="MATH";else if(ht.call(l,g)>=0)f="COMPARE";else if(ht.call(u,g)>=0)f="COMPOUND_ASSIGN";else if(ht.call(z,g)>=0)f="UNARY";else if(ht.call(K,g)>=0)f="UNARY_MATH";else if(ht.call(V,g)>=0)f="SHIFT";else if(ht.call(E,g)>=0||"?"===g&&(null!=o?o.spaced:void 0))f="LOGIC";else if(o&&!o.spaced)if("("===g&&(h=o[0],ht.call(i,h)>=0))"?"===o[0]&&(o[0]="FUNC_EXIST"),f="CALL_START";else if("["===g&&(p=o[0],ht.call(v,p)>=0))switch(f="INDEX_START",o[0]){case"?":o[0]="INDEX_SOAK"}switch(m=this.makeToken(f,g),g){case"(":case"{":case"[":this.ends.push({tag:w[g],origin:m});break;case")":case"}":case"]":this.pair(g)}return this.tokens.push(m),g.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,o,s,a,c,l,u,h,p,d,f,m,g,b;if(b=[],u=n.length,this.chunk.slice(0,u)!==n)return null;for(m=this.chunk.slice(u);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:u}),b.push(this.makeToken("NEOSTRING",g,u)),m=m.slice(g.length),u+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(u+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),l=d.tokens,s=d.index,s+=1,h=l[0],i=l[l.length-1],h[0]=h[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=l[1])?f[0]:void 0)&&l.splice(1,1),b.push(["TOKENS",l]),m=m.slice(s),u+=s}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),o=b[0],a=b[b.length-1],o[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:b,index:u+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y;for(e.length>1&&(h=this.token("STRING_START","(",0,0)),o=this.tokens.length,s=a=0,l=e.length;l>a;s=++a){switch(g=e[s],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;u=y[0],b=y;break;case"NEOSTRING":if(i=n(g[1],s),0===i.length){if(0!==s)continue;r=this.tokens.length}2===s&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),u=g,b=[g]}this.tokens.length>o&&(p=this.token("+","+"),p[2]={first_line:u[2].first_line,first_column:u[2].first_column,last_line:u[2].first_line,last_column:u[2].first_column}),(d=this.tokens).push.apply(d,b)}return h?(c=e[e.length-1],h.origin=["STRING",null,{first_line:h[2].first_line,first_column:h[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,o;return i=this.ends,n=i[i.length-1],e!==(o=null!=n?n.tag:void 0)?("OUTDENT"!==o&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,o;return 0===e?[this.chunkLine,this.chunkColumn]:(o=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=tt(o,"\n"),t=this.chunkColumn,i>0?(r=o.split("\n"),n=r[r.length-1],t=n.length):t+=o.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,o,s,a,c;return null==n&&(n=0),null==i&&(i=t.length),o={},s=this.getLineAndColumnFromChunk(n),o.first_line=s[0],o.first_column=s[1],r=i>0?i-1:0,a=this.getLineAndColumnFromChunk(n+r),o.last_line=a[0],o.last_column=a[1],c=[e,t,o]},e.prototype.token=function(e,t,n,i,r){var o;return o=this.makeToken(e,t,n,i),r&&(o.origin=r),this.tokens.push(o),o},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return F.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(q,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,o,s,a,c,l;return null==t&&(t={}),o=k.exec(e),!o||(o[0],n=o[1],a=o[2],i=o[3],l=o[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(s=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||l),this.error(s+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+o.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,o,s,a,c,l){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!o:return"\\n";case!s:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!l:return t.double?"\\"+l:l}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,o,s,a;return null==t&&(t={}),r="first_line"in t?t:(s=this.getLineAndColumnFromChunk(null!=(o=t.offset)?o:0),i=s[0],n=s[1],s,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),ut(e,r)},e}(),it=function(e,t){switch(null==t&&(t=e),!1){case 0>ht.call(pt.call(N).concat(pt.call(a)),e):return"keyword '"+t+"' can't be assigned";case 0>ht.call(H,e):return"'"+t+"' can't be assigned";case 0>ht.call(j,e):return"reserved word '"+t+"' can't be assigned";default:return!1}},e.isUnassignable=it,N=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"],a=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when"],s={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},o=function(){var e;e=[];for(rt in s)e.push(rt);return e}(),a=a.concat(o),j=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval"],e.JS_FORBIDDEN=N.concat(j).concat(H),t=65279,b=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,R=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,Z=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,x=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,X=/^(?:'''|"""|'|")/,Y=/^(?:[^\\']|\\[\s\S])*/,G=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,q=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,U=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,O=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,$=/^\w*/,Q=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,P=/^(\/|\/{3}\s*)(\*)/,A=/^\/=?\s/,h=/\*\//,F=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,L=/^[^\n\S]*\n/,W=/\n[^\n\S]*$/,J=/\s+$/,u=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],z=["NEW","TYPEOF","DELETE","DO"],K=["!","~"],E=["&&","||","&","|","^"],V=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],_=["*","/","%","//","%%"],M=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER"],v=i.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),S=v.concat(["++","--"]),C=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),require["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,22],i=[1,25],r=[1,83],o=[1,79],s=[1,84],a=[1,85],c=[1,81],l=[1,82],u=[1,56],h=[1,58],p=[1,59],d=[1,60],f=[1,61],m=[1,62],g=[1,49],b=[1,50],y=[1,32],v=[1,68],k=[1,69],w=[1,78],T=[1,47],N=[1,51],L=[1,52],C=[1,67],F=[1,65],E=[1,66],D=[1,64],_=[1,42],x=[1,48],S=[1,63],I=[1,73],R=[1,74],A=[1,75],O=[1,76],$=[1,46],P=[1,72],M=[1,34],j=[1,35],B=[1,36],V=[1,37],U=[1,38],H=[1,39],G=[1,86],q=[1,6,32,42,131],Y=[1,96],X=[1,89],W=[1,88],J=[1,87],z=[1,90],K=[1,91],Q=[1,92],Z=[1,93],et=[1,94],tt=[1,95],nt=[1,99],it=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],rt=[1,105],ot=[1,106],st=[1,107],at=[1,108],ct=[1,110],lt=[1,111],ut=[1,104],ht=[2,161],pt=[1,6,32,42,131,133,135,139,155],dt=[2,27],ft=[1,118],mt=[1,116],gt=[1,6,31,32,42,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],bt=[2,94],yt=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],vt=[2,73],kt=[1,123],wt=[1,128],Tt=[1,129],Nt=[1,131],Lt=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Ct=[2,91],Ft=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Et=[2,63],Dt=[1,161],_t=[1,173],xt=[1,175],St=[1,170],It=[1,177],Rt=[1,179],At=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,155,158,159,160,161,162,163,164,165,166,167,168,169],Ot=[2,110],$t=[1,6,31,32,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Pt=[1,229],Mt=[1,228],jt=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155],Bt=[2,71],Vt=[1,238],Ut=[6,31,32,65,70],Ht=[6,31,32,55,65,70,73],Gt=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,163,165,166,167,168],qt=[82,83,84,85,87,90,113,114],Yt=[1,257],Xt=[2,62],Wt=[1,267],Jt=[1,273],zt=[2,182],Kt=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,162,163,164,165,166,167,168],Qt=[1,283],Zt=[6,31,32,70,115,120],en=[1,6,31,32,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,160,161,162,163,164,165,166,167,168,169],tn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,155],nn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,155],rn=[146,147],on=[70,146,147],sn=[6,31,94],an=[1,296],cn=[6,31,32,70,94],ln=[6,31,32,58,70,94],un=[6,31,32,55,58,70,94],hn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,165,166,167,168],pn=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,148,154,156,157,158,159,160,161],dn=[2,171],fn=[6,31,32],mn=[2,72],gn=[1,308],bn=[1,309],yn=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,150,152,155,158,159,162,163,164,165,166,167,168],vn=[32,150,152],kn=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,155],wn=[1,335],Tn=[1,340],Nn=[1,6,32,42,131,155],Ln=[2,86],Cn=[1,350],Fn=[1,351],En=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,150,155,158,159,162,163,164,165,166,167,168],Dn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,155],_n=[1,363],xn=[1,364],Sn=[6,31,32,94],In=[6,31,32,70],Rn=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],An=[31,70],On=[1,390],$n=[1,391],Pn=[1,396],Mn=[1,397],jn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12,Import:13,Export:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"=":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59,ThisProperty:60,RETURN:61,HERECOMMENT:62,PARAM_START:63,ParamList:64,PARAM_END:65,FuncGlyph:66,"->":67,"=>":68,OptComma:69,",":70,Param:71,ParamVar:72,"...":73,Array:74,Object:75,Splat:76,SimpleAssignable:77,Accessor:78,Parenthetical:79,Range:80,This:81,".":82,"?.":83,"::":84,"?::":85,Index:86,INDEX_START:87,IndexValue:88,INDEX_END:89,INDEX_SOAK:90,Slice:91,"{":92,AssignList:93,"}":94,CLASS:95,EXTENDS:96,IMPORT:97,ImportDefaultSpecifier:98,ImportNamespaceSpecifier:99,ImportSpecifierList:100,ImportSpecifier:101,AS:102,IMPORT_ALL:103,EXPORT:104,ExportSpecifierList:105,DEFAULT:106,EXPORT_ALL:107,ExportSpecifier:108,OptFuncExist:109,Arguments:110,Super:111,SUPER:112,FUNC_EXIST:113,CALL_START:114,CALL_END:115,ArgList:116,THIS:117,"@":118,"[":119,"]":120,RangeDots:121,"..":122,Arg:123,SimpleArgs:124,TRY:125,Catch:126,FINALLY:127,CATCH:128,THROW:129,"(":130,")":131,WhileSource:132,WHILE:133,WHEN:134,UNTIL:135,Loop:136,LOOP:137,ForBody:138,FOR:139,BY:140,ForStart:141,ForSource:142,ForVariables:143,OWN:144,ForValue:145,FORIN:146,FOROF:147,SWITCH:148,Whens:149,ELSE:150,When:151,LEADING_WHEN:152,IfBlock:153,IF:154,POST_IF:155,UNARY:156,UNARY_MATH:157,"-":158,"+":159,"--":160,"++":161,"?":162,MATH:163,"**":164,SHIFT:165,COMPARE:166,LOGIC:167,RELATION:168,COMPOUND_ASSIGN:169,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",12:"STATEMENT",28:"YIELD",29:"FROM",31:"INDENT",32:"OUTDENT",34:"IDENTIFIER",36:"PROPERTY",38:"NUMBER",40:"STRING",41:"STRING_START",42:"STRING_END",44:"REGEX",45:"REGEX_START",46:"REGEX_END",48:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",55:"=",58:":",61:"RETURN",62:"HERECOMMENT",63:"PARAM_START",65:"PARAM_END",67:"->",68:"=>",70:",",73:"...",82:".",83:"?.",84:"::",85:"?::",87:"INDEX_START",89:"INDEX_END",90:"INDEX_SOAK",92:"{",94:"}",95:"CLASS",96:"EXTENDS",97:"IMPORT",102:"AS",103:"IMPORT_ALL",104:"EXPORT",106:"DEFAULT",107:"EXPORT_ALL",112:"SUPER",113:"FUNC_EXIST",114:"CALL_START",115:"CALL_END",117:"THIS",118:"@",119:"[",120:"]",122:"..",125:"TRY",127:"FINALLY",128:"CATCH",129:"THROW",130:"(",131:")",133:"WHILE",134:"WHEN",135:"UNTIL",137:"LOOP",139:"FOR",140:"BY",144:"OWN",146:"FORIN",147:"FOROF",148:"SWITCH",150:"ELSE",152:"LEADING_WHEN",154:"IF",155:"POST_IF",156:"UNARY",157:"UNARY_MATH",158:"-",159:"+",160:"--",161:"++",162:"?",163:"MATH",164:"**",165:"SHIFT",166:"COMPARE",167:"LOGIC",168:"RELATION",169:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[10,2],[10,1],[9,3],[9,2],[11,1],[17,5],[17,2],[66,1],[66,1],[69,0],[69,1],[64,0],[64,1],[64,3],[64,4],[64,6],[71,1],[71,2],[71,3],[71,1],[72,1],[72,1],[72,1],[72,1],[76,2],[77,1],[77,2],[77,2],[77,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[78,2],[78,2],[78,2],[78,2],[78,1],[78,1],[86,3],[86,2],[88,1],[88,1],[75,4],[93,0],[93,1],[93,3],[93,4],[93,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[13,2],[13,4],[13,4],[13,5],[13,7],[13,6],[13,9],[100,1],[100,3],[100,4],[100,4],[100,6],[101,1],[101,3],[98,1],[99,3],[14,3],[14,5],[14,2],[14,4],[14,5],[14,6],[14,3],[14,4],[14,7],[105,1],[105,3],[105,4],[105,4],[105,6],[108,1],[108,3],[108,3],[16,3],[16,3],[16,1],[111,1],[111,2],[109,0],[109,1],[110,2],[110,4],[81,1],[81,1],[60,2],[74,2],[74,4],[121,1],[121,1],[80,5],[91,3],[91,2],[91,2],[91,1],[116,1],[116,3],[116,4],[116,4],[116,6],[123,1],[123,1],[123,1],[124,1],[124,3],[21,2],[21,3],[21,4],[21,5],[126,3],[126,3],[126,2],[26,2],[79,3],[79,5],[132,2],[132,4],[132,2],[132,4],[22,2],[22,2],[22,2],[22,1],[136,2],[136,2],[23,2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[24,5],[24,7],[24,4],[24,6],[149,1],[149,2],[151,3],[151,4],[153,3],[153,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(e,t,n,i,r,o,s){var a=o.length-1;
-switch(r){case 1:return this.$=i.addLocationDataFn(s[a],s[a])(new i.Block);case 2:return this.$=o[a];case 3:this.$=i.addLocationDataFn(s[a],s[a])(i.Block.wrap([o[a]]));break;case 4:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].push(o[a]));break;case 5:this.$=o[a-1];break;case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 71:case 72:case 82:case 83:case 84:case 85:case 90:case 91:case 94:case 98:case 104:case 158:case 182:case 183:case 185:case 215:case 216:case 232:case 238:this.$=o[a];break;case 11:this.$=i.addLocationDataFn(s[a],s[a])(new i.StatementLiteral(o[a]));break;case 27:this.$=i.addLocationDataFn(s[a],s[a])(new i.Op(o[a],new i.Value(new i.Literal(""))));break;case 28:case 242:case 243:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 29:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-2].concat(o[a-1]),o[a]));break;case 30:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Block);break;case 31:case 105:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 32:this.$=i.addLocationDataFn(s[a],s[a])(new i.IdentifierLiteral(o[a]));break;case 33:this.$=i.addLocationDataFn(s[a],s[a])(new i.PropertyName(o[a]));break;case 34:this.$=i.addLocationDataFn(s[a],s[a])(new i.NumberLiteral(o[a]));break;case 36:this.$=i.addLocationDataFn(s[a],s[a])(new i.StringLiteral(o[a]));break;case 37:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.StringWithInterpolations(o[a-1]));break;case 38:this.$=i.addLocationDataFn(s[a],s[a])(new i.RegexLiteral(o[a]));break;case 39:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.RegexWithInterpolations(o[a-1].args));break;case 41:this.$=i.addLocationDataFn(s[a],s[a])(new i.PassthroughLiteral(o[a]));break;case 43:this.$=i.addLocationDataFn(s[a],s[a])(new i.UndefinedLiteral);break;case 44:this.$=i.addLocationDataFn(s[a],s[a])(new i.NullLiteral);break;case 45:this.$=i.addLocationDataFn(s[a],s[a])(new i.BooleanLiteral(o[a]));break;case 46:this.$=i.addLocationDataFn(s[a],s[a])(new i.InfinityLiteral(o[a]));break;case 47:this.$=i.addLocationDataFn(s[a],s[a])(new i.NaNLiteral);break;case 48:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a]));break;case 49:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a]));break;case 50:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1]));break;case 51:case 87:case 92:case 93:case 95:case 96:case 97:case 217:case 218:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 52:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),o[a],"object",{operatorToken:i.addLocationDataFn(s[a-1])(new i.Literal(o[a-1]))}));break;case 53:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(i.addLocationDataFn(s[a-4])(new i.Value(o[a-4])),o[a-1],"object",{operatorToken:i.addLocationDataFn(s[a-3])(new i.Literal(o[a-3]))}));break;case 54:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),o[a],null,{operatorToken:i.addLocationDataFn(s[a-1])(new i.Literal(o[a-1]))}));break;case 55:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(i.addLocationDataFn(s[a-4])(new i.Value(o[a-4])),o[a-1],null,{operatorToken:i.addLocationDataFn(s[a-3])(new i.Literal(o[a-3]))}));break;case 62:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Return(o[a]));break;case 63:this.$=i.addLocationDataFn(s[a],s[a])(new i.Return);break;case 64:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.YieldReturn(o[a]));break;case 65:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.YieldReturn);break;case 66:this.$=i.addLocationDataFn(s[a],s[a])(new i.Comment(o[a]));break;case 67:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Code(o[a-3],o[a],o[a-1]));break;case 68:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Code([],o[a],o[a-1]));break;case 69:this.$=i.addLocationDataFn(s[a],s[a])("func");break;case 70:this.$=i.addLocationDataFn(s[a],s[a])("boundfunc");break;case 73:case 110:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 74:case 111:case 130:case 148:case 177:case 219:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 75:case 112:case 131:case 149:case 178:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 76:case 113:case 132:case 150:case 179:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 77:case 114:case 134:case 152:case 181:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 78:this.$=i.addLocationDataFn(s[a],s[a])(new i.Param(o[a]));break;case 79:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Param(o[a-1],null,!0));break;case 80:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Param(o[a-2],o[a]));break;case 81:case 184:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 86:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Splat(o[a-1]));break;case 88:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].add(o[a]));break;case 89:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(o[a-1],[].concat(o[a])));break;case 99:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a]));break;case 100:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a],"soak"));break;case 101:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.PropertyName("prototype"))),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 102:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.PropertyName("prototype"),"soak")),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 103:this.$=i.addLocationDataFn(s[a],s[a])(new i.Access(new i.PropertyName("prototype")));break;case 106:this.$=i.addLocationDataFn(s[a-1],s[a])(i.extend(o[a],{soak:!0}));break;case 107:this.$=i.addLocationDataFn(s[a],s[a])(new i.Index(o[a]));break;case 108:this.$=i.addLocationDataFn(s[a],s[a])(new i.Slice(o[a]));break;case 109:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Obj(o[a-2],o[a-3].generated));break;case 115:this.$=i.addLocationDataFn(s[a],s[a])(new i.Class);break;case 116:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(null,null,o[a]));break;case 117:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(null,o[a]));break;case 118:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(null,o[a-1],o[a]));break;case 119:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(o[a]));break;case 120:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(o[a-1],null,o[a]));break;case 121:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(o[a-2],o[a]));break;case 122:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Class(o[a-3],o[a-1],o[a]));break;case 123:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.ImportDeclaration(null,o[a]));break;case 124:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-2],null),o[a]));break;case 125:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ImportDeclaration(new i.ImportClause(null,o[a-2]),o[a]));break;case 126:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ImportDeclaration(new i.ImportClause(null,new i.ImportSpecifierList([])),o[a]));break;case 127:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.ImportDeclaration(new i.ImportClause(null,new i.ImportSpecifierList(o[a-4])),o[a]));break;case 128:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-4],o[a-2]),o[a]));break;case 129:this.$=i.addLocationDataFn(s[a-8],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-7],new i.ImportSpecifierList(o[a-4])),o[a]));break;case 133:case 151:case 164:case 180:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 135:this.$=i.addLocationDataFn(s[a],s[a])(new i.ImportSpecifier(o[a]));break;case 136:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ImportSpecifier(o[a-2],o[a]));break;case 137:this.$=i.addLocationDataFn(s[a],s[a])(new i.ImportDefaultSpecifier(o[a]));break;case 138:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ImportNamespaceSpecifier(new i.Literal(o[a-2]),o[a]));break;case 139:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList([])));break;case 140:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList(o[a-2])));break;case 141:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.ExportNamedDeclaration(o[a]));break;case 142:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-2],o[a],null,{moduleDeclaration:"export"})));break;case 143:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-3],o[a],null,{moduleDeclaration:"export"})));break;case 144:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-4],o[a-1],null,{moduleDeclaration:"export"})));break;case 145:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportDefaultDeclaration(o[a]));break;case 146:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ExportAllDeclaration(new i.Literal(o[a-2]),o[a]));break;case 147:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList(o[a-4]),o[a]));break;case 153:this.$=i.addLocationDataFn(s[a],s[a])(new i.ExportSpecifier(o[a]));break;case 154:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportSpecifier(o[a-2],o[a]));break;case 155:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportSpecifier(o[a-2],new i.Literal(o[a])));break;case 156:case 157:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 159:this.$=i.addLocationDataFn(s[a],s[a])(new i.SuperCall);break;case 160:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.SuperCall(o[a]));break;case 161:this.$=i.addLocationDataFn(s[a],s[a])(!1);break;case 162:this.$=i.addLocationDataFn(s[a],s[a])(!0);break;case 163:this.$=i.addLocationDataFn(s[a-1],s[a])([]);break;case 165:case 166:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.ThisLiteral));break;case 167:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(i.addLocationDataFn(s[a-1])(new i.ThisLiteral),[i.addLocationDataFn(s[a])(new i.Access(o[a]))],"this"));break;case 168:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Arr([]));break;case 169:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Arr(o[a-2]));break;case 170:this.$=i.addLocationDataFn(s[a],s[a])("inclusive");break;case 171:this.$=i.addLocationDataFn(s[a],s[a])("exclusive");break;case 172:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Range(o[a-3],o[a-1],o[a-2]));break;case 173:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Range(o[a-2],o[a],o[a-1]));break;case 174:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(o[a-1],null,o[a]));break;case 175:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(null,o[a],o[a-1]));break;case 176:this.$=i.addLocationDataFn(s[a],s[a])(new i.Range(null,null,o[a]));break;case 186:this.$=i.addLocationDataFn(s[a-2],s[a])([].concat(o[a-2],o[a]));break;case 187:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Try(o[a]));break;case 188:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Try(o[a-1],o[a][0],o[a][1]));break;case 189:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Try(o[a-2],null,null,o[a]));break;case 190:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Try(o[a-3],o[a-2][0],o[a-2][1],o[a]));break;case 191:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-1],o[a]]);break;case 192:this.$=i.addLocationDataFn(s[a-2],s[a])([i.addLocationDataFn(s[a-1])(new i.Value(o[a-1])),o[a]]);break;case 193:this.$=i.addLocationDataFn(s[a-1],s[a])([null,o[a]]);break;case 194:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Throw(o[a]));break;case 195:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Parens(o[a-1]));break;case 196:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Parens(o[a-2]));break;case 197:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a]));break;case 198:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{guard:o[a]}));break;case 199:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a],{invert:!0}));break;case 200:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{invert:!0,guard:o[a]}));break;case 201:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].addBody(o[a]));break;case 202:case 203:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 204:this.$=i.addLocationDataFn(s[a],s[a])(o[a]);break;case 205:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.BooleanLiteral("true"))).addBody(o[a]));break;case 206:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.BooleanLiteral("true"))).addBody(i.addLocationDataFn(s[a])(i.Block.wrap([o[a]]))));break;case 207:case 208:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 209:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a],o[a-1]));break;case 210:this.$=i.addLocationDataFn(s[a-1],s[a])({source:i.addLocationDataFn(s[a])(new i.Value(o[a]))});break;case 211:this.$=i.addLocationDataFn(s[a-3],s[a])({source:i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),step:o[a]});break;case 212:this.$=i.addLocationDataFn(s[a-1],s[a])(function(){return o[a].own=o[a-1].own,o[a].name=o[a-1][0],o[a].index=o[a-1][1],o[a]}());break;case 213:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a]);break;case 214:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return o[a].own=!0,o[a]}());break;case 220:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-2],o[a]]);break;case 221:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a]});break;case 222:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a],object:!0});break;case 223:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a]});break;case 224:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a],object:!0});break;case 225:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],step:o[a]});break;case 226:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],guard:o[a-2],step:o[a]});break;case 227:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],step:o[a-2],guard:o[a]});break;case 228:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Switch(o[a-3],o[a-1]));break;case 229:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.Switch(o[a-5],o[a-3],o[a-1]));break;case 230:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Switch(null,o[a-1]));break;case 231:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.Switch(null,o[a-3],o[a-1]));break;case 233:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].concat(o[a]));break;case 234:this.$=i.addLocationDataFn(s[a-2],s[a])([[o[a-1],o[a]]]);break;case 235:this.$=i.addLocationDataFn(s[a-3],s[a])([[o[a-2],o[a-1]]]);break;case 236:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 237:this.$=i.addLocationDataFn(s[a-4],s[a])(o[a-4].addElse(i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}))));break;case 239:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].addElse(o[a]));break;case 240:case 241:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a],i.addLocationDataFn(s[a-2])(i.Block.wrap([o[a-2]])),{type:o[a-1],statement:!0}));break;case 244:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("-",o[a]));break;case 245:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("+",o[a]));break;case 246:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a]));break;case 247:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a]));break;case 248:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a-1],null,!0));break;case 249:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a-1],null,!0));break;case 250:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Existence(o[a-1]));break;case 251:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("+",o[a-2],o[a]));break;case 252:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("-",o[a-2],o[a]));break;case 253:case 254:case 255:case 256:case 257:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 258:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return"!"===o[a-1].charAt(0)?new i.Op(o[a-1].slice(1),o[a-2],o[a]).invert():new i.Op(o[a-1],o[a-2],o[a])}());break;case 259:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a],o[a-1]));break;case 260:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1],o[a-3]));break;case 261:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a],o[a-2]));break;case 262:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Extends(o[a-2],o[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{1:[3]},{1:[2,2],6:G},t(q,[2,3]),t(q,[2,6],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(q,[2,7],{141:77,132:100,138:101,133:I,135:R,139:O,155:nt}),t(q,[2,8]),t(it,[2,14],{109:102,78:103,86:109,82:rt,83:ot,84:st,85:at,87:ct,90:lt,113:ut,114:ht}),t(it,[2,15],{86:109,109:112,78:113,82:rt,83:ot,84:st,85:at,87:ct,90:lt,113:ut,114:ht}),t(it,[2,16]),t(it,[2,17]),t(it,[2,18]),t(it,[2,19]),t(it,[2,20]),t(it,[2,21]),t(it,[2,22]),t(it,[2,23]),t(it,[2,24]),t(it,[2,25]),t(it,[2,26]),t(pt,[2,9]),t(pt,[2,10]),t(pt,[2,11]),t(pt,[2,12]),t(pt,[2,13]),t([1,6,32,42,131,133,135,139,155,162,163,164,165,166,167,168],dt,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:115,8:117,12:n,28:ft,29:mt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:[1,114],62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(gt,bt,{55:[1,119]}),t(gt,[2,95]),t(gt,[2,96]),t(gt,[2,97]),t(gt,[2,98]),t(yt,[2,158]),t([6,31,65,70],vt,{64:120,71:121,72:122,33:124,60:125,74:126,75:127,34:r,73:kt,92:w,118:wt,119:Tt}),{30:130,31:Nt},{7:132,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:133,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:134,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:135,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{15:137,16:138,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:136,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},{15:137,16:138,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:140,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},t(Lt,Ct,{96:[1,144],160:[1,141],161:[1,142],169:[1,143]}),t(it,[2,238],{150:[1,145]}),{30:146,31:Nt},{30:147,31:Nt},t(it,[2,204]),{30:148,31:Nt},{7:149,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,150],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Ft,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:137,16:138,54:139,30:151,77:153,31:Nt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,92:w,96:[1,152],112:C,117:F,118:E,119:D,130:S}),{7:154,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pt,Et,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,7:155,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t([1,6,31,32,42,70,94,131,133,135,139,155],[2,66]),{33:160,34:r,39:156,40:s,41:a,92:[1,159],98:157,99:158,103:Dt},{25:163,33:164,34:r,92:[1,162],95:T,106:[1,165],107:[1,166]},t(Lt,[2,92]),t(Lt,[2,93]),t(gt,[2,40]),t(gt,[2,41]),t(gt,[2,42]),t(gt,[2,43]),t(gt,[2,44]),t(gt,[2,45]),t(gt,[2,46]),t(gt,[2,47]),{4:167,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,31:[1,168],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:169,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:_t,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:171,117:F,118:E,119:D,120:St,123:172,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(gt,[2,165]),t(gt,[2,166],{35:176,36:It}),t([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],[2,159],{110:178,114:Rt}),{31:[2,69]},{31:[2,70]},t(At,[2,87]),t(At,[2,90]),{7:180,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:181,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:182,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:184,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,30:183,31:Nt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{33:189,34:r,60:190,74:191,75:192,80:185,92:w,118:wt,119:D,143:186,144:[1,187],145:188},{142:193,146:[1,194],147:[1,195]},t([6,31,70,94],Ot,{39:80,93:196,56:197,57:198,59:199,11:200,37:201,33:202,35:203,60:204,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),t($t,[2,34]),t($t,[2,35]),t(gt,[2,38]),{15:137,16:205,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:206,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},t([1,6,29,31,32,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,160,161,162,163,164,165,166,167,168,169],[2,32]),t($t,[2,36]),{4:207,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(q,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:208,12:n,28:i,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,133:I,135:R,137:A,139:O,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(it,[2,250]),{7:209,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:210,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:211,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:212,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:213,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:214,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:215,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:216,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:217,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,203]),t(it,[2,208]),{7:218,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,202]),t(it,[2,207]),{110:219,114:Rt},t(At,[2,88]),{114:[2,162]},{35:220,36:It},{35:221,36:It},t(At,[2,103],{35:222,36:It}),{35:223,36:It},t(At,[2,104]),{7:225,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:Pt,74:53,75:54,77:40,79:28,80:29,81:30,88:224,91:226,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,121:227,122:Mt,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{86:230,87:ct,90:lt},{110:231,114:Rt},t(At,[2,89]),t(q,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,7:232,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,133:Et,135:Et,139:Et,155:Et,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(jt,[2,28],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:233,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{132:100,133:I,135:R,138:101,139:O,141:77,155:nt},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,162,163,164,165,166,167,168],dt,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:115,8:117,12:n,28:ft,29:mt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),{6:[1,235],7:234,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,236],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([6,31],Bt,{69:239,65:[1,237],70:Vt}),t(Ut,[2,74]),t(Ut,[2,78],{55:[1,241],73:[1,240]}),t(Ut,[2,81]),t(Ht,[2,82]),t(Ht,[2,83]),t(Ht,[2,84]),t(Ht,[2,85]),{35:176,36:It},{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:_t,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:171,117:F,118:E,119:D,120:St,123:172,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,68]),{4:244,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,32:[1,243],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,163,164,165,166,167,168],[2,242],{141:77,132:97,138:98,162:J}),t(Gt,[2,243],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,244],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,245],{141:77,132:97,138:98,162:J,164:K}),t(it,[2,246],{82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct}),{78:103,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:102,113:ut,114:ht},{78:113,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:112,113:ut,114:ht},t(qt,bt),t(it,[2,247],{82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct}),t(it,[2,248]),t(it,[2,249]),{6:[1,247],7:245,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,246],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:248,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{30:249,31:Nt,154:[1,250]},t(it,[2,187],{126:251,127:[1,252],128:[1,253]}),t(it,[2,201]),t(it,[2,209]),{31:[1,254],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{149:255,151:256,152:Yt},t(it,[2,116]),{7:258,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Ft,[2,119],{30:259,31:Nt,82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct,96:[1,260]}),t(jt,[2,194],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,Xt,{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,123]),{29:[1,261],70:[1,262]},{29:[1,263]},{31:Wt,33:268,34:r,94:[1,264],100:265,101:266},t([29,70],[2,137]),{102:[1,269]},{31:Jt,33:274,34:r,94:[1,270],105:271,108:272},t(pt,[2,141]),{55:[1,275]},{7:276,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{29:[1,277]},{6:G,131:[1,278]},{4:279,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([6,31,70,120],zt,{141:77,132:97,138:98,121:280,73:[1,281],122:Mt,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Kt,[2,168]),t([6,31,120],Bt,{69:282,70:Qt}),t(Zt,[2,177]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:_t,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:284,117:F,118:E,119:D,123:172,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,[2,183]),t(Zt,[2,184]),t(en,[2,167]),t(en,[2,33]),t(yt,[2,160]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:_t,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,115:[1,285],116:286,117:F,118:E,119:D,123:172,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{30:287,31:Nt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(tn,[2,197],{141:77,132:97,138:98,133:I,134:[1,288],135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(tn,[2,199],{141:77,132:97,138:98,133:I,134:[1,289],135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,205]),t(nn,[2,206],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,155,158,159,162,163,164,165,166,167,168],[2,210],{140:[1,290]}),t(rn,[2,213]),{33:189,34:r,60:190,74:191,75:192,92:w,118:wt,119:Tt,143:291,145:188},t(rn,[2,219],{70:[1,292]}),t(on,[2,215]),t(on,[2,216]),t(on,[2,217]),t(on,[2,218]),t(it,[2,212]),{7:293,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:294,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(sn,Bt,{69:295,70:an}),t(cn,[2,111]),t(cn,[2,51],{58:[1,297]}),t(ln,[2,60],{55:[1,298]}),t(cn,[2,56]),t(ln,[2,61]),t(un,[2,57]),t(un,[2,58]),t(un,[2,59]),{46:[1,299],78:113,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:112,113:ut,114:ht},t(qt,Ct),{6:G,42:[1,300]},t(q,[2,4]),t(hn,[2,251],{141:77,132:97,138:98,162:J,163:z,164:K}),t(hn,[2,252],{141:77,132:97,138:98,162:J,163:z,164:K}),t(Gt,[2,253],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,254],{141:77,132:97,138:98,162:J,164:K}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,165,166,167,168],[2,255],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,166,167],[2,256],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,167],[2,257],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,166,167,168],[2,258],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q}),t(nn,[2,241],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,240],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(yt,[2,156]),t(At,[2,99]),t(At,[2,100]),t(At,[2,101]),t(At,[2,102]),{89:[1,301]},{73:Pt,89:[2,107],121:302,122:Mt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{89:[2,108]},{7:303,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,176],92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pn,[2,170]),t(pn,dn),t(At,[2,106]),t(yt,[2,157]),t(q,[2,64],{141:77,132:97,138:98,133:Xt,135:Xt,139:Xt,155:Xt,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,29],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,48],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:304,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:305,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{66:306,67:v,68:k},t(fn,mn,{72:122,33:124,60:125,74:126,75:127,71:307,34:r,73:kt,92:w,118:wt,119:Tt}),{6:gn,31:bn},t(Ut,[2,79]),{7:310,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,zt,{141:77,132:97,138:98,73:[1,311],133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(yn,[2,30]),{6:G,32:[1,312]},t(jt,[2,259],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:313,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:314,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(jt,[2,262],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,239]),{7:315,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,188],{127:[1,316]}),{30:317,31:Nt},{30:320,31:Nt,33:318,34:r,75:319,92:w},{149:321,151:256,152:Yt},{32:[1,322],150:[1,323],151:324,152:Yt},t(vn,[2,232]),{7:326,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,124:325,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(kn,[2,117],{141:77,132:97,138:98,30:327,31:Nt,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,120]),{7:328,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{39:329,40:s,41:a},{92:[1,331],99:330,103:Dt},{39:332,40:s,41:a},{29:[1,333]},t(sn,Bt,{69:334,70:wn}),t(cn,[2,130]),{31:Wt,33:268,34:r,100:336,101:266},t(cn,[2,135],{102:[1,337]}),{33:338,34:r},t(pt,[2,139]),t(sn,Bt,{69:339,70:Tn}),t(cn,[2,148]),{31:Jt,33:274,34:r,105:341,108:272},t(cn,[2,153],{102:[1,342]}),{6:[1,344],7:343,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,345],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Nn,[2,145],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{39:346,40:s,41:a},t(gt,[2,195]),{6:G,32:[1,347]},{7:348,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,148,154,156,157,158,159,160,161],dn,{6:Ln,31:Ln,70:Ln,120:Ln}),{6:Cn,31:Fn,120:[1,349]},t([6,31,32,115,120],mn,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,76:174,7:242,123:352,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,73:xt,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:_,129:x,130:S,133:I,135:R,137:A,139:O,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(fn,Bt,{69:353,70:Qt}),t(yt,[2,163]),t([6,31,115],Bt,{69:354,70:Qt}),t(En,[2,236]),{7:355,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:356,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:357,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(rn,[2,214]),{33:189,34:r,60:190,74:191,75:192,92:w,118:wt,119:Tt,145:358},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,155],[2,221],{141:77,132:97,138:98,134:[1,359],140:[1,360],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Dn,[2,222],{141:77,132:97,138:98,134:[1,361],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{6:_n,31:xn,94:[1,362]},t(Sn,mn,{39:80,57:198,59:199,11:200,37:201,33:202,35:203,60:204,56:365,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),{7:366,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,367],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:368,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,369],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(gt,[2,39]),t($t,[2,37]),t(At,[2,105]),{7:370,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,174],92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{89:[2,175],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(jt,[2,49],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{32:[1,371],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{30:372,31:Nt},t(Ut,[2,75]),{33:124,34:r,60:125,71:373,72:122,73:kt,74:126,75:127,92:w,118:wt,119:Tt},t(In,vt,{71:121,72:122,33:124,60:125,74:126,75:127,64:374,34:r,73:kt,92:w,118:wt,119:Tt}),t(Ut,[2,80],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Zt,Ln),t(yn,[2,31]),{32:[1,375],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(jt,[2,261],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{30:376,31:Nt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{30:377,31:Nt},t(it,[2,189]),{30:378,31:Nt},{30:379,31:Nt},t(Rn,[2,193]),{32:[1,380],150:[1,381],151:324,152:Yt},t(it,[2,230]),{30:382,31:Nt},t(vn,[2,233]),{30:383,31:Nt,70:[1,384]},t(An,[2,185],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,118]),t(kn,[2,121],{141:77,132:97,138:98,30:385,31:Nt,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,124]),{29:[1,386]},{31:Wt,33:268,34:r,100:387,101:266},t(pt,[2,125]),{39:388,40:s,41:a},{6:On,31:$n,94:[1,389]},t(Sn,mn,{33:268,101:392,34:r}),t(fn,Bt,{69:393,70:wn}),{33:394,34:r},{29:[2,138]},{6:Pn,31:Mn,94:[1,395]},t(Sn,mn,{33:274,108:398,34:r}),t(fn,Bt,{69:399,70:Tn}),{33:400,34:r,106:[1,401]},t(Nn,[2,142],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:402,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:403,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pt,[2,146]),{131:[1,404]},{120:[1,405],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(Kt,[2,169]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,123:406,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:_t,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:xt,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:407,117:F,118:E,119:D,123:172,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,[2,178]),{6:Cn,31:Fn,32:[1,408]},{6:Cn,31:Fn,115:[1,409]},t(nn,[2,198],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,200],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,211],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(rn,[2,220]),{7:410,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:411,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:412,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Kt,[2,109]),{11:200,33:202,34:r,35:203,36:It,37:201,38:o,39:80,40:s,41:a,56:413,57:198,59:199,60:204,62:b,118:wt},t(In,Ot,{39:80,56:197,57:198,59:199,11:200,37:201,33:202,35:203,60:204,93:414,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),t(cn,[2,112]),t(cn,[2,52],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:415,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(cn,[2,54],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:416,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{89:[2,173],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(it,[2,50]),t(it,[2,67]),t(Ut,[2,76]),t(fn,Bt,{69:417,70:Vt}),t(it,[2,260]),t(En,[2,237]),t(it,[2,190]),t(Rn,[2,191]),t(Rn,[2,192]),t(it,[2,228]),{30:418,31:Nt},{32:[1,419]},t(vn,[2,234],{6:[1,420]}),{7:421,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,122]),{39:422,40:s,41:a},t(sn,Bt,{69:423,70:wn}),t(pt,[2,126]),{29:[1,424]},{33:268,34:r,101:425},{31:Wt,33:268,34:r,100:426,101:266},t(cn,[2,131]),{6:On,31:$n,32:[1,427]},t(cn,[2,136]),t(pt,[2,140],{29:[1,428]}),{33:274,34:r,108:429},{31:Jt,33:274,34:r,105:430,108:272},t(cn,[2,149]),{6:Pn,31:Mn,32:[1,431]},t(cn,[2,154]),t(cn,[2,155]),t(Nn,[2,143],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{32:[1,432],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(gt,[2,196]),t(gt,[2,172]),t(Zt,[2,179]),t(fn,Bt,{69:433,70:Qt}),t(Zt,[2,180]),t(yt,[2,164]),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,155],[2,223],{141:77,132:97,138:98,140:[1,434],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Dn,[2,225],{141:77,132:97,138:98,134:[1,435],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,224],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(cn,[2,113]),t(fn,Bt,{69:436,70:an}),{32:[1,437],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{32:[1,438],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{6:gn,31:bn,32:[1,439]},{32:[1,440]},t(it,[2,231]),t(vn,[2,235]),t(An,[2,186],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,128]),{6:On,31:$n,94:[1,441]},{39:442,40:s,41:a},t(cn,[2,132]),t(fn,Bt,{69:443,70:wn}),t(cn,[2,133]),{39:444,40:s,41:a},t(cn,[2,150]),t(fn,Bt,{69:445,70:Tn}),t(cn,[2,151]),t(pt,[2,144]),{6:Cn,31:Fn,32:[1,446]},{7:447,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:448,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:_,129:x,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{6:_n,31:xn,32:[1,449]},t(cn,[2,53]),t(cn,[2,55]),t(Ut,[2,77]),t(it,[2,229]),{29:[1,450]},t(pt,[2,127]),{6:On,31:$n,32:[1,451]},t(pt,[2,147]),{6:Pn,31:Mn,32:[1,452]},t(Zt,[2,181]),t(jt,[2,226],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,227],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(cn,[2,114]),{39:453,40:s,41:a},t(cn,[2,134]),t(cn,[2,152]),t(pt,[2,129])],defaultActions:{68:[2,69],69:[2,70],104:[2,162],226:[2,108],338:[2,138]},parseError:function(e,t){function n(e,t){this.message=e,this.hash=t
-}if(!t.recoverable)throw n.prototype=Error,new n(e,t);this.trace(e)},parse:function(e){var t=this,n=[0],i=[null],r=[],o=this.table,s="",a=0,c=0,l=0,u=2,h=1,p=r.slice.call(arguments,1),d=Object.create(this.lexer),f={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(f.yy[m]=this.yy[m]);d.setInput(e,f.yy),f.yy.lexer=d,f.yy.parser=this,d.yylloc===void 0&&(d.yylloc={});var g=d.yylloc;r.push(g);var b=d.options&&d.options.ranges;this.parseError="function"==typeof f.yy.parseError?f.yy.parseError:Object.getPrototypeOf(this).parseError;for(var y,v,k,w,T,N,L,C,F,E=function(){var e;return e=d.lex()||h,"number"!=typeof e&&(e=t.symbols_[e]||e),e},D={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:((null===y||y===void 0)&&(y=E()),w=o[k]&&o[k][y]),w===void 0||!w.length||!w[0]){var _="";F=[];for(N in o[k])this.terminals_[N]&&N>u&&F.push("'"+this.terminals_[N]+"'");_=d.showPosition?"Parse error on line "+(a+1)+":\n"+d.showPosition()+"\nExpecting "+F.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(a+1)+": Unexpected "+(y==h?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(_,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:F})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+y);switch(w[0]){case 1:n.push(y),i.push(d.yytext),r.push(d.yylloc),n.push(w[1]),y=null,v?(y=v,v=null):(c=d.yyleng,s=d.yytext,a=d.yylineno,g=d.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[w[1]][1],D.$=i[i.length-L],D._$={first_line:r[r.length-(L||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(L||1)].first_column,last_column:r[r.length-1].last_column},b&&(D._$.range=[r[r.length-(L||1)].range[0],r[r.length-1].range[1]]),T=this.performAction.apply(D,[s,c,a,f.yy,w[1],i,r].concat(p)),T!==void 0)return T;L&&(n=n.slice(0,2*-1*L),i=i.slice(0,-1*L),r=r.slice(0,-1*L)),n.push(this.productions_[w[1]][0]),i.push(D.$),r.push(D._$),C=o[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0}};return e.prototype=jn,jn.Parser=e,new e}();return require!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,o;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(o=this.parent)?o.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){var i,r,o,s,a,c;return null==n&&(n=!1),n?(c=e.charCodeAt(0),r="z".charCodeAt(0),i=r-c,s=c+t%(i+1),o=String.fromCharCode(s),a=Math.floor(t/(i+1)),""+o+(a||"")):""+e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,o;for(null==t&&(t={}),i=0;;){if(o=this.temporary(e,i,t.single),!(this.check(o)||n.call(this.root.referencedVars,o)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(o,"var",!0),o},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),require["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,T,N,L,C,F,E,D,_,x,S,I,R,A,O,$,P,M,j,B,V,U,H,G,q,Y,X,W,J,z,K,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,lt,ut,ht,pt,dt,ft,mt,gt,bt,yt,vt,kt,wt,Tt,Nt,Lt,Ct,Ft,Et,Dt,_t,xt,St,It,Rt,At,Ot,$t,Pt,Mt,jt,Bt,Vt,Ut,Ht,Gt,qt,Yt=function(e,t){function n(){this.constructor=e}for(var i in t)Xt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Xt={}.hasOwnProperty,Wt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Jt=[].slice;Error.stackTraceLimit=Infinity,st=require("./scope").Scope,jt=require("./lexer"),Ot=jt.isUnassignable,R=jt.JS_FORBIDDEN,Bt=require("./helpers"),Ft=Bt.compact,xt=Bt.flatten,_t=Bt.extend,Pt=Bt.merge,Et=Bt.del,Ut=Bt.starts,Dt=Bt.ends,Vt=Bt.some,Ct=Bt.addLocationDataFn,$t=Bt.locationDataToString,Ht=Bt.throwSyntaxError,e.extend=_t,e.addLocationDataFn=Ct,Nt=function(){return!0},q=function(){return!1},mt=function(){return this},G=function(){return this.negated=!this.negated,this},e.CodeFragment=u=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+$t(this.locationData):"")},e}(),St=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return St(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=_t({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==j&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,s,c,u,h;return(s=this.jumps())&&s.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new l([],o.wrap([this])),n=[],((i=this.contains(Rt))||this.contains(At))&&(n=[new gt],i?(c="apply",n.push(new T("arguments"))):c="call",r=new wt(r,[new t(new et(c))])),u=new a(r,n).compileNode(e),(r.isGenerator||(null!=(h=r.base)?h.isGenerator:void 0))&&(u.unshift(this.makeCode("(yield* ")),u.push(this.makeCode(")"))),u},e.prototype.cache=function(e,t,n){var r,o,s;return r=null!=n?n(this):this.isComplex(),r?(o=new T(e.scope.freeVariable("ref")),s=new i(o,this),t?[s.compileToFragments(e,t),[this.makeCode(o.value)]]:[s,o]):(o=t?this.compileToFragments(e,t):this,[o,o])},e.prototype.cacheToCodeFragments=function(e){return[St(e[0]),St(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new a(new B(e+".push"),[t]):new rt(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof h))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+ft)}),n},e.prototype.eachChild=function(e){var t,n,i,r,o,s,a,c;if(!this.children)return this;for(a=this.children,i=0,o=a.length;o>i;i++)if(t=a[i],this[t])for(c=xt([this[t]]),r=0,s=c.length;s>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new z("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=q,e.prototype.jumps=q,e.prototype.isComplex=Nt,e.prototype.isChainable=q,e.prototype.isAssignable=q,e.prototype.isNumber=q,e.prototype.unwrap=mt,e.prototype.unfoldSoak=q,e.prototype.assigns=q,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return Ht(e,this.locationData)},e.prototype.makeCode=function(e){return new u(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,o,s;for(n=[],r=o=0,s=e.length;s>o;r=++o)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=o=function(e){function t(e){this.expressions=Ft(xt(e||[]))}return Yt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,o;for(o=this.expressions,n=0,r=o.length;r>n;n++)if(t=o[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof h)){this.expressions[n]=t.makeReturn(e),t instanceof rt&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,o,s,a,c,l,u;for(this.tab=e.indent,u=e.level===j,i=[],l=this.expressions,o=s=0,a=l.length;a>s;o=++s)c=l[o],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):u?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,$));return u?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=$?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,o,s,a,c,l,u,p;for(e.indent=e.bare?"":ft,e.level=j,this.spaced=!0,e.scope=new st(null,this,null,null!=(l=e.referencedVars)?l:[]),u=e.locals||[],r=0,o=u.length;o>r;r++)s=u[r],e.scope.parameter(s);return a=[],e.bare||(c=function(){var e,n,r,o;for(r=this.expressions,o=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof h);i=++e)o.push(t);return o}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(Pt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,o,s,a,c,l,u,p,d,f,m;for(r=[],c=[],l=this.expressions,o=s=0,a=l.length;a>s&&(i=l[o],i=i.unwrap(),i instanceof h||i instanceof B);o=++s);return e=Pt(e,{level:j}),o&&(d=this.expressions.splice(o,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(o&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+ft))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+ft))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=B=function(e){function t(e){this.value=e}return Yt(t,e),t.prototype.isComplex=q,t.prototype.assigns=function(e){return e===this.value},t.prototype.compileNode=function(){return[this.makeCode(this.value)]},t.prototype.toString=function(){return" "+(this.isStatement()?t.__super__.toString.apply(this,arguments):this.constructor.name)+": "+this.value},t}(r),e.NumberLiteral=W=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.InfinityLiteral=I=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(){return[this.makeCode("2e308")]},t}(W),e.NaNLiteral=Y=function(e){function t(){t.__super__.constructor.call(this,"NaN")}return Yt(t,e),t.prototype.compileNode=function(e){var t;return t=[this.makeCode("0/0")],e.level>=P?this.wrapInBraces(t):t},t}(W),e.StringLiteral=ut=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.RegexLiteral=nt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.PassthroughLiteral=Z=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.IdentifierLiteral=T=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isAssignable=Nt,t}(B),e.PropertyName=et=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isAssignable=Nt,t}(B),e.StatementLiteral=lt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(){return[this.makeCode(""+this.tab+this.value+";")]},t}(B),e.ThisLiteral=gt=function(e){function t(){t.__super__.constructor.call(this,"this")}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return t=(null!=(n=e.scope.method)?n.bound:void 0)?e.scope.method.context:this.value,[this.makeCode(t)]},t}(B),e.UndefinedLiteral=kt=function(e){function t(){t.__super__.constructor.call(this,"undefined")}return Yt(t,e),t.prototype.compileNode=function(e){return[this.makeCode(e.level>=A?"(void 0)":"void 0")]},t}(B),e.NullLiteral=X=function(e){function t(){t.__super__.constructor.call(this,"null")}return Yt(t,e),t}(B),e.BooleanLiteral=s=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.Return=rt=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.jumps=mt,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t;return t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,M))),t.push(this.makeCode(";")),t},t}(r),e.YieldReturn=Lt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){return null==e.scope.parent&&this.error("yield can only occur inside functions"),t.__super__.compileNode.apply(this,arguments)},t}(rt),e.Value=wt=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return Yt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(tt)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isNumber=function(){return this.bareLiteral(W)},t.prototype.isString=function(){return this.bareLiteral(ut)},t.prototype.isRegex=function(){return this.bareLiteral(nt)},t.prototype.isUndefined=function(){return this.bareLiteral(kt)},t.prototype.isNull=function(){return this.bareLiteral(X)},t.prototype.isBoolean=function(){return this.bareLiteral(s)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof a)return!1;return!0},t.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||this.isBoolean()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof J&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof at},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,o,s,a;return a=this.properties,o=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=o?o.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new T(e.scope.freeVariable("base")),n=new t(new Q(new i(r,n)))),o?(o.isComplex()&&(s=new T(e.scope.freeVariable("name")),o=new S(new i(s,o.index)),s=new S(s)),[n.add(o),new t(r||n.base,[s||o])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,o;for(this.base.front=this.front,o=this.properties,t=this.base.compileToFragments(e,o.length?A:null),o.length&&ot.test(St(t))&&t.push(this.makeCode(".")),n=0,i=o.length;i>n;n++)r=o[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,o,s,a,c,l,u,h,d,f;if(s=n.base.unfoldSoak(e))return(h=s.body.properties).push.apply(h,n.properties),s;for(d=n.properties,o=a=0,c=d.length;c>a;o=++a)if(l=d[o],l.soak)return l.soak=!1,r=new t(n.base,n.properties.slice(0,o)),f=new t(n.base,n.properties.slice(o)),r.isComplex()&&(u=new T(e.scope.freeVariable("ref")),r=new Q(new i(u,r)),f.base=u),new N(new p(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=h=function(e){function t(e){this.comment=e}return Yt(t,e),t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+Mt(i,this.tab)+(Wt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===j&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=a=function(e){function t(e,t,n){this.variable=e,this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.variable instanceof wt&&this.variable.isNotCallable()&&this.variable.error("literal is not a function")}return Yt(t,e),t.prototype.children=["variable","args"],t.prototype.newInstance=function(){var e,n;return e=(null!=(n=this.variable)?n.base:void 0)||this.variable,e instanceof t&&!e.isNew?e.newInstance():this.isNew=!0,this},t.prototype.unfoldSoak=function(e){var n,i,r,o,s,a,c,l,u;if(this.soak){if(this instanceof pt)o=new B(this.superReference(e)),u=new wt(o);else{if(i=Gt(e,this,"variable"))return i;c=new wt(this.variable).cacheReference(e),o=c[0],u=c[1]}return u=new t(u,this.args),u.isNew=this.isNew,o=new B("typeof "+o.compile(e)+' === "function"'),new N(o,new wt(u),{soak:!0})}for(n=this,a=[];;)if(n.variable instanceof t)a.push(n),n=n.variable;else{if(!(n.variable instanceof wt))break;if(a.push(n),!((n=n.variable.base)instanceof t))break}for(l=a.reverse(),r=0,s=l.length;s>r;r++)n=l[r],i&&(n.variable instanceof t?n.variable=i:n.variable.base=i),i=Gt(e,n,"variable");return i},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u;if(null!=(l=this.variable)&&(l.front=this.front),r=ct.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],u=this.args,n=s=0,a=u.length;a>s;n=++s)t=u[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,$));return o=[],this instanceof pt?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),o.push(this.makeCode(c))):(this.isNew&&o.push(this.makeCode("new ")),o.push.apply(o,this.variable.compileToFragments(e,A)),o.push(this.makeCode("("))),o.push.apply(o,i),o.push(this.makeCode(")")),o},t.prototype.compileSplat=function(e,t){var n,i,r,o,s,a;return this instanceof pt?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(o=this.tab+ft,[].concat(this.makeCode("(function(func, args, ctor) {\n"+o+"ctor.prototype = func.prototype;\n"+o+"var child = new ctor, result = func.apply(child, args);\n"+o+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,$),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new wt(this.variable),(s=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,$),this.makeCode(")"),s.compileToFragments(e))):(r=i.compileToFragments(e,A),ot.test(St(r))&&(r=this.wrapInBraces(r)),s?(a=St(r),r.push.apply(r,s.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},t}(r),e.SuperCall=pt=function(e){function n(e){n.__super__.constructor.call(this,null,null!=e?e:[new ct(new T("arguments"))]),this.isBare=null!=e}return Yt(n,e),n.prototype.superReference=function(e){var n,r,o,s,a,c,l,u;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(s=a.klass,c=a.name,u=a.variable,s.isComplex()&&(o=new T(e.scope.parent.freeVariable("base")),r=new wt(new Q(new i(o,s))),u.base=r,u.properties.splice(0,s.properties.length)),(c.isComplex()||c instanceof S&&c.index.isAssignable())&&(l=new T(e.scope.parent.freeVariable("name")),c=new S(new i(l,c.index)),u.properties.pop(),u.properties.push(c)),n=[new t(new et("__super__"))],a["static"]&&n.push(new t(new et("constructor"))),n.push(null!=l?new S(l):c),new wt(null!=o?o:s,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n}(a),e.RegexWithInterpolations=it=function(e){function t(e){null==e&&(e=[]),t.__super__.constructor.call(this,new wt(new T("RegExp")),e,!1)}return Yt(t,e),t}(a),e.Extends=k=function(e){function t(e,t){this.child=e,this.parent=t}return Yt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new a(new wt(new B(qt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.soak="soak"===t}return Yt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t,n,i;return t=this.name.compileToFragments(e),n=this.name.unwrap(),n instanceof et?(i=n.value,Wt.call(R,i)>=0?[this.makeCode('["')].concat(Jt.call(t),[this.makeCode('"]')]):[this.makeCode(".")].concat(Jt.call(t))):[this.makeCode("[")].concat(Jt.call(t),[this.makeCode("]")])},t.prototype.isComplex=q,t}(r),e.Index=S=function(e){function t(e){this.index=e}return Yt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,M),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=tt=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return Yt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,o;return e=Pt(e,{top:!0}),t=Et(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,$,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,$,t)),this.toC=i[0],this.toVar=i[1],(o=Et(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,$,t)),this.step=r[0],this.stepVar=r[1]),this.fromNum=this.from.isNumber()?Number(this.fromVar):null,this.toNum=this.to.isNumber()?Number(this.toVar):null,this.stepNum=(null!=o?o.isNumber():void 0)?Number(this.stepVar):null},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=null!=this.fromNum&&null!=this.toNum,o=Et(e,"index"),s=Et(e,"name"),l=s&&s!==o,f=o+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),u=[o+" <"+this.equals,o+" >"+this.equals],c=u[0],r=u[1],n=null!=this.stepNum?this.stepNum>0?c+" "+this.toVar:r+" "+this.toVar:a?(h=[this.fromNum,this.toNum],i=h[0],d=h[1],h,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?o+" += "+this.stepVar:a?l?d>=i?"++"+o:"--"+o:d>=i?o+"++":o+"--":l?t+" ? ++"+o+" : --"+o:t+" ? "+o+"++ : "+o+"--",l&&(f=s+" = "+f),l&&(p=s+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f;return a=null!=this.fromNum&&null!=this.toNum,a&&20>=Math.abs(this.fromNum-this.toNum)?(u=function(){d=[];for(var e=h=this.fromNum,t=this.toNum;t>=h?t>=e:e>=t;t>=h?e++:e--)d.push(e);return d}.apply(this),this.exclusive&&u.pop(),[this.makeCode("["+u.join(", ")+"]")]):(s=this.tab+ft,o=e.scope.freeVariable("i",{single:!0}),p=e.scope.freeVariable("results"),l="\n"+s+p+" = [];",a?(e.index=o,n=St(this.compileNode(e))):(f=o+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+f+"; "+i+" ? "+o+" <"+this.equals+" "+this.toVar+" : "+o+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+o+"++ : "+o+"--"),c="{ "+p+".push("+o+"); }\n"+s+"return "+p+";\n"+e.indent,r=function(e){return null!=e?e.contains(Rt):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+l+"\n"+s+"for ("+n+")"+c+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=at=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Yt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;return o=this.range,s=o.to,i=o.from,r=i&&i.compileToFragments(e,M)||[this.makeCode("0")],s&&(t=s.compileToFragments(e,M),n=St(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:s.isNumber()?""+(+n+1):(t=s.compileToFragments(e,A),"+"+St(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+St(r)+(a||"")+")")]},t}(r),e.Obj=J=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return Yt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,o,s,a,c,l,u,p,d,f,m,g,b,y,v,k,w,N,L,C;if(N=this.properties,this.generated)for(l=0,g=N.length;g>l;l++)v=N[l],v instanceof wt&&v.error("cannot have an implicit value in an implicit object");for(r=p=0,b=N.length;b>p&&(w=N[r],!((w.variable||w).base instanceof Q));r=++p);for(o=N.length>r,a=e.indent+=ft,m=this.lastNonComment(this.properties),n=[],o&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===N.length||0===r?"}":"\n"))),s=f=0,y=N.length;y>f;s=++f)w=N[s],s===r&&(0!==s&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=s===N.length-1||s===r-1?"":w===m||w instanceof h?"\n":",\n",c=w instanceof h?"":a,o&&r>s&&(c+=ft),w instanceof i&&("object"!==w.context&&w.operatorToken.error("unexpected "+w.operatorToken.value),w.variable instanceof wt&&w.variable.hasProperties()&&w.variable.error("invalid object key")),w instanceof wt&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof h||(r>s?w instanceof i||(w=new i(w,w,"object")):(w instanceof i?(d=w.variable,C=w.value):(L=w.base.cache(e),d=L[0],C=L[1],d instanceof T&&(d=new et(d.value))),w=new i(new wt(new T(k),[new t(d)]),C))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,j)),u&&n.push(this.makeCode(u));return o?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==N.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!o?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return Yt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=ft,t=ct.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,$));return r}.call(this),r=o=0,s=n.length;s>o;r=++o)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return St(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=c=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new o,this.boundFuncs=[],this.body.classBody=!0}return Yt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.defaultClassVariableName="_Class",n.prototype.determineName=function(){var e,n,i,r,o;return this.variable?(r=this.variable.properties,o=r[r.length-1],i=o?o instanceof t&&o.name:this.variable.base,i instanceof T||i instanceof et?(n=i.value,o||(e=Ot(n),e&&this.variable.error(e)),Wt.call(R,n)>=0?"_"+n:n):this.defaultClassVariableName):this.defaultClassVariableName},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof gt?t.value=e:t instanceof l&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,o,s;for(s=this.boundFuncs,i=0,r=s.length;r>i;i++)n=s[i],o=new wt(new gt,[new t(n)]).compile(e),this.ctor.body.unshift(new B(o+" = "+qt("bind",e)+"("+o+", this)"))},n.prototype.addProperties=function(e,n,r){var o,s,a,c,u,h;return h=e.base.properties.slice(0),c=function(){var e;for(e=[];s=h.shift();)s instanceof i&&(a=s.variable.base,delete s.context,u=s.value,"constructor"===a.value?(this.ctor&&s.error("cannot define more than one constructor in a class"),u.bound&&s.error("cannot define a constructor as a bound function"),u instanceof l?s=this.ctor=u:(this.externalCtor=r.classScope.freeVariable("ctor"),s=new i(new T(this.externalCtor),u))):s.variable["this"]?u["static"]=!0:(o=a.isComplex()?new S(a):new t(a),s.variable=new wt(new T(n),[new t(new et("prototype")),o]),u instanceof l&&u.bound&&(this.boundFuncs.push(a),u.bound=!1))),e.push(s);
-return e}.call(this),Ft(c)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(s){var a,c,l,u,h,p,d;if(a=!0,s instanceof n)return!1;if(s instanceof o){for(d=c=s.expressions,l=u=0,h=d.length;h>u;l=++u)p=d[l],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof wt&&p.isObject(!0)&&(a=!1,c[l]=r.addProperties(p,e,t));s.expressions=c=xt(c)}return a&&!(s instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof h||n instanceof wt&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new l,this.externalCtor?this.ctor.body.push(new B(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new B(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,s,c,u,h,p,d;return(s=this.body.jumps())&&s.error("Class bodies cannot contain pure statements"),(n=this.body.contains(Rt))&&n.error("Class bodies shouldn't reference arguments"),h=this.determineName(),u=new T(h),r=new l([],o.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(h),this.walkBody(h,e),this.ensureConstructor(h),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(u),this.parent&&(d=new T(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new k(u,d)),r.params.push(new K(d)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),c=new Q(new a(r,t)),this.variable&&(c=new i(this.variable,c,null,{moduleDeclaration:this.moduleDeclaration})),c.compileToFragments(e)},n}(r),e.ModuleDeclaration=V=function(e){function t(e,t){this.clause=e,this.source=t,this.checkSource()}return Yt(t,e),t.prototype.children=["clause","source"],t.prototype.isStatement=Nt,t.prototype.jumps=mt,t.prototype.makeReturn=mt,t.prototype.checkSource=function(){return null!=this.source&&this.source instanceof ht?this.source.error("the name of the module to be imported from must be an uninterpolated string"):void 0},t.prototype.checkScope=function(e,t){return 0!==e.indent.length?this.error(t+" statements must be at top-level scope"):void 0},t}(r),e.ImportDeclaration=C=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return this.checkScope(e,"import"),e.importedSymbols=[],t=[],t.push(this.makeCode(this.tab+"import ")),null!=this.clause&&t.push.apply(t,this.clause.compileNode(e)),null!=(null!=(n=this.source)?n.value:void 0)&&(null!==this.clause&&t.push(this.makeCode(" from ")),t.push(this.makeCode(this.source.value))),t.push(this.makeCode(";")),t},t}(V),e.ImportClause=L=function(e){function t(e,t){this.defaultBinding=e,this.namedImports=t}return Yt(t,e),t.prototype.children=["defaultBinding","namedImports"],t.prototype.compileNode=function(e){var t;return t=[],null!=this.defaultBinding&&(t.push.apply(t,this.defaultBinding.compileNode(e)),null!=this.namedImports&&t.push(this.makeCode(", "))),null!=this.namedImports&&t.push.apply(t,this.namedImports.compileNode(e)),t},t}(r),e.ExportDeclaration=m=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return this.checkScope(e,"export"),t=[],t.push(this.makeCode(this.tab+"export ")),this instanceof g&&t.push(this.makeCode("default ")),this instanceof g||!(this.clause instanceof i||this.clause instanceof c)||(t.push(this.makeCode("var ")),this.clause.moduleDeclaration="export"),t=null!=this.clause.body&&this.clause.body instanceof o?t.concat(this.clause.compileToFragments(e,j)):t.concat(this.clause.compileNode(e)),null!=(null!=(n=this.source)?n.value:void 0)&&t.push(this.makeCode(" from "+this.source.value)),t.push(this.makeCode(";")),t},t}(V),e.ExportNamedDeclaration=b=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ExportDefaultDeclaration=g=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ExportAllDeclaration=f=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ModuleSpecifierList=H=function(e){function t(e){this.specifiers=e}return Yt(t,e),t.prototype.children=["specifiers"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;if(t=[],e.indent+=ft,n=function(){var t,n,i,r;for(i=this.specifiers,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,$));return r}.call(this),0!==this.specifiers.length){for(t.push(this.makeCode("{\n"+e.indent)),r=o=0,s=n.length;s>o;r=++o)i=n[r],r&&t.push(this.makeCode(",\n"+e.indent)),t.push.apply(t,i);t.push(this.makeCode("\n}"))}else t.push(this.makeCode("{}"));return t},t}(r),e.ImportSpecifierList=_=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(H),e.ExportSpecifierList=v=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(H),e.ModuleSpecifier=U=function(e){function t(e,t,n){this.original=e,this.alias=t,this.moduleDeclarationType=n,this.identifier=null!=this.alias?this.alias.value:this.original.value}return Yt(t,e),t.prototype.children=["original","alias"],t.prototype.compileNode=function(e){var t;return e.scope.add(this.identifier,this.moduleDeclarationType),t=[],t.push(this.makeCode(this.original.value)),null!=this.alias&&t.push(this.makeCode(" as "+this.alias.value)),t},t}(r),e.ImportSpecifier=D=function(e){function t(e,n){t.__super__.constructor.call(this,e,n,"import")}return Yt(t,e),t.prototype.compileNode=function(e){var n;return n=this.identifier,Wt.call(e.importedSymbols,n)>=0||e.scope.check(this.identifier)?this.error("'"+this.identifier+"' has already been declared"):e.importedSymbols.push(this.identifier),t.__super__.compileNode.call(this,e)},t}(U),e.ImportDefaultSpecifier=F=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(D),e.ImportNamespaceSpecifier=E=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(D),e.ExportSpecifier=y=function(e){function t(e,n){t.__super__.constructor.call(this,e,n,"export")}return Yt(t,e),t}(U),e.Assign=i=function(e){function n(e,t,n,i){this.variable=e,this.value=t,this.context=n,null==i&&(i={}),this.param=i.param,this.subpattern=i.subpattern,this.operatorToken=i.operatorToken,this.moduleDeclaration=i.moduleDeclaration}return Yt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===j&&null!=this.context&&(this.moduleDeclaration||Wt.call(this.context,"?")>=0)},n.prototype.checkAssignability=function(e,t){return Object.prototype.hasOwnProperty.call(e.scope.positions,t.value)&&"import"===e.scope.variables[e.scope.positions[t.value]].type?t.error("'"+t.value+"' is read-only"):void 0},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return Gt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,h,p,d,f,m,g;if(i=this.variable instanceof wt){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(c=this.context)||"&&="===c||"?="===c)return this.compileConditional(e);if("**="===(u=this.context)||"//="===u||"%%="===u)return this.compileSpecialMath(e)}return this.value instanceof l&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(h=this.variable.properties)?h.length:void 0)>=2&&(p=this.variable.properties,s=p.length>=3?Jt.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],o=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new wt(this.variable.base,s),this.value.name=o,this.value.variable=this.variable))),this.context||(g=this.variable.unwrapAll(),g.isAssignable()||this.variable.error("'"+this.variable.compile(e)+"' can't be assigned"),("function"==typeof g.hasProperties?g.hasProperties():void 0)||(this.moduleDeclaration?(this.checkAssignability(e,g),e.scope.add(g.value,this.moduleDeclaration)):this.param?e.scope.add(g.value,"var"):(this.checkAssignability(e,g),e.scope.find(g.value)))),m=this.value.compileToFragments(e,$),i&&this.variable.base instanceof J&&(this.variable.front=!0),n=this.variable.compileToFragments(e,$),"object"===this.context?(f=St(n),Wt.call(R,f)>=0&&(n.unshift(this.makeCode('"')),n.push(this.makeCode('"'))),n.concat(this.makeCode(": "),m)):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),m),$>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,o,s,a,c,l,u,h,p,f,m,g,b,y,v,k,w,N,L,C,F,E,D,_,x,I,R;if(D=e.level===j,x=this.value,v=this.variable.base.objects,!(k=v.length))return o=x.compileToFragments(e),e.level>=P?this.wrapInBraces(o):o;if(y=v[0],1===k&&y instanceof d&&y.error("Destructuring assignment has no target"),h=this.variable.isObject(),D&&1===k&&!(y instanceof ct))return s=null,y instanceof n&&"object"===y.context?(N=y,L=N.variable,u=L.base,y=N.value,y instanceof n&&(s=y.value,y=y.variable)):(y instanceof n&&(s=y.value,y=y.variable),u=h?y["this"]?y.properties[0].name:new et(y.unwrap().value):new W(0)),i=u.unwrap()instanceof et,x=new wt(x),x.properties.push(new(i?t:S)(u)),g=Ot(y.unwrap().value),g&&y.error(g),s&&(x=new z("?",x,s)),new n(y,x,null,{param:this.param}).compileToFragments(e,j);for(I=x.compileToFragments(e,$),R=St(I),r=[],a=!1,x.unwrap()instanceof T&&!this.variable.assigns(R)||(r.push([this.makeCode((w=e.scope.freeVariable("ref"))+" = ")].concat(Jt.call(I))),I=[this.makeCode(w)],R=w),l=f=0,m=v.length;m>f;l=++f){if(y=v[l],u=l,!a&&y instanceof ct)b=y.name.unwrap().value,y=y.unwrap(),_=k+" <= "+R+".length ? "+qt("slice",e)+".call("+R+", "+l,(E=k-l-1)?(p=e.scope.freeVariable("i",{single:!0}),_+=", "+p+" = "+R+".length - "+E+") : ("+p+" = "+l+", [])"):_+=") : []",_=new B(_),a=p+"++";else{if(!a&&y instanceof d){(E=k-l-1)&&(1===E?a=R+".length - 1":(p=e.scope.freeVariable("i",{single:!0}),_=new B(p+" = "+R+".length - "+E),a=p+"++",r.push(_.compileToFragments(e,$))));continue}(y instanceof ct||y instanceof d)&&y.error("multiple splats/expansions are disallowed in an assignment"),s=null,y instanceof n&&"object"===y.context?(C=y,F=C.variable,u=F.base,y=C.value,y instanceof n&&(s=y.value,y=y.variable)):(y instanceof n&&(s=y.value,y=y.variable),u=h?y["this"]?y.properties[0].name:new et(y.unwrap().value):new B(a||u)),b=y.unwrap().value,i=u.unwrap()instanceof et,_=new wt(new B(R),[new(i?t:S)(u)]),s&&(_=new z("?",_,s))}null!=b&&(g=Ot(b),g&&y.error(g)),r.push(new n(y,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,$))}return D||this.subpattern||r.push(I),c=this.joinFragmentArrays(r,", "),$>e.level?c:this.wrapInBraces(c)},n.prototype.compileConditional=function(e){var t,i,r,o;return r=this.variable.cacheReference(e),i=r[0],o=r[1],i.properties.length||!(i.base instanceof B)||i.base instanceof gt||e.scope.check(i.base.value)||this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Wt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new N(new p(i),o,{type:"if"}).addElse(new n(o,this.value,"=")).compileToFragments(e)):(t=new z(this.context.slice(0,-1),i,new n(o,this.value,"=")).compileToFragments(e),$>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new z(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,o,s,a,c,l,u,h,p;return a=this.variable.properties.pop().range,i=a.from,u=a.to,n=a.exclusive,s=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,P)),r=c[0],o=c[1]):r=o="0",u?(null!=i?i.isNumber():void 0)&&u.isNumber()?(u=u.compile(e)-o,n||(u+=1)):(u=u.compile(e,A)+" - "+o,n||(u+=" + 1")):u="9e9",l=this.value.cache(e,$),h=l[0],p=l[1],t=[].concat(this.makeCode("[].splice.apply("+s+", ["+r+", "+u+"].concat("),h,this.makeCode(")), "),p),e.level>j?this.wrapInBraces(t):t},n}(r),e.Code=l=function(e){function t(e,t,n){this.params=e||[],this.body=t||new o,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){return e instanceof z&&e.isYield()||e instanceof Lt})}return Yt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=q,t.prototype.makeScope=function(e){return new st(e,this.body,this)},t.prototype.compileNode=function(e){var r,s,c,l,u,h,p,f,m,g,b,y,v,k,w,L,C,F,E,D,_,x,S,I,R,O,$,P,M,j,V,U,H;if(this.bound&&(null!=(S=e.scope.method)?S.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new K(new T(this.context))],new o([this])),s=new a(H,[new gt]),s.updateLocationDataIfMissing(this.locationData),s.compileNode(e);for(e.scope=Et(e,"classScope")||this.makeScope(e.scope),e.scope.shared=Et(e,"sharedScope"),e.indent+=ft,delete e.bare,delete e.isExistentialEquals,E=[],l=[],I=this.params,h=0,m=I.length;m>h;h++)F=I[h],F instanceof d||e.scope.parameter(F.asReference(e));for(R=this.params,p=0,g=R.length;g>p;p++)if(F=R[p],F.splat||F instanceof d){for(O=this.params,f=0,b=O.length;b>f;f++)C=O[f],C instanceof d||!C.name.value||e.scope.add(C.name.value,"var",!0);M=new i(new wt(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)C=i[n],r.push(C.asReference(e));return r}.call(this))),new wt(new T("arguments")));break}for($=this.params,L=0,y=$.length;y>L;L++)F=$[L],F.isComplex()?(V=x=F.asReference(e),F.value&&(V=new z("?",x,F.value)),l.push(new i(new wt(F.name),V,"=",{param:!0}))):(x=F,F.value&&(w=new B(x.name.value+" == null"),V=new i(new wt(F.name),F.value,"="),l.push(new N(w,V)))),M||E.push(x);for(U=this.body.isEmpty(),M&&l.unshift(M),l.length&&(P=this.body.expressions).unshift.apply(P,l),u=D=0,v=E.length;v>D;u=++D)C=E[u],E[u]=C.compileToFragments(e),e.scope.parameter(St(E[u]));for(j=[],this.eachParamName(function(e,t){return Wt.call(j,e)>=0&&t.error("multiple parameters named "+e),j.push(e)}),U||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],u=_=0,k=E.length;k>_;u=++_)C=E[u],u&&r.push(this.makeCode(", ")),r.push.apply(r,C);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Jt.call(r)):this.front||e.level>=A?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,o;for(r=this.params,o=[],t=0,n=r.length;n>t;t++)i=r[t],o.push(i.eachName(e));return o},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=K=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,i=Ot(this.name.unwrapAll().value),i&&this.name.error(i),this.name instanceof J&&this.name.generated&&(r=this.name.objects[0].operatorToken,r.error("unexpected "+r.value))}return Yt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,$)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,Wt.call(R,t)>=0&&(t="_"+t),n=new T(e.scope.freeVariable(t))):n.isComplex()&&(n=new T(e.scope.freeVariable("arg"))),n=new wt(n),this.splat&&(n=new ct(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,o,s,a,c,l;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof B)return e(t.value,t);if(t instanceof wt)return n(t);for(l=null!=(c=t.objects)?c:[],r=0,o=l.length;o>r;r++)a=l[r],a instanceof i&&null==a.context&&(a=a.variable),a instanceof i?(a.value instanceof i&&(a=a.value),this.eachName(e,a.value.unwrap())):a instanceof ct?(s=a.name.unwrap(),e(s.value,s)):a instanceof wt?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof d||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=ct=function(e){function t(e){this.name=e.compile?e:new B(e)}return Yt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Nt,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,o,s,a,c,l,u,h,p,d,f;for(u=-1;(f=n[++u])&&!(f instanceof t););if(u>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,$),i?c:[].concat(f.makeCode(qt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(u),l=h=0,d=r.length;d>h;l=++h)f=r[l],s=f.compileToFragments(e,$),r[l]=f instanceof t?[].concat(f.makeCode(qt("slice",e)+".call("),s,f.makeCode(")")):[].concat(f.makeCode("["),s,f.makeCode("]"));return 0===u?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(o=function(){var t,i,r,o;for(r=n.slice(0,u),o=[],t=0,i=r.length;i>t;t++)f=r[t],o.push(f.compileToFragments(e,$));return o}(),o=n[0].joinFragmentArrays(o,", "),a=n[u].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),o,n[u].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=d=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isComplex=q,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=Tt=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return Yt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Nt,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=ft,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new N(new Q(this.guard).invert(),new lt("continue"))):this.guard&&(n=o.wrap([new N(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,j),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,M),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=z=function(e){function n(e,t,n,i){if("in"===e)return new x(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof a&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof l&&t.bound||t["do"])&&(t=new Q(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,o;return Yt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},o={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isNumber=function(){var e;return this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof wt&&this.first.isNumber()},n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){return!this.isNumber()},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,s;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in o),t=t.first;if(!e)return new Q(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=o[t.operator],t=t.first;return this}return(r=o[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new Q(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(s=i.operator)||"in"===s||"instanceof"===s)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&Gt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,o,s,c,u,h;for(c=[],n=e instanceof i&&(u=e.value.unwrap())instanceof l?u:e,h=n.params||[],r=0,o=h.length;o>r;r++)s=h[r],s.value?(c.push(s.value),delete s.value):c.push(s);return t=new a(e,c),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,o,s;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(o=this.operator)||"++"===o)&&(r=Ot(this.first.unwrapAll().value),r&&this.first.error(r)),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,P),s=this.second.compileToFragments(e,P),t=[].concat(i,this.makeCode(" "+this.operator+" "),s),P>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,P),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,P)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new T(e.scope.freeVariable("ref")),t=new Q(new i(n,this.first))):(t=this.first,n=t),new N(new p(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof p?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=A?new Q(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new Q(this.first)),i.push(this.first.compileToFragments(e,P)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n,i;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield can only occur inside functions"),Wt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof bt)?null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,P)):(e.level>=M&&n.push([this.makeCode("(")]),n.push([this.makeCode(t)]),""!==(null!=(i=this.first.base)?i.value:void 0)&&n.push([this.makeCode(" ")]),n.push(this.first.compileToFragments(e,P)),e.level>=M&&n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new wt(new T("Math"),[new t(new et("pow"))]),new a(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new wt(new T("Math"),[new t(new et("floor"))]),i=new n("/",this.first,this.second),new a(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new wt(new B(qt("modulo",e))),new a(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=x=function(e){function t(e,t){this.object=e,this.array=t}return Yt(t,e),t.prototype.children=["object","array"],t.prototype.invert=G,t.prototype.compileNode=function(e){var t,n,i,r,o;if(this.array instanceof wt&&this.array.isArray()&&this.array.base.objects.length){for(o=this.array.base.objects,n=0,i=o.length;i>n;n++)if(r=o[n],r instanceof ct){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,o,s,a,c,l,u,h,p;for(c=this.object.cache(e,P),h=c[0],a=c[1],l=this.negated?[" !== "," && "]:[" === "," || "],t=l[0],n=l[1],p=[],u=this.array.base.objects,i=o=0,s=u.length;s>o;i=++o)r=u[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:h,this.makeCode(t),r.compileToFragments(e,A));return P>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,$),r=i[0],n=i[1],t=[].concat(this.makeCode(qt("indexOf",e)+".call("),this.array.compileToFragments(e,$),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),St(r)===St(n)?t:(t=r.concat(this.makeCode(", "),t),$>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=yt=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return Yt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Nt,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,o,s,a;return e.indent+=ft,a=this.attempt.compileToFragments(e,j),t=this.recovery?(r=e.scope.freeVariable("error",{reserve:!1}),s=new T(r),this.errorVariable?(o=Ot(this.errorVariable.unwrapAll().value),o?this.errorVariable.error(o):void 0,this.recovery.unshift(new i(this.errorVariable,s))):void 0,[].concat(this.makeCode(" catch ("),s.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,j),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(r=e.scope.freeVariable("error",{reserve:!1}),[this.makeCode(" catch ("+r+") {}")]),n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,j),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),a,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=bt=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Nt,t.prototype.jumps=q,t.prototype.makeReturn=mt,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=p=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.invert=G,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,P),this.expression.unwrap()instanceof T&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(O>=e.level?i:"("+i+")")]},t}(r),e.Parens=Q=function(e){function t(e){this.body=e}return Yt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof wt&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,M),t=P>e.level&&(n instanceof z||n instanceof a||n instanceof w&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.StringWithInterpolations=ht=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(Q),e.For=w=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=o.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof wt&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof wt&&this.source.base instanceof tt&&!this.source.properties.length,this.pattern=this.name instanceof wt,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return Yt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,L,C,F,E,D,_,x,S,I,R,A,O,P,M,V;return t=o.wrap([this.body]),E=t.expressions,k=E[E.length-1],(null!=k?k.jumps():void 0)instanceof rt&&(this.returns=!1),R=this.range?this.source.base:this.source,I=e.scope,this.pattern||(L=this.name&&this.name.compile(e,$)),g=this.index&&this.index.compile(e,$),L&&!this.pattern&&I.find(L),g&&I.find(g),this.returns&&(S=I.freeVariable("results")),b=this.object&&g||I.freeVariable("i",{single:!0}),y=this.range&&L||g||b,v=y!==b?y+" = ":"",this.step&&!this.range&&(D=this.cacheToCodeFragments(this.step.cache(e,$,It)),A=D[0],P=D[1],this.step.isNumber()&&(O=Number(P))),this.pattern&&(L=b),V="",d="",l="",f=this.tab+ft,this.range?p=R.compileToFragments(Pt(e,{index:b,name:L,step:this.step,isComplex:It})):(M=this.source.compile(e,$),!L&&!this.own||this.source.unwrap()instanceof T||(l+=""+this.tab+(F=I.freeVariable("ref"))+" = "+M+";\n",M=F),L&&!this.pattern&&(C=L+" = "+M+"["+y+"]"),this.object||(A!==P&&(l+=""+this.tab+A+";\n"),h=0>O,this.step&&null!=O&&h||(w=I.freeVariable("len")),a=""+v+b+" = 0, "+w+" = "+M+".length",c=""+v+b+" = "+M+".length - 1",r=b+" < "+w,s=b+" >= 0",this.step?(null!=O?h&&(r=s,a=c):(r=P+" > 0 ? "+r+" : "+s,a="("+P+" > 0 ? ("+a+") : "+c+")"),m=b+" += "+P):m=""+(y!==b?"++"+b:b+"++"),p=[this.makeCode(a+"; "+r+"; "+v+m)])),this.returns&&(_=""+this.tab+S+" = [];\n",x="\n"+this.tab+"return "+S+";",t.makeReturn(S)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new N(new Q(this.guard).invert(),new lt("continue"))):this.guard&&(t=o.wrap([new N(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new B(M+"["+y+"]"))),u=[].concat(this.makeCode(l),this.pluckDirectCall(e,t)),C&&(V="\n"+f+C+";"),this.object&&(p=[this.makeCode(y+" in "+M)],this.own&&(d="\n"+f+"if (!"+qt("hasProp",e)+".call("+M+", "+y+")) continue;")),n=t.compileToFragments(Pt(e,{indent:f}),j),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(u,this.makeCode(""+(_||"")+this.tab+"for ("),p,this.makeCode(") {"+d+V),n,this.makeCode(this.tab+"}"+(x||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,o,s,c,u,h,p,d,f,m,g,b,y,v,k;for(r=[],d=t.expressions,c=u=0,h=d.length;h>u;c=++u)o=d[c],o=o.unwrapAll(),o instanceof a&&(k=null!=(f=o.variable)?f.unwrapAll():void 0,(k instanceof l||k instanceof wt&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof l&&1===k.properties.length&&("call"===(g=null!=(b=k.properties[0].name)?b.value:void 0)||"apply"===g))&&(s=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new T(e.scope.freeVariable("fn")),n=new wt(p),k.base&&(v=[n,k],k.base=v[0],n=v[1]),t.expressions[c]=new a(n,o.args),r=r.concat(this.makeCode(this.tab),new i(p,s).compileToFragments(e,j),this.makeCode(";\n"))));
-return r},t}(Tt),e.Switch=dt=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return Yt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Nt,t.prototype.jumps=function(e){var t,n,i,r,o,s,a,c;for(null==e&&(e={block:!0}),s=this.cases,i=0,o=s.length;o>i;i++)if(a=s[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,s;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new o([new B("void 0")]))),null!=(s=this.otherwise)&&s.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g;for(c=e.indent+ft,l=e.indent=c+ft,s=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,M):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=u=0,p=f.length;p>u;a=++u){for(m=f[a],r=m[0],t=m[1],g=xt([r]),h=0,d=g.length;d>h;h++)i=g[h],this.subject||(i=i.invert()),s=s.concat(this.makeCode(c+"case "),i.compileToFragments(e,M),this.makeCode(":\n"));if((n=t.compileToFragments(e,j)).length>0&&(s=s.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;o=this.lastNonComment(t.expressions),o instanceof rt||o instanceof B&&o.jumps()&&"debugger"!==o.value||s.push(i.makeCode(l+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&s.push.apply(s,[this.makeCode(c+"default:\n")].concat(Jt.call(this.otherwise.compileToFragments(e,j)),[this.makeCode("\n")])),s.push(this.makeCode(this.tab+"}")),s},t}(r),e.If=N=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return Yt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===j||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new o([new B("void 0")]))),this.body&&(this.body=new o([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new o([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof o?e:new o([e])},t.prototype.compileStatement=function(e){var n,i,r,o,s,a,c;return r=Et(e,"chainChild"),(s=Et(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+ft,o=this.condition.compileToFragments(e,M),i=this.ensureBlock(this.body).compileToFragments(Pt(e,{indent:c})),a=[].concat(this.makeCode("if ("),o,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,j))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Pt(e,{indent:c}),j),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,O),n=this.bodyNode().compileToFragments(e,$),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,$):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=O?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),vt={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+qt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},j=1,M=2,$=3,O=4,P=5,A=6,ft=" ",ot=/^[+-]?\d+$/,qt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,vt[e](t)),i.utilities[e]=n)},Mt=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},Rt=function(e){return e instanceof T&&"arguments"===e.value},At=function(e){return e instanceof gt||e instanceof l&&e.bound||e instanceof pt},It=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},Gt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new wt(t),i}}.call(this),t.exports}(),require["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,o;return t.prototype.add=function(t,n,i){var r,o,s,a;return null==i&&(i={}),s=n[0],o=n[1],a=(r=this.lines)[s]||(r[s]=new e(s)),a.add(o,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b;for(null==e&&(e={}),null==t&&(t=null),b=0,o=0,a=0,s=0,d=!1,n="",f=this.lines,h=i=0,c=f.length;c>i;h=++i)if(u=f[h])for(m=u.columns,r=0,l=m.length;l>r;r++)if(p=m[r]){for(;p.line>b;)o=0,d=!1,n+=";",b++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-o),o=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-s),s=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inlineMap&&(g.sourcesContent=[t]),g},r=5,i=1<
- The golden rule of CoffeeScript is: "It's just JavaScript". The code + The golden rule of CoffeeScript is: “It’s just JavaScript”. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is - readable and pretty-printed, will work in every JavaScript runtime, and tends - to run as fast or faster than the equivalent handwritten JavaScript. + readable, pretty-printed, and tends to run as fast or faster than the + equivalent handwritten JavaScript. +
+ +
+ The CoffeeScript compiler goes to great lengths to generate output JavaScript
+ that runs in every JavaScript runtime, but there are exceptions. Use
+ generator functions,
+ for…from
, or
+ tagged template literals only if you
+ know that your target
+ runtimes can support them. If you use modules,
+ you will need to use an additional tool to resolve
+ them.
Latest Version: - 1.11.1 + 1.12.0
npm install -g coffee-script@@ -197,7 +210,7 @@ cubes = (function(return results; })(); -
@@ -276,7 +289,7 @@ npm install -g coffee-script npm install --save coffee-script
- If you'd prefer to install the latest master version of CoffeeScript, you + If you’d prefer to install the latest master version of CoffeeScript, you can clone the CoffeeScript source repository from GitHub, or download @@ -288,7 +301,7 @@ npm install --save coffee-script npm install -g jashkenas/coffeescript
- Or, if you want to install to /usr/local
, and don't want to use
+ Or, if you want to install to /usr/local
, and don’t want to use
npm to manage it, open the coffee-script
directory and run:
--no-header
Besides being used as an ordinary programming language, CoffeeScript may
- also be written in "literate" mode. If you name your file with a
- .litcoffee
extension, you can write it as a Markdown document —
+ also be written in “literate” mode. If you name your file with a
+ .litcoffee
extension, you can write it as a Markdown document —
a document that also happens to be executable CoffeeScript code. The compiler
- will treat any indented blocks (Markdown's way of indicating source code)
+ will treat any indented blocks (Markdown’s way of indicating source code)
as code, and ignore the rest as comments.
- I'm fairly excited about this direction for the language, and am looking + I’m fairly excited about this direction for the language, and am looking forward to writing (and more importantly, reading) more programs in this style. More information about Literate CoffeeScript, including an example program, @@ -522,12 +535,12 @@ Block
Many of the examples can be run (where it makes sense) by pressing the run - button on the right, and can be loaded into the "Try CoffeeScript" + button on the right, and can be loaded into the “Try CoffeeScript” console by pressing the load button on the left.
First, the basics: CoffeeScript uses significant whitespace to delimit blocks of code.
- You don't need to use semicolons ;
to terminate expressions,
+ You don’t need to use semicolons ;
to terminate expressions,
ending the line will do just as well (although semicolons can still
be used to fit multiple expressions onto a single line).
Instead of using curly braces
@@ -538,7 +551,7 @@ Block
- You don't need to use parentheses to invoke a function if you're passing
+ You don’t need to use parentheses to invoke a function if you’re passing
arguments. The implicit call wraps forward to the end of the line or block expression.
console.log sys.inspect object
→ console.log(sys.inspect(object));
Functions may also have default values for arguments, which will be used
if the incoming argument is missing (
@@ -641,32 +654,32 @@ kids = {
age: 9
}
};
-
- In JavaScript, you can't use reserved words, like
+ CoffeeScript has a shortcut for creating objects when you want the key
+ to be set with a variable of the same name.
+
Lexical Scoping and Variable Safety
The CoffeeScript compiler takes care to make sure that all of your variables
- are properly declared within lexical scope — you never need to write
+ are properly declared within lexical scope — you never need to write
Notice how all of the variable declarations have been pushed up to
the top of the closest scope, the first time they appear.
- outer is not redeclared within the inner function, because it's
+ outer is not redeclared within the inner function, because it’s
already in scope; inner within the function, on the other hand,
should not be able to change the value of the external variable of the same name, and
therefore has a declaration of its own.
- This behavior is effectively identical to Ruby's scope for local variables.
- Because you don't have direct access to the
Although suppressed within this documentation for clarity, all
CoffeeScript output is wrapped in an anonymous function:
-
- If you'd like to create top-level variables for other scripts to use,
+ If you’d like to create top-level variables for other scripts to use,
attach them as properties on window; attach them as properties on the
exports object in CommonJS; or use an
CoffeeScript can compile if statements into JavaScript expressions,
using the ternary operator when possible, and closure wrapping otherwise. There
- is no explicit ternary statement in CoffeeScript — you simply use
+ is no explicit ternary statement in CoffeeScript — you simply use
a regular if statement on a single line.
- Splats...
+ Splats…
The JavaScript arguments object is a useful way to work with
functions that accept variable numbers of arguments. CoffeeScript provides
splats
Loops and Comprehensions
- Most of the loops you'll write in CoffeeScript will be comprehensions
+ Most of the loops you’ll write in CoffeeScript will be comprehensions
over arrays, objects, and ranges. Comprehensions replace (and compile into)
for loops, with optional guard clauses and the value of the current array index.
Unlike for loops, array comprehensions are expressions, and can be returned
@@ -905,7 +943,7 @@ foods = ['broccoli', 'spinach'<
eat(food);
}
}
-
Comprehensions should be able to handle most places where you otherwise
would use a loop, each/forEach, map, or select/filter, for example:
@@ -925,7 +963,7 @@ countdown = (function(return results;
})();
-
Note how because we are assigning the value of the comprehensions to a
variable in the example above, CoffeeScript is collecting the result of
each iteration into an array. Sometimes functions end with loops that are
- intended to run only for their side-effects. Be careful that you're not
+ intended to run only for their side-effects. Be careful that you’re not
accidentally returning the results of the comprehension in these cases,
- by adding a meaningful return value — like
@@ -951,7 +989,7 @@ countdown = (function() {
- If you don't need the current iteration value you may omit it:
@@ -980,7 +1018,7 @@ ages = (function(return results;
})();
-
If you would like to iterate over just the keys that are defined on the
object itself, by adding a
+ To iterate a generator function, use
The only low-level loop that CoffeeScript provides is the while loop. The
main difference from JavaScript is that the while loop can be used
@@ -1041,7 +1082,7 @@ lyrics = (function(return results;
})();
-
For readability, the until keyword is equivalent to
- When using a JavaScript loop to generate functions, it's common to insert
+ When using a JavaScript loop to generate functions, it’s common to insert
a closure wrapper in order to ensure that loop variables are closed over,
- and all the generated functions don't just share the final values. CoffeeScript
+ and all the generated functions don’t just share the final values. CoffeeScript
provides the
@@ -1120,7 +1161,7 @@ middle = numbers.slice(3, -2-2);
copy = numbers.slice(0);
-
The same syntax can be used with assignment to replace a segment of an array
with new values, splicing it.
@@ -1144,19 +1185,19 @@ numbers[3..6] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
[].splice.apply(numbers, [3, 4].concat(ref = [-3, -4, -5, -6])), ref;
-
- Note that JavaScript strings are immutable, and can't be spliced.
+ Note that JavaScript strings are immutable, and can’t be spliced.
Everything is an Expression (at least, as much as possible)
- You might have noticed how even though we don't add return statements
+ You might have noticed how even though we don’t add return statements
to CoffeeScript functions, they nonetheless return their final value.
The CoffeeScript compiler tries to make sure that all statements in the
language can be used as expressions. Watch how the
- Even though functions will always return their final value, it's both possible
+ Even though functions will always return their final value, it’s both possible
and encouraged to return early from a function body writing out the explicit
- return (
Because variable declarations occur at the top of scope, assignment can
- be used within expressions, even for variables that haven't been seen before:
+ be used within expressions, even for variables that haven’t been seen before:
Things that would otherwise be statements in JavaScript, when used
as part of an expression in CoffeeScript, are converted into expressions
@@ -1243,7 +1284,7 @@ globals = ((function(return results;
})()).slice(0, 10);
-
As well as silly things, like passing a try/catch statement directly
into a function call:
@@ -1274,22 +1315,22 @@ alert((function(return "And the error is ... " + error;
}
})());
-
- There are a handful of statements in JavaScript that can't be meaningfully
+ There are a handful of statements in JavaScript that can’t be meaningfully
converted into expressions, namely
@@ -1345,7 +1386,7 @@ tabs.selectTabAtIndex((tabs.currentIndex - count) %% tabs.length)
modulo(-7, 5) === 3;
tabs.selectTabAtIndex(modulo(tabs.currentIndex - count, tabs.length));
-
All together now:
The Existential Operator
- It's a little difficult to check for the existence of a variable in
- JavaScript.
It can also be used for safer conditional assignment than
The accessor variant of the existential operator
- Soaking up nulls is similar to Ruby's
+ Soaking up nulls is similar to Ruby’s
andand gem, and to the
safe navigation operator
in Groovy.
@@ -1472,16 +1513,16 @@ zip = typeof lottery.drawWinner ===
Classes, Inheritance, and Super
- JavaScript's prototypal inheritance has always been a bit of a
+ JavaScript’s prototypal inheritance has always been a bit of a
brain-bender, with a whole family tree of libraries that provide a cleaner
- syntax for classical inheritance on top of JavaScript's prototypes:
+ syntax for classical inheritance on top of JavaScript’s prototypes:
Base2,
Prototype.js,
JS.Class, etc.
The libraries provide syntactic sugar, but the built-in inheritance would
- be completely usable if it weren't for a couple of small exceptions:
- it's awkward to call super (the prototype object's
- implementation of the current function), and it's awkward to correctly
+ be completely usable if it weren’t for a couple of small exceptions:
+ it’s awkward to call super (the prototype object’s
+ implementation of the current function), and it’s awkward to correctly
set the prototype chain.
@@ -1571,7 +1612,7 @@ tom = new Horse("Tommy the Pal
sam.move();
tom.move();
-
- If structuring your prototypes classically isn't your cup of tea, CoffeeScript
+ If structuring your prototypes classically isn’t your cup of tea, CoffeeScript
provides a couple of lower-level conveniences. The
Finally, class definitions are blocks of executable code, which make for interesting
metaprogramming possibilities. Because in the context of a class definition,
@@ -1673,16 +1714,16 @@ theBait = 1000;
theSwitch = 0;
ref = [theSwitch, theBait], theBait = ref[0], theSwitch = ref[1];
-
- But it's also helpful for dealing with functions that return multiple
+ But it’s also helpful for dealing with functions that return multiple
values.
Destructuring assignment can be used with any depth of array and object nesting,
to help pull out deeply nested properties.
@@ -1732,19 +1773,19 @@ futurists = {
};
ref = futurists.poet, name = ref.name, (ref1 = ref.address, street = ref1[0], city = ref1[1]);
-
Destructuring assignment can even be combined with splats.
Expansion can be used to retrieve elements from the end of an array without having to assign the rest of its values. It works in function parameter lists as well.
Destructuring assignment is also useful when combined with class constructors
to assign properties to your instance from an options object passed to the constructor.
@@ -1807,7 +1848,7 @@ tim = new Person({
name: 'Tim',
age: 4
});
-
The above example also demonstrates that if properties are missing in the
destructured object or array, you can, just like in JavaScript, provide
@@ -1837,7 +1878,7 @@ tim = new Person({
In JavaScript, the
If we had used
@@ -1878,10 +1919,11 @@ Account = function(
+
CoffeeScript functions also support
- ES6 generator functions
- through the
+
+ You can iterate over a generator function using
Embedded JavaScript
- Hopefully, you'll never need to use it, but if you ever need to intersperse
+ Hopefully, you’ll never need to use it, but if you ever need to intersperse
snippets of JavaScript within your CoffeeScript, you can
use backticks to pass it straight through.
+ Escape backticks with backslashes:
+ Escape backslashes before backticks with more backslashes:
+ You can also embed blocks of JavaScript using triple backticks. That’s easier
+ than escaping backticks, if you need them inside your JavaScript block.
+
@@ -1991,7 +2140,7 @@ hi = function() {
default:
go(work);
}
-
Switch statements can also be used without a control expression, turning them in to a cleaner alternative to if/else chains.
@@ -2022,7 +2171,7 @@ grade = (function(return 'A';
}
})();
-
@@ -2049,14 +2198,14 @@ grade = (function(finally {
cleanUp();
}
-
Chained Comparisons
CoffeeScript borrows
chained comparisons
- from Python — making it easy to test if a value falls within a
+ from Python — making it easy to test if a value falls within a
certain range.
String Interpolation, Block Strings, and Block Comments
Ruby-style string interpolation is included in CoffeeScript. Double-quoted
- strings allow for interpolated values, using
Multiline strings are allowed in CoffeeScript. Lines are joined by a single space unless they end with a backslash. Indentation is ignored.
Block strings can be used to hold formatted or indentation-sensitive text
- (or, if you just don't feel like escaping quotes and apostrophes). The
+ (or, if you just don’t feel like escaping quotes and apostrophes). The
indentation level that begins the block is maintained throughout, so
you can keep it all aligned with the body of your code.
Double-quoted block strings, like other double-quoted strings, allow interpolation.
- Sometimes you'd like to pass a block comment through to the generated
+ Sometimes you’d like to pass a block comment through to the generated
JavaScript. For example, when you need to embed a licensing header at
the top of a file. Block comments, which mirror the syntax for block strings,
are preserved in the generated code.
@@ -2154,14 +2303,72 @@ SkinnyMochaHalfCaffScript Compiler v1.0
Released under the MIT License
*/
+
+ Tagged Template Literals
+ CoffeeScript supports
+ ES2015 tagged template literals,
+ which enable customized string interpolation. If you immediately prefix a string
+ with a function name (no space between the two), CoffeeScript will output this
+ “function plus string” combination as an ES2015 tagged template literal, which will
+ behave accordingly:
+ the function is called, with the parameters being the input text and expression parts
+ that make up the interpolated string. The function can then assemble these parts
+ into an output string, providing custom string interpolation.
+
+ Be aware that the CoffeeScript compiler is outputting ES2015 syntax for this feature,
+ so your target JavaScript runtime(s) must support this syntax for your code to work;
+ or you could use tools like Babel or
+ Traceur Compiler to convert
+ this ES2015 syntax into compatible JavaScript.
+
Block Regular Expressions
- Similar to block strings and comments, CoffeeScript supports block regexes —
+ Similar to block strings and comments, CoffeeScript supports block regexes —
extended regular expressions that ignore internal whitespace and can contain
- comments and interpolation. Modeled after Perl's
@@ -2203,7 +2410,7 @@ OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>&g
export { sqrt }
export { sqrt as squareRoot }
-export { Mathematics as default, sqrt as squareRoot }
+export { Mathematics as default, sqrt as squareRoot }
export * from 'underscore'
export { max, min } from 'underscore'
@@ -2272,8 +2479,9 @@ OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>&g
max,
min
} from 'underscore';
-
+
Note that the CoffeeScript compiler does not resolve modules; writing an
- If you need to invoke one task before another — for example, running
+ If you need to invoke one task before another — for example, running
- While it's not recommended for serious use, CoffeeScripts may be included
+ While it’s not recommended for serious use, CoffeeScripts may be included
directly within the browser using
- In fact, the little bit of glue script that runs "Try CoffeeScript" above,
+ In fact, the little bit of glue script that runs “Try CoffeeScript” above,
as well as the jQuery for the menu, is implemented in just this way.
View source and look at the bottom of the page to see the example.
Including the script also gives you access to
- The usual caveats about CoffeeScript apply — your inline scripts will
+ The usual caveats about CoffeeScript apply — your inline scripts will
run within a closure wrapper, so if you want to expose global variables or
functions, attach them to the
+
@@ -3402,7 +3692,7 @@ six = ->
@@ -3610,7 +3900,7 @@ six = ->
@@ -3688,7 +3978,7 @@ six = ->
0.2.5
- The conditions in switch statements can now take multiple values at once —
+ The conditions in switch statements can now take multiple values at once —
If any of them are true, the case will run. Added the long arrow
@@ -3760,7 +4050,7 @@ six = ->
conversion. Splats. Splice literals. Object comprehensions. Blocks.
The existential operator. Many thanks to all the folks who posted issues,
with special thanks to
- Liam O'Connor-Davis for whitespace
+ Liam O’Connor-Davis for whitespace
and expression help.
null
or undefined
).
@@ -585,15 +598,15 @@ fill = function(return "Filling the " + container + " with " + liquid + "...";
};
-
+;alert(fill("cup"));">run: fill("cup")
+;alert(song.join(" … "));">run: song.join(" … ")
class
, as properties
+ In JavaScript, you can’t use reserved words, like class
, as properties
of an object, without quoting them as strings. CoffeeScript notices reserved words
- used as keys in objects and quotes them for you, so you don't have to worry
+ used as keys in objects and quotes them for you, so you don’t have to worry
about it (say, when using jQuery).
$('.account').attr class: 'active'
@@ -678,12 +691,37 @@ log object.class
log(object["class"]);
name = "Michelangelo"
+mask = "orange"
+weapon = "nunchuks"
+turtle = {name, mask, weapon}
+output = "#{turtle.name} wears an #{turtle.mask} mask. Watch out for his #{turtle.weapon}!"
+
var mask, name, output, turtle, weapon;
+
+name = "Michelangelo";
+
+mask = "orange";
+
+weapon = "nunchuks";
+
+turtle = {
+ name: name,
+ mask: mask,
+ weapon: weapon
+};
+
+output = turtle.name + " wears an " + turtle.mask + " mask. Watch out for his " + turtle.weapon + "!";
+
var
yourself.
outer = 1
@@ -702,7 +740,7 @@ changeNumbers = function(
var
keyword,
- it's impossible to shadow an outer variable on purpose, you may only refer
- to it. So be careful that you're not reusing the name of an external
- variable accidentally, if you're writing a deeply nested function.
+ This behavior is effectively identical to Ruby’s scope for local variables.
+ Because you don’t have direct access to the var
keyword,
+ it’s impossible to shadow an outer variable on purpose, you may only refer
+ to it. So be careful that you’re not reusing the name of an external
+ variable accidentally, if you’re writing a deeply nested function.
(function(){ ... })();
This safety wrapper, combined with the
+ (function(){ … })();
This safety wrapper, combined with the
automatic generation of the var
keyword, make it exceedingly difficult
to pollute the global namespace by accident.
export
statement. If you’re targeting both CommonJS and the browser, the
@@ -750,13 +788,13 @@ inner = changeNumbers();
If, Else, Unless, and Conditional Assignment
If/else statements can be written without the use of parentheses and
curly brackets. As with functions and other block expressions,
- multi-line conditionals are delimited by indentation. There's also a handy
+ multi-line conditionals are delimited by indentation. There’s also a handy
postfix form, with the if
or unless
at the end.
mood = greatlyImproved if singing
@@ -782,11 +820,11 @@ date = if friday then
}
date = friday ? sue : jill;
-
...
, both for function definition as well as invocation,
@@ -839,10 +877,10 @@ alert("Gold: " + gold);
alert("Silver: " + silver);
alert("The Field: " + rest);
-
+alert("The Field: " + rest);
+;">run
+
true
— or null
,
+ by adding a meaningful return value — like true
— or null
,
to the bottom of your function.
evens = (x for x in [0..10] by 2)
+ If you don’t need the current iteration value you may omit it:
browser.closeCurrentTab() for [0...count]
+;alert(ages.join(", "));">run: ages.join(", ")
hasOwnProperty
check to avoid properties that may be inherited from the prototype, use
for own key, value of object
from
.
+ See Generator Functions.
+;alert(lyrics.join("\n"));">run: lyrics.join("\n")
while not
,
and the loop keyword is equivalent to while true
.
do
keyword, which immediately invokes a passed function,
forwarding any arguments.
+
return
gets
@@ -1189,41 +1230,41 @@ grade = function(24 > 21 ? "Liz" : "Ike";
-
+eldest = 24 > 21 ? "Liz" : "Ike";
+;alert(eldest);">run: eldest
return value
), when you know that you're done.
+ return (return value
), when you know that you’re done.
six = (one = 1) + (two = 2) + (three = 3)
var one, six, three, two;
six = (one = 1) + (two = 2) + (three = 3);
-
+;">run
break
, continue
,
and return
. If you make use of them within a block of code,
- CoffeeScript won't try to perform the conversion.
+ CoffeeScript won’t try to perform the conversion.
+
+
if (variable) ...
comes close, but fails for zero,
- the empty string, and false. CoffeeScript's existential operator ?
returns true unless
+ It’s a little difficult to check for the existence of a variable in
+ JavaScript. if (variable) …
comes close, but fails for zero,
+ the empty string, and false. CoffeeScript’s existential operator ?
returns true unless
a variable is null or undefined, which makes it analogous
- to Ruby's nil?
+ to Ruby’s nil?
||=
@@ -1435,9 +1476,9 @@ speed = 0;
}
footprints = typeof yeti !== "undefined" && yeti !== null ? yeti : "bear";
-
+footprints = typeof yeti !== "undefined" && yeti !== null ? yeti : "bear";
+;alert(footprints);">run: footprints
?.
can be used to soak
up null references in a chain of properties. Use it instead
of the dot accessor .
in cases where the base value may be null
- or undefined. If all of the properties exist then you'll get the expected
+ or undefined. If all of the properties exist then you’ll get the expected
result, if the chain is broken, undefined is returned instead of
the TypeError that would be raised otherwise.
var ref, zip;
zip = typeof lottery.drawWinner === "function" ? (ref = lottery.drawWinner().address) != null ? ref.zipcode : void 0 : void 0;
-
+
+;">run
extends
operator
helps with proper prototype setup, and can be used to create an inheritance
chain between any pair of constructor functions; ::
gives you
- quick access to an object's prototype; and super()
- is converted into a call against the immediate ancestor's method of the same name.
+ quick access to an object’s prototype; and super()
+ is converted into a call against the immediate ancestor’s method of the same name.
String::dasherize = ->
this.replace /_/g, "-"
String.prototype.dasherize = function() {
return this.replace(/_/g, "-");
};
-
weatherReport = (location) ->
@@ -1697,14 +1738,14 @@ weatherReport = function(
+;alert(name + "-" + street);">run: name + "-" + street
+ref = tag.split(""), open = ref[0], contents = 3 <= ref.length ? slice.call(ref, 1, i = ref.length - 1) : (i = 1, []), close = ref[i++];
+;alert(contents.join(""));">run: contents.join("")
+ref = text.split(" "), first = ref[0], last = ref[ref.length - 1];
+;alert(first + " " + last);">run: first + " " + last
this
keyword is dynamically scoped to mean the
object that the current function is attached to. If you pass a function as
a callback or attach it to a different object, the original value of this
- will be lost. If you're not familiar with this behavior,
+ will be lost. If you’re not familiar with this behavior,
this Digital Web article
gives a good overview of the quirks.
each
, or event-handler functions
to use with on
. Functions created with the fat arrow are able to access
- properties of the this
where they're defined.
+ properties of the this
where they’re defined.
Account = (customer, cart) ->
@customer = customer
@@ -1866,10 +1907,10 @@ Account = function(this));
};
-
->
in the callback above, @customer
would
- have referred to the undefined "customer" property of the DOM element,
+ have referred to the undefined “customer” property of the DOM element,
and trying to call purchase()
on it would have raised an exception.
yield
keyword. There's no function*(){}
- nonsense — a generator in CoffeeScript is simply a function that yields.
+ ES2015 generator functions
+ through the yield
keyword. There’s no function*(){}
+ nonsense — a generator in CoffeeScript is simply a function that yields.
perfectSquares = ->
num = 0
@@ -1903,7 +1945,7 @@ perfectSquares = function*(<
};
window.ps || (window.ps = perfectSquares());
-
yield*
is called yield from
, and yield return
- may be used if you need to force a generator that doesn't yield.
+ may be used if you need to force a generator that doesn’t yield.
for…from
.
+ fibonacci = ->
+ [previous, current] = [1, 1]
+ loop
+ [previous, current] = [current, previous + current]
+ yield current
+ return
+
+getFibonacciNumbers = (length) ->
+ results = [1]
+ for n from fibonacci()
+ results.push n
+ break if results.length is length
+ results
+
var fibonacci, getFibonacciNumbers;
+
+fibonacci = function*() {
+ var current, previous, ref, ref1;
+ ref = [1, 1], previous = ref[0], current = ref[1];
+ while (true) {
+ ref1 = [current, previous + current], previous = ref1[0], current = ref1[1];
+ yield current;
+ }
+};
+
+getFibonacciNumbers = function(length) {
+ var n, ref, results;
+ results = [1];
+ ref = fibonacci();
+ for (n of ref) {
+ results.push(n);
+ if (results.length === length) {
+ break;
+ }
+ }
+ return results;
+};
+
+;alert(hi());">run: hi()
+ \`
becomes `
.
+ \\\`
+ becomes \`
.
+ markdown = `function () {
+ return \`In Markdown, write code like \\\`this\\\`\`;
+}`
+
var markdown;
+
+markdown = function () {
+ return `In Markdown, write code like \`this\``;
+};
+
```
+function time() {
+ return `The time is ${new Date().toLocaleTimeString()}`;
+}
+```
+
+function time() {
+ return `The time is ${new Date().toLocaleTimeString()}`;
+}
+;
+
+
+
+
+
cholesterol = 127
@@ -2067,18 +2216,18 @@ healthy = 200 > cholesterol > 127;
healthy = (200 > cholesterol && cholesterol > 60);
-
#{ ... }
,
+ strings allow for interpolated values, using #{ … }
,
and single-quoted strings are literal. You may even use interpolation in
object keys.
+sentence = (22 / 7) + " is a decent approximation of π";
+;alert(sentence);">run: sentence
var mobyDick;
mobyDick = "Call me Ishmael. Some years ago -- never mind how long precisely -- having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world...";
-
+mobyDick = "Call me Ishmael. Some years ago -- never mind how long precisely -- having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world...";
+;alert(mobyDick);">run: mobyDick
var html;
html = "<strong>\n cup of coffeescript\n</strong>";
-
+html = "\n cup of coffeescript\n";
+;alert(html);">run: html
+
+
+ upperCaseExpr = (textParts, expressions...) ->
+ textParts.reduce (text, textPart, i) ->
+ text + expressions[i - 1].toUpperCase() + textPart
+
+greet = (name, adjective) ->
+ upperCaseExpr"""
+ Hi #{name}. You look #{adjective}!
+ """
+
var greet, upperCaseExpr,
+ slice = [].slice;
+
+upperCaseExpr = function() {
+ var expressions, textParts;
+ textParts = arguments[0], expressions = 2 <= arguments.length ? slice.call(arguments, 1) : [];
+ return textParts.reduce(function(text, textPart, i) {
+ return text + expressions[i - 1].toUpperCase() + textPart;
+ });
+};
+
+greet = function(name, adjective) {
+ return upperCaseExpr`Hi ${name}. You look ${adjective}!`;
+};
+
/x
modifier, CoffeeScript's
+ comments and interpolation. Modeled after Perl’s /x
modifier, CoffeeScript’s
block regexes are delimited by ///
and go a long way towards making complex
regular expressions readable. To quote from the CoffeeScript source:
var OPERATOR;
OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/;
-
+
+
import
or export
statement in CoffeeScript will produce an
import
or export
statement in the resulting output.
@@ -2299,7 +2507,7 @@ OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>&g
CoffeeScript includes a (very) simple build system similar to
Make and
Rake. Naturally,
- it's called Cake, and is used for the tasks that build and test the CoffeeScript
+ it’s called Cake, and is used for the tasks that build and test the CoffeeScript
language itself. Tasks are defined in a file named Cakefile
, and
can be invoked by running cake [task]
from within the directory.
To print a list of all the tasks and options, just type cake
.
@@ -2310,8 +2518,8 @@ OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>&g
in your Cakefile. Define a task with a name, a long description, and the
function to invoke when the task is run. If your task takes a command-line
option, you can define the option with short and long flags, and it will
- be made available in the options
object. Here's a task that uses
- the Node.js API to rebuild CoffeeScript's parser:
+ be made available in the options
object. Here’s a task that uses
+ the Node.js API to rebuild CoffeeScript’s parser:
fs = require 'fs'
@@ -2335,15 +2543,15 @@ task('build:parser', 'rebuild t
dir = options.output || 'lib';
return fs.writeFile(dir + "/parser.js", code);
});
-
build
before test
, you can use the invoke
function:
invoke 'build'
. Cake tasks are a minimal way to expose your
CoffeeScript functions to the command line, so
- don't expect any fanciness built-in.
- If you need dependencies, or async callbacks, it's best to put them in your
- code itself — not the cake task.
+ don’t expect any fanciness built-in.
+ If you need dependencies, or async callbacks, it’s best to put them in your
+ code itself — not the cake task.
@@ -2372,16 +2580,16 @@ task('build:parser', 'rebuild t
<script type="text/coffeescript">
tags. The source includes a compressed and minified version of the compiler
- (Download current version here, 39k when gzipped)
+ (Download current version here, 51k when gzipped)
as v1/browser-compiler/coffee-script.js
. Include this file on a page with
inline CoffeeScript tags, and it will compile and evaluate them in order.
CoffeeScript.compile()
@@ -2389,7 +2597,7 @@ task('build:parser', 'rebuild t
window
object.
@@ -2531,13 +2739,13 @@ task('build:parser', 'rebuild t
Use bin/coffee
to test your changes,
bin/cake test
to run the test suite,
bin/cake build
to rebuild the CoffeeScript compiler, and
- bin/cake build:parser
to regenerate the Jison parser if you're
+ bin/cake build:parser
to regenerate the Jison parser if you’re
working on the grammar.
- git checkout lib && bin/cake build:full
is a good command to run when you're working
- on the core language. It'll refresh the lib directory
+ git checkout lib && bin/cake build:full
is a good command to run when you’re working
+ on the core language. It’ll refresh the lib directory
(in case you broke something), build your altered compiler, use that to
rebuild itself (a good sanity test) and then run all of the tests. If
- they pass, there's a good chance you've made a successful change.
+ they pass, there’s a good chance you’ve made a successful change.
@@ -2545,11 +2753,11 @@ task('build:parser', 'rebuild t
- If you'd like to ask a question, the mailing list is a good place to get help.
+ If you’d like to ask a question, the mailing list is a good place to get help.
- If you've ever learned a neat CoffeeScript tip or trick, or ran into a gotcha — share it on the wiki.
+ If you’ve ever learned a neat CoffeeScript tip or trick, or ran into a gotcha — share it on the wiki.
The wiki also serves as a directory of handy
text editor extensions,
web framework plugins,
@@ -2561,9 +2769,9 @@ task('build:parser', 'rebuild t
- Is a very well done reverse JavaScript-to-CoffeeScript compiler. It's
+ Is a very well done reverse JavaScript-to-CoffeeScript compiler. It’s
not going to be perfect (infer what your JavaScript classes are, when
- you need bound functions, and so on...) — but it's a great starting
+ you need bound functions, and so on…) — but it’s a great starting
point for converting simple scripts.
+
+ for…from
+ syntax for outputting ES2015
+
+ for…of
. (Sorry they couldn’t match,
+ but we came up with for…of
first for something
+ else.) This allows iterating over generators or any other iterable
+ object. Note that using for…from
in your code
+ makes you responsible for ensuring that either your runtime supports
+ for…from
or that you transpile the output
+ JavaScript further to a version your target runtime(s) support.
+ ```
) allow the creation of embedded
+ JavaScript blocks where escaping single backticks is not required,
+ which should improve interoperability with ES2015 template literals
+ and with Markdown.
+ \`
.
+ import
s and
+ export
s are now ignored.
+ """
strings.
(offsetHeight: height) ->
no longer compiles. That
@@ -2830,7 +3120,7 @@ six = ->
yield
s.
require 'coffee-script/register'
or CoffeeScript.register()
. Also for configuration such as Mocha's, use coffee-script/register.
+ When requiring CoffeeScript files in Node you must now explicitly register the compiler. This can be done with require 'coffee-script/register'
or CoffeeScript.register()
. Also for configuration such as Mocha’s, use coffee-script/register.
//#
syntax.
@@ -2953,7 +3243,7 @@ six = ->
$('body').click(function(e) {
return $('.box').fadeIn('fast').addClass('.active');
}).css('background', 'white');
-
+
**
, //
and %%
operators and ...
expansion in parameter lists and destructuring expressions.
@@ -2965,7 +3255,7 @@ six = ->
Closing brackets can now be indented and therefore no longer cause unexpected error.
super
is disallowed outside of methods and works correctly inside for
loops.
+ Several breaking compilation fixes. Non-callable literals (strings, numbers etc.) don’t compile in a call now and multiple postfix conditionals compile properly. Postfix conditionals and loops always bind object literals. Conditional assignment compiles properly in subexpressions. super
is disallowed outside of methods and works correctly inside for
loops.
coffee
command, and
for automatic line-mapping when running CoffeeScript directly in the
browser. Also, to provide better error messages for semantic errors
- thrown by the compiler —
+ thrown by the compiler —
with colors, even.
.coffee.md
is now also supported as a Literate CoffeeScript
@@ -3105,7 +3395,7 @@ six = ->
super
more reliably (walks recursively up).
Ctrl-V
. You may also now
pipe input directly into the REPL.
do
, which can now be used to
- more easily simulate a namespace: do (x = 1, y = 2) -> ...
+ more easily simulate a namespace: do (x = 1, y = 2) -> …
coffee --watch
under
- Node's "new" file watching API. Watch will now beep by default
+ Node’s “new” file watching API. Watch will now beep by default
if you introduce a syntax error into a watched script. We also now
ignore hidden directories by default when watching recursively.
coffee --watch
and --join
.
You may now use both together, as well as add and remove
- files and directories within a --watch
'd folder.
+ files and directories within a --watch
’d folder.
throw
statement can now be used as part of an expression.
@@ -3236,7 +3526,7 @@ six = ->
require('coffee-script/lexer')
coffee
executable, process.argv
and
friends now report coffee
instead of node
.
Better compatibility with Node.js 0.4.x module lookup changes.
- The output in the REPL is now colorized, like Node's is.
+ The output in the REPL is now colorized, like Node’s is.
Giving your concatenated CoffeeScripts a name when using --join
is now mandatory.
Fix for lexing compound division /=
as a regex accidentally.
- All text/coffeescript
tags should now execute in the order they're included.
+ All text/coffeescript
tags should now execute in the order they’re included.
Fixed an issue with extended subclasses using external constructor functions.
Fixed an edge-case infinite loop in addImplicitParentheses
.
Fixed exponential slowdown with long chains of function calls.
@@ -3326,7 +3616,7 @@ six = ->
Fixed a lexer bug with Unicode identifiers. Updated REPL for compatibility
with Node.js 0.3.7. Fixed requiring relative paths in the REPL. Trailing
return
and return undefined
are now optimized away.
- Stopped requiring the core Node.js "util"
module for
+ Stopped requiring the core Node.js util
module for
back-compatibility with Node.js 0.2.5. Fixed a case where a
conditional return
would cause fallthrough in a switch
statement. Optimized empty objects in destructuring assignment.
@@ -3372,14 +3662,14 @@ six = ->
0.9.5 should be considered the first release candidate for CoffeeScript 1.0.
There have been a large number of internal changes since the previous release,
- many contributed from satyr's Coco
+ many contributed from satyr’s Coco
dialect of CoffeeScript. Heregexes (extended regexes) were added. Functions
can now have default arguments. Class bodies are now executable code.
Improved syntax errors for invalid CoffeeScript. undefined
now
works like null
, and cannot be assigned a new value.
There was a precedence change with respect to single-line comprehensions:
result = i for i in list
used to parse as result = (i for i in list)
- by default ... it now parses as (result = i) for i in list
.
+ by default … it now parses as (result = i) for i in list
.
switch
statements now compile into JS switch
- statements — they previously compiled into if/else
chains
+ statements — they previously compiled into if/else
chains
for JavaScript 1.3 compatibility.
Soaking a function invocation is now supported. Users of the RubyMine
editor should now be able to use --watch
mode.
@@ -3421,7 +3711,7 @@ six = ->
Added a custom jsl.conf
file for our preferred JavaScriptLint setup.
Sped up Jison grammar compilation time by flattening rules for operations.
Block comments can now be used with JavaScript-minifier-friendly syntax.
- Added JavaScript's compound assignment bitwise operators. Bugfixes to
+ Added JavaScript’s compound assignment bitwise operators. Bugfixes to
implicit object literals with leading number and string keys, as the subject
of implicit calls, and as part of compound assignment.
#{ ... }
(Ruby style).
+ String and regex interpolation is now strictly #{ … }
(Ruby style).
The compiler now takes a --require
flag, which specifies scripts
to run before compilation.
=
, and object
literals use :
, as in JavaScript. This allows us to have implicit
object literals, and YAML-style object definitions. Half assignments are
removed, in favor of +=
, or=
, and friends.
Interpolation now uses a hash mark #
instead of the dollar sign
- $
— because dollar signs may be part of a valid JS identifier.
+ $
— because dollar signs may be part of a valid JS identifier.
Downwards range comprehensions are now safe again, and are optimized to
straight for loops when created with integer endpoints.
A fast, unguarded form of object comprehension was added:
for all key, value of object
. Mentioning the super
keyword
with no arguments now forwards all arguments passed to the function,
as in Ruby. If you extend class B
from parent class A
, if
- A
has an extended
method defined, it will be called, passing in B
—
+ A
has an extended
method defined, it will be called, passing in B
—
this enables static inheritance, among other things. Cleaner output for
functions bound with the fat arrow. @variables
can now be used
in parameter lists, with the parameter being automatically set as a property
- on the object — useful in constructors and setter functions.
+ on the object — useful in constructors and setter functions.
Constructor functions can now take splats.
by -1
- if you'd like to iterate downward. Reporting of syntax errors is greatly
+ if you’d like to iterate downward. Reporting of syntax errors is greatly
improved from the previous release. Running coffee
with no arguments
now launches the REPL, with Readline support. The <-
bind operator
has been removed from CoffeeScript. The loop
keyword was added,
@@ -3519,7 +3809,7 @@ six = ->
The coffee
command will now preserve directory structure when
compiling a directory full of scripts. Fixed two omissions that were preventing
the CoffeeScript compiler from running live within Internet Explorer.
- There's now a syntax for block comments, similar in spirit to CoffeeScript's heredocs.
+ There’s now a syntax for block comments, similar in spirit to CoffeeScript’s heredocs.
ECMA Harmony DRY-style pattern matching is now supported, where the name
of the property is the same as the name of the value: {name, length}: func
.
Pattern matching is now allowed within comprehension variables. unless
@@ -3575,7 +3865,7 @@ six = ->
Stan Angeloff.
Since --run
has been the default since 0.5.3, updating
--stdio
and --eval
to run by default, pass --compile
- as well if you'd like to print the result.
+ as well if you’d like to print the result.
v1/browser-compiler/coffee-script.js
. It'll automatically run any script tags
+ v1/browser-compiler/coffee-script.js
. It’ll automatically run any script tags
with type text/coffeescript
for you. Added a --stdio
option
to the coffee
command, for piped-in compiles.
@property
is now a shorthand for this.property
.
Switched the default JavaScript engine from Narwhal to Node.js. Pass
- the --narwhal
flag if you'd like to continue using it.
+ the --narwhal
flag if you’d like to continue using it.
==>
,
which defines and immediately binds a function to this
. While loops can
now be used as expressions, in the same way that comprehensions can. Splats
@@ -3728,17 +4018,17 @@ six = ->
Added ::
as a shorthand for saying .prototype.
- The "splat" symbol has been changed from a prefix asterisk *
, to
+ The “splat” symbol has been changed from a prefix asterisk *
, to
a postfix ellipsis ...
- Added JavaScript's in
operator,
+ Added JavaScript’s in
operator,
empty return
statements, and empty while
loops.
Constructor functions that start with capital letters now include a
safety check to make sure that the new instance of the object is returned.
The extends
keyword now functions identically to goog.inherits
- in Google's Closure Library.
+ in Google’s Closure Library.
CoffeeScript Test Suite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+