this.trace(e)},parse:function(e){functiont(){vare;returne=f.lex()||p,"number"!=typeofe&&(e=n.symbols_[e]||e),e}varn=this,i=[0],r=[null],s=[],o=this.table,a="",c=0,l=0,h=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(varginthis.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void0&&(f.yylloc={});varv=f.yylloc;s.push(v);vary=f.options&&f.options.ranges;this.parseError="function"==typeofm.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(varb,k,w,T,C,E,F,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===b||b===void0)&&(b=t()),T=o[w]&&o[w][b]),T===void0||!T.length||!T[0]){varS="";L=[];for(Eino[w])this.terminals_[E]&&E>u&&L.push("'"+this.terminals_[E]+"'");S=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==p?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(S,{text:f.match,token:this.terminals_[b]||b,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceofArray&&T.length>1)throwError("Parse Error: multiple actions possible at state: "+w+", token: "+b);switch(T[0]){case1:i.push(b),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),b=null,k?(b=k,k=null):(l=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,h>0&&h--);break;case2:if(F=this.productions_[T[1]][1],x.$=r[r.length-F],x._$={first_line:s[s.length-(F||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(F||1)].first_column,last_column:s[s.length-1].last_column},y&&(x._$.range=[s[s.length-(F||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,l,c,m.yy,T[1],r,s].concat(d)),C!==void0)returnC;F&&(i=i.slice(0,2*-1*F),r=r.slice(0,-1*F),s=s.slice(0,-1*F)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case3:return!0}}return!0}};returne.prototype=gn,gn.Parser=e,newe}();returnrequire!==void0&&e!==void0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){returnn.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));varn=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");returne.parser.parse(n)},t!==void0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){vare={},t={exports:e};returnfunction(){vart,n=[].indexOf||function(e){for(vart=0,n=this.length;n>t;t++)if(tinthis&&this[t]===e)returnt;return-1};e.Scope=t=function(){functione(e,t,n,i){varr,s;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!=(s=this.parent)?s.root:void0)?r:this}returne.prototype.add=function(e,t,n){returnthis.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(){vare;return(null!=(e=this.method)?e.name:void0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){returnthis.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){returnthis.shared&&this.parent.check(e,!0)?void0:this.add(e,"param")},e.prototype.check=function(e){vart;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void0))},e.prototype.temporary=function(e,t,n){returnnull==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\d/g,"a"):e+(t||"")},e.prototype.type=function(e){vart,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)returnr.type;returnnull},e.prototype.freeVariable=function(e,t){vari,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=f
},n.prototype.assigns=function(e){returnthis["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){returnyt(e,this,"variable")},n.prototype.compileNode=function(e){vart,n,i,r,s,o,a,l,h,u,p,d,f,m;if(i=this.variableinstanceofz){if(this.variable.isArray()||this.variable.isObject())returnthis.compilePatternMatch(e);if(this.variable.isSplice())returnthis.compileSplice(e);if("||="===(l=this.context)||"&&="===l||"?="===l)returnthis.compileConditional(e);if("**="===(h=this.context)||"//="===h||"%%="===h)returnthis.compileSpecialMath(e)}returnthis.valueinstanceofc&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void0)&&(this.value.klass=newz(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeofm.hasProperties?m.hasProperties():void0)||(this.param?e.scope.add(m.value,"var"):e.scope.find(m.value))),f=this.value.compileToFragments(e,E),n=this.variable.compileToFragments(e,E),"object"===this.context?n.concat(this.makeCode(": "),f):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),f),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){vari,r,s,o,a,c,l,h,u,d,f,m,v,y,b,k,T,C,N,S,D,R,A,I,_,j,M,B;if(I=e.level===L,j=this.value,y=this.variable.base.objects,!(b=y.length))returns=j.compileToFragments(e),e.level>=F?this.wrapInBraces(s):s;if(h=this.variable.isObject(),I&&1===b&&!((v=y[0])instanceofG))returnvinstanceofn?(T=v,C=T.variable,l=C.base,v=T.value):l=h?v["this"]?v.properties[0].name:v:newx(0),i=g.test(l.unwrap().value||0),j=newz(j),j.properties.push(new(i?t:w)(l)),N=v.unwrap().value,Tt.call($,N)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),newn(v,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,E),B=st(M),r=[],o=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((k=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(M))),M=[this.makeCode(k)],B=k),c=d=0,f=y.length;f>d;c=++d){if(v=y[c],l=c,h&&(vinstanceofn?(S=v,D=S.variable,l=D.base,v=S.value):v.baseinstanceofO?(R=newz(v.unwrapAll()).cacheReference(e),v=R[0],l=R[1]):l=v["this"]?v.properties[0].name:v),!o&&vinstanceofG)m=v.name.unwrap().value,v=v.unwrap(),_=b+" <= "+B+".length ? "+bt("slice",e)+".call("+B+", "+c,(A=b-c-1)?(u=e.scope.freeVariable("i",{single:!0}),_+=", "+u+" = "+B+".length - "+A+") : ("+u+" = "+c+", [])"):_+=") : []",_=newx(_),o=u+"++";else{if(!o&&vinstanceofp){(A=b-c-1)&&(1===A?o=B+".length - 1":(u=e.scope.freeVariable("i",{single:!0}),_=newx(u+" = "+B+".length - "+A),o=u+"++",r.push(_.compileToFragments(e,E))));continue}m=v.unwrap().value,(vinstanceofG||vinstanceofp)&&v.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeofl?(l=newx(o||l),i=!1):i=h&&g.test(l.unwrap().value||0),_=newz(newx(B),[new(i?t:w)(l)])}null!=m&&Tt.call($,m)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),r.push(newn(v,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,E))}returnI||this.subpattern||r.push(M),a=this.joinFragmentArrays(r,", "),E>e.level?a:this.wrapInBraces(a)},n.prototype.compileConditional=function(e){vart,i,r,s;returnr=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.baseinstanceofx&&"this"!==i.base.value&&!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"),Tt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,newb(newu(i),s,{type:"if"}).addElse(newn(s,this.value,"=")).compileToFragments(e)):(t=newI(this.context.slice(0,-1),i,newn(s,this.value,"=")).compileToFragm
}catch(r){throwi=r,l.updateSyntaxError(i,t,n.filename)}}},e.compile=r=y(function(e,t){vari,r,s,o,a,c,h,u,f,m,g,v,y,b,k;for(v=l.merge,o=l.extend,t=o({},t),t.sourceMap&&(g=newn),k=p.tokenize(e,t),t.referencedVars=function(){vare,t,n;for(n=[],e=0,t=k.length;t>e;e++)b=k[e],b.variable&&n.push(b[1]);returnn}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f="",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),y=l.count(a.code,"\n"),s+=y,y?r=a.code.length-(a.code.lastIndexOf("\n")+1):r+=a.code.length),f+=a.code;returnt.header&&(h="Generated by CoffeeScript "+this.VERSION,f="// "+h+"\n"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=y(function(e,t){returnp.tokenize(e,t)}),e.nodes=y(function(e,t){return"string"==typeofe?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){varn,i,s,o;returnnull==t&&(t={}),s=require.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync("."),s.paths=require("module")._nodeModulePaths(i),(!l.isCoffee(s.filename)||require.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){varn,i,s,o,a,c,l,h,u,p,d,m,g,y,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){returnt.sandboxinstanceofo().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),y=t.sandbox;for(hiny)b.call(y,h)&&(T=y[h],w[h]=T)}w.global=w.root=w.GLOBAL=w}elsew=global;if(w.__filename=t.filename||"eval",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=require("module"),w.module=i=newn(t.modulename||"eval"),w.require=s=function(e){returnn._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(require),a=0,u=k.length;u>a;a++)d=k[a],"paths"!==d&&(s[d]=require[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){returnn._resolveFilename(e,i)}}}p={};for(hint)b.call(t,h)&&(T=t[h],p[h]=T);returnp.bare=!0,l=r(e,p),w===global?v.runInThisContext(l):v.runInContext(l,w)}},e.register=function(){returnrequire("./register")},require.extensions)for(m=this.FILE_EXTENSIONS,h=0,u=m.length;u>h;h++)s=m[h],null==(i=require.extensions)[s]&&(i[s]=function(){throwError("Use CoffeeScript.register() or require the coffee-script/register module to require "+s+" files.")});e._compileFile=function(e,t){varn,i,s,o;null==t&&(t=!1),s=a.readFileSync(e,"utf8"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=r(o,{filename:e,sourceMap:t,literate:l.isLiterate(e)})}catch(c){throwi=c,l.updateSyntaxError(i,o,e)}returnn},p=newt,d.lexer={lex:function(){vare,t;returnt=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){returnd.tokens=e,this.pos=0},upcomingInput:function(){return""}},d.yy=require("./nodes"),d.yy.parseError=function(e,t){varn,i,r,s,o,a;returno=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){cases!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:returni.replace(/_START$/,"").toLowerCase();default:returnl.nameWhitespaceCharacter(r)}}(),l.throwSyntaxError("unexpected "+r,n)},o=function(e,t){varn,i,r,s,o,a,c,l,h,u,p,d;returns=void0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s="<anonymous>"),l=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,l,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+l+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(h=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),h&&o.indexOf("."+h)!==o.length-h.length-1&&(n=" [as "+h+"]"),""+p+o+n+" ("+r+")"