From a6e92402b2e52eec6c37f0337f5fc5c27e0d2467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 5 May 2018 20:02:53 +0200 Subject: [PATCH 1/6] Add missing mkdirp to package.json It was still pulled because it's a sub-depedency, but the way it was installed by latest npm made it impossible to require directly from coffee-script package. --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8aa972c32d..d2d6ae3518 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "browserify": "^4.1.8" }, "dependencies": { - "iced-runtime": ">=0.0.1" + "iced-runtime": ">=0.0.1", + "mkdirp": "^0.5.1" } } From 58423657a3891c109cabfafbf1dab6c8aea9c0e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 5 May 2018 20:06:04 +0200 Subject: [PATCH 2/6] Fix 'vm' node API incompatibilities --- lib/coffee-script/coffee-script.js | 24 ++++++++++++++---------- src/coffee-script.coffee | 9 +++++++-- test/eval.coffee | 3 ++- test/repl.coffee | 1 - 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index f12346b3be..c045c2dd12 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -130,7 +130,7 @@ }; exports["eval"] = function(code, options) { - var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _require; + var Module, Script, createContext, isContext, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _ref2, _ref3, _require; if (options == null) { options = {}; } @@ -139,15 +139,19 @@ } Script = vm.Script; if (Script) { + createContext = (_ref = vm.Script.createContext) != null ? _ref : vm.createContext; + isContext = (_ref1 = vm.isContext) != null ? _ref1 : function(ctx) { + return options.sandbox instanceof createContext().constructor; + }; if (options.sandbox != null) { - if (options.sandbox instanceof Script.createContext().constructor) { + if (isContext(options.sandbox)) { sandbox = options.sandbox; } else { - sandbox = Script.createContext(); - _ref = options.sandbox; - for (k in _ref) { - if (!__hasProp.call(_ref, k)) continue; - v = _ref[k]; + sandbox = createContext(); + _ref2 = options.sandbox; + for (k in _ref2) { + if (!__hasProp.call(_ref2, k)) continue; + v = _ref2[k]; sandbox[k] = v; } } @@ -164,9 +168,9 @@ return Module._load(path, _module, true); }; _module.filename = sandbox.__filename; - _ref1 = Object.getOwnPropertyNames(require); - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - r = _ref1[_i]; + _ref3 = Object.getOwnPropertyNames(require); + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + r = _ref3[_i]; if (r !== 'paths') { _require[r] = require[r]; } diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 977bd8c4e7..428d137b82 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -132,11 +132,16 @@ exports.eval = (code, options = {}) -> return unless code = code.trim() Script = vm.Script if Script + # Node API compatibility + createContext = vm.Script.createContext ? vm.createContext + isContext = vm.isContext ? (ctx) -> + options.sandbox instanceof createContext().constructor + if options.sandbox? - if options.sandbox instanceof Script.createContext().constructor + if isContext options.sandbox sandbox = options.sandbox else - sandbox = Script.createContext() + sandbox = createContext() sandbox[k] = v for own k, v of options.sandbox sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox else diff --git a/test/eval.coffee b/test/eval.coffee index d42a704f76..c45aa31296 100644 --- a/test/eval.coffee +++ b/test/eval.coffee @@ -10,7 +10,8 @@ if vm = require? 'vm' eq fhqwhgads, 'global superpower!' test "CoffeeScript.eval can run in, and modify, a Script context sandbox", -> - sandbox = vm.Script.createContext() + createContext = vm.Script.createContext ? vm.createContext # Node API change + sandbox = createContext() sandbox.foo = 'bar' code = ''' global.foo = 'not bar!' diff --git a/test/repl.coffee b/test/repl.coffee index 5842b17b85..b14203afa6 100644 --- a/test/repl.coffee +++ b/test/repl.coffee @@ -103,7 +103,6 @@ testRepl "existential assignment of previously declared variable", (input, outpu testRepl "keeps running after runtime error", (input, output) -> input.emitLine 'a = b' - eq 0, output.lastWrite().indexOf 'ReferenceError: b is not defined' input.emitLine 'a' eq 'undefined', output.lastWrite() From 5cb74b69fb8b756b5929c10e864cd5162b86d3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 5 May 2018 20:06:26 +0200 Subject: [PATCH 3/6] Fix deprecation warning in test/error_messages.coffee --- test/error_messages.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 274b4af34b..a3211bab87 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -83,7 +83,7 @@ unless global.testingBrowser ^^ """ finally - fs.unlink 'test/syntax-error.coffee' + fs.unlinkSync 'test/syntax-error.coffee' test "#1096: unexpected generated tokens", -> From 84c098d73153938bba4d7e1dca0a9ae42bccb260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 5 May 2018 20:17:54 +0200 Subject: [PATCH 4/6] Add error message when defer slot is a function call --- extras/iced-coffee-script-108.0.10-min.js | 12 + extras/iced-coffee-script-108.0.10.js | 8887 +++++++++++++++++++++ lib/coffee-script/nodes.js | 4 + src/nodes.coffee | 2 + test/iced.coffee | 8 + 5 files changed, 8913 insertions(+) create mode 100644 extras/iced-coffee-script-108.0.10-min.js create mode 100644 extras/iced-coffee-script-108.0.10.js diff --git a/extras/iced-coffee-script-108.0.10-min.js b/extras/iced-coffee-script-108.0.10-min.js new file mode 100644 index 0000000000..d413ec3b0b --- /dev/null +++ b/extras/iced-coffee-script-108.0.10-min.js @@ -0,0 +1,12 @@ +/** + * IcedCoffeeScript Compiler v108.0.10 + * http://iced-coffee-script.github.io/iced-coffee-script + * + * Copyright 2011, Jeremy Ashkenas, Maxwell Krohn + * Released under the MIT License + */ +(function(root){!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.CoffeeScript=e()}}(function(){var define,module,exports;return function e(t,n,i){function r(s,a){if(!n[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);throw Error("Cannot find module '"+s+"'")}var u=n[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return r(n?n:e)},u,u.exports,e,t,n,i)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;i.length>s;s++)r(i[s]);return r}({1:[function(_dereq_,module,exports){(function(){var CoffeeScript,compile,runScripts,__indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_("./coffee-script"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,r=CoffeeScript.compile(e,t),n=r.js,i=r.v3SourceMap,""+n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(i)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var o,s;if(4===r.readyState){if(0!==(s=r.status)&&200!==s)throw Error("Could not load "+e);if(o=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,o),t)return t(o)}},r.send(null)},runScripts=function(){var e,t,n,i,r,o,s,a,c,u,l;for(a=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=a.length;n>e;e++)o=a[e],i=o.type,__indexOf.call(t,i)>=0&&r.push(o);return r}(),r=0,n=function(){var t;return t=e[r],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),r++,n()):void 0},c=function(i,r){var o;return o={literate:i.type===t[1]},i.src?CoffeeScript.load(i.src,function(t){return e[r]=t,n()},o,!0):(o.sourceFiles=["embedded"],e[r]=[i.innerHTML,o])},i=u=0,l=e.length;l>u;i=++u)s=e[i],c(s,i);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts),window.iced=CoffeeScript.iced,module.exports=CoffeeScript)}).call(this)},{"./coffee-script":2}],2:[function(e,t,n){(function(t,i){(function(){var r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F={}.hasOwnProperty,T=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(u=e("fs"),b=e("vm"),w=e("path"),r=e("./lexer").Lexer,m=e("./parser").parser,h=e("./helpers"),o=e("./sourcemap").SourceMap,d=e("./iced").transform,p=e("iced-runtime"),n.VERSION="108.0.10",n.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md",".iced",".liticed",".iced.md"],n.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n)}catch(r){throw i=r,h.updateSyntaxError(i,t,n.filename)}}},n.compile=s=y(function(e,t){var n,i,r,s,a,c,u,l,p,w,g,b,y;for(w=h.merge,s=h.extend,t=s({},t),t.sourceMap&&(p=new o),c=d(m.parse(f.tokenize(e,t)),t).compileToFragments(t),r=0,t.header&&(r+=1),t.shiftLine&&(r+=1),i=0,l="",b=0,y=c.length;y>b;b++)a=c[b],t.sourceMap&&(a.locationData&&p.add([a.locationData.first_line,a.locationData.first_column],[r,i],{noReplace:!0}),g=h.count(a.code,"\n"),r+=g,g?i=a.code.length-(a.code.lastIndexOf("\n")+1):i+=a.code.length),l+=a.code;return t.header&&(u="Generated by IcedCoffeeScript "+this.VERSION,l="// "+u+"\n"+l),t.sourceMap?(n={js:l},n.sourceMap=p,n.v3SourceMap=p.generate(t,e),n):l}),n.tokens=y(function(e,t){return f.tokenize(e,t)}),n.nodes=y(function(e,t){var n;return n="string"==typeof e?m.parse(f.tokenize(e,t)):m.parse(e),t.noIcedTransform||(n=d(n,t)),n}),n.run=function(n,i){var r,o,a,c;return null==i&&(i={}),a=e.main,a.filename=t.argv[1]=i.filename?u.realpathSync(i.filename):".",a.moduleCache&&(a.moduleCache={}),o=i.filename?w.dirname(u.realpathSync(i.filename)):u.realpathSync("."),a.paths=e("module")._nodeModulePaths(o),(!h.isCoffee(a.filename)||e.extensions)&&(i.runtime="interp",r=s(n,i),n=null!=(c=r.js)?c:r),a._compile(n,a.filename)},n.eval=function(n,r){var o,a,c,u,l,h,p,d,f,m,g,y,v,k,_,C,T,L;if(null==r&&(r={}),n=n.trim()){if(a=b.Script){if(c=null!=(k=b.Script.createContext)?k:b.createContext,u=null!=(_=b.isContext)?_:function(){return r.sandbox instanceof c().constructor},null!=r.sandbox){if(u(r.sandbox))f=r.sandbox;else{f=c(),C=r.sandbox;for(h in C)F.call(C,h)&&(m=C[h],f[h]=m)}f.global=f.root=f.GLOBAL=f}else f=i;if(f.__filename=r.filename||"eval",f.__dirname=w.dirname(f.__filename),f===i&&!f.module&&!f.require){for(o=e("module"),f.module=v=new o(r.modulename||"eval"),f.require=L=function(e){return o._load(e,v,!0)},v.filename=f.__filename,T=Object.getOwnPropertyNames(e),g=0,y=T.length;y>g;g++)d=T[g],"paths"!==d&&(L[d]=e[d]);L.paths=v.paths=o._nodeModulePaths(t.cwd()),L.resolve=function(e){return o._resolveFilename(e,v)}}}p={};for(h in r)F.call(r,h)&&(m=r[h],p[h]=m);return p.bare=!0,l=s(n,p),f===i?b.runInThisContext(l):b.runInContext(l,f)}},n.register=function(){return e("./register")},e.extensions)for(C=this.FILE_EXTENSIONS,k=0,_=C.length;_>k;k++)a=C[k],null==(v=e.extensions)[a]&&(v[a]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+a+" files.")});n._compileFile=function(e,t,n){var i,r,o,a,c,l,p;null==t&&(t=!1),null==n&&(n={}),c=u.readFileSync(e,"utf8"),l=65279===c.charCodeAt(0)?c.substring(1):c,a={filename:e,sourceMap:t,literate:h.isLiterate(e)};for(o in n)p=n[o],a[o]=p;try{i=s(l,a)}catch(d){throw r=d,h.updateSyntaxError(r,l,e)}return i},f=new r,m.lexer={lex:function(){var e,t;return t=this.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],this.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return this.tokens=e,this.pos=0},upcomingInput:function(){return""}},m.yy=e("./nodes"),n.iced=p,m.yy.parseError=function(e,t){var n,i,r,o,s,a,c;return s=t.token,c=m.lexer,o=c.errorToken,a=c.tokens,i=o[0],r=o[1],n=o[2],r=o===a[a.length-1]?"end of input":"INDENT"===i||"OUTDENT"===i?"indentation":h.nameWhitespaceCharacter(r),h.throwSyntaxError("unexpected "+r,n)},c=function(e,t){var n,i,r,o,s,a,c,u,l,h,p,d;return o=void 0,r="",e.isNative()?r="native":(e.isEval()?(o=e.getScriptNameOrSourceURL(),o||(r=""+e.getEvalOrigin()+", ")):o=e.getFileName(),o||(o=""),u=e.getLineNumber(),i=e.getColumnNumber(),h=t(o,u,i),r=h?""+o+":"+h[0]+":"+h[1]:""+o+":"+u+":"+i),s=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),s?(p=n="",d&&s.indexOf(d)&&(p=""+d+"."),l&&s.indexOf("."+l)!==s.length-l.length-1&&(n=" [as "+l+"]"),""+p+s+n+" ("+r+")"):""+d+"."+(l||"")+" ("+r+")"):a?"new "+(s||"")+" ("+r+")":s?""+s+" ("+r+")":r},g={},l=function(e){var t,i;if(g[e])return g[e];if(i=null!=w?w.extname(e):void 0,!(0>T.call(n.FILE_EXTENSIONS,i)))return t=n._compileFile(e,!0),g[e]=t.sourceMap},Error.prepareStackTrace=function(e,t){var i,r,o;return o=function(e,t,n){var i,r;return r=l(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var e,r,s;for(s=[],e=0,r=t.length;r>e&&(i=t[e],i.getFunction()!==n.run);e++)s.push(" at "+c(i,o));return s}(),""+(""+e)+"\n"+r.join("\n")+"\n"}}).call(this)}).call(this,e("g5I+bs"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./helpers":3,"./iced":4,"./lexer":5,"./nodes":6,"./parser":7,"./register":8,"./sourcemap":11,fs:12,"g5I+bs":19,"iced-runtime":15,module:12,path:18,vm:20}],3:[function(e,t,n){(function(e){(function(){var t,i,r,o,s,a,c;n.starts=function(e,t,n){return t===e.substr(n,t.length)},n.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},n.repeat=s=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},n.compact=function(e){var t,n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],t&&r.push(t);return r},n.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},n.merge=function(e,t){return i(i({},e),t)},i=n.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},n.flatten=r=function(e){var t,n,i,o;for(n=[],i=0,o=e.length;o>i;i++)t=e[i],t instanceof Array?n=n.concat(r(t)):n.push(t);return n},n.del=function(e,t){var n;return n=e[t],delete e[t],n},n.last=o=function(e,t){return e[e.length-(t||0)-1]},n.some=null!=(c=Array.prototype.some)?c:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},n.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},n.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},n.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"},n.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},n.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md|iced|liticed|iced\.md)$/.test(e)},n.isLiterate=function(e){return/\.(litcoffee|coffee\.md|liticed|iced\.md)$/.test(e)},n.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=a,n.stack=""+n,n},n.updateSyntaxError=function(e,t,n){return e.toString===a&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},a=function(){var t,n,i,r,o,a,c,u,l,h,p,d,f;return this.code&&this.location?(d=this.location,c=d.first_line,a=d.first_column,l=d.last_line,u=d.last_column,null==l&&(l=c),null==u&&(u=a),o=this.filename||"[stdin]",t=this.code.split("\n")[c],p=a,r=c===l?u+1:t.length,h=t.slice(0,p).replace(/[^\s]/g," ")+s("^",r-p),null!=(e!==void 0&&null!==e?e.stdout:void 0)&&(i=e.stdout.isTTY&&!e.env.NODE_DISABLE_COLORS),(null!=(f=this.colorful)?f:i)&&(n=function(e){return""+e+""},t=t.slice(0,p)+n(t.slice(p,r))+t.slice(r),h=n(h)),""+o+":"+(c+1)+":"+(a+1)+": error: "+this.message+"\n"+t+"\n"+h):Error.prototype.toString.call(this)},n.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)}).call(this,e("g5I+bs"))},{"g5I+bs":19}],4:[function(e,t,n){(function(){n.transform=function(e,t){return e.icedTransform(t)},n.runtime=e("iced-runtime")}).call(this)},{"iced-runtime":15}],5:[function(e,t,n){(function(){var t,i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U,H,W,G,Y,X,q,z,K,J,Q,Z,et,tt,nt,it=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};tt=e("./rewriter"),P=tt.Rewriter,v=tt.INVERSES,nt=e("./helpers"),X=nt.count,Z=nt.starts,Y=nt.compact,K=nt.last,Q=nt.repeat,q=nt.invertLiterate,J=nt.locationDataToString,et=nt.throwSyntaxError,n.Lexer=x=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.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),i=0;this.chunk=e.slice(i);)n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.heredocToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),o=this.getLineAndColumnFromChunk(n),this.chunkLine=o[0],this.chunkColumn=o[1],i+=n;return this.closeIndentation(),(r=this.ends.pop())&&this.error("missing "+r),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(U,""),G.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=q(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,o,u,l,h,p,d,f,m,w;return(u=g.exec(this.chunk))?(o=u[0],i=u[1],e=u[2],r=i.length,l=void 0,"own"===i&&"FOR"===this.tag()?(this.token("OWN",i),i.length):"from"===i&&"YIELD"===this.tag()?(this.token("FROM",i),i.length):(n=e||(h=K(this.tokens))&&("."===(f=h[0])||"?."===f||"::"===f||"?::"===f||!h.spaced&&"@"===h[0])&&"defer"!==i,p="IDENTIFIER",!n&&(it.call(C,i)>=0||it.call(c,i)>=0)&&(p=i.toUpperCase(),"WHEN"===p&&(m=this.tag(),it.call(F,m)>=0)?p="LEADING_WHEN":"FOR"===p?this.seenFor=!0:"UNLESS"===p?p="IF":it.call(H,p)>=0?p="UNARY":it.call($,p)>=0&&("INSTANCEOF"!==p&&this.seenFor?(p="FOR"+p,this.seenFor=!1):(p="RELATION","!"===this.value()&&(l=this.tokens.pop(),i="!"+i)))),it.call(_,i)>=0&&(n?(p="IDENTIFIER",i=new String(i),i.reserved=!0):it.call(j,i)>=0&&this.error('reserved word "'+i+'"')),n||(it.call(s,i)>=0&&(i=a[i]),p=function(){switch(i){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return p}}()),d=this.token(p,i,0,r),l&&(w=[l[2].first_line,l[2].first_column],d[2].first_line=w[0],d[2].first_column=w[1]),e&&(t=o.lastIndexOf(":"),this.token(":",":",t,e.length)),o.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],/^0[BOX]/.test(i)?this.error("radix prefix '"+i+"' must be lowercase"):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation '"+i+"' must be indicated with a lowercase 'e'"):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'"):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'"),t=i.length,(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,o,s,a;switch(o=this.chunk.charAt(0)){case"'":s=(M.exec(this.chunk)||[])[0];break;case'"':s=this.balancedString(this.chunk,'"')}if(!s)return 0;if(e=s.slice(1,-1),a=this.removeNewlines(e),'"'===o&&s.indexOf("#{",1)>0){for(n=r=0,t=e.length;"\n"===e.charAt(r++)&&t>r;)n++;this.interpolateString(a,{strOffset:1+n,lexedLength:s.length})}else this.token("STRING",o+this.escapeLines(a)+o,0,s.length);return(i=/^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(s))&&this.error("octal escape sequences "+s+" are not allowed"),s.length},e.prototype.heredocToken=function(){var e,t,n,i,r;return(n=p.exec(this.chunk))?(t=n[0],i=t.charAt(0),e=this.sanitizeHeredoc(n[2],{quote:i,indent:null}),'"'===i&&e.indexOf("#{")>=0?(r="\n"===n[2].charAt(0)?4:3,this.interpolateString(e,{heredoc:!0,strOffset:r,lexedLength:t.length})):this.token("STRING",this.makeString(e,i,!0),0,t.length),t.length):0},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(u))?(e=n[0],t=n[1],t&&this.token("HERECOMMENT",this.sanitizeHeredoc(t,{herecomment:!0,indent:Q(" ",this.indent)}),0,e.length),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=k.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,i,r,o,s;return"/"!==this.chunk.charAt(0)?0:(t=this.heregexToken())?t:(i=K(this.tokens),i&&(o=i[0],it.call(i.spaced?S:A,o)>=0)?0:(n=O.exec(this.chunk))?(s=n,n=s[0],r=s[1],e=s[2],"//"===r?0:("/*"===r.slice(0,2)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX",""+r+e,0,n.length),n.length)):0)},e.prototype.heregexToken=function(){var e,t,n,i,r,o,s,a,c,u,l,h,p,d,f,g,b;if(!(r=m.exec(this.chunk)))return 0;if(i=r[0],e=r[1],t=r[2],0>e.indexOf("#{"))return a=this.escapeLines(e.replace(w,"$1$2").replace(/\//g,"\\/"),!0),a.match(/^\*/)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX","/"+(a||"(?:)")+"/"+t,0,i.length),i.length;for(this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),l=[],f=this.interpolateString(e,{regex:!0,strOffset:3}),p=0,d=f.length;d>p;p++){if(u=f[p],c=u[0],h=u[1],"TOKENS"===c)l.push.apply(l,h);else if("NEOSTRING"===c){if(!(h=h.replace(w,"$1$2")))continue;h=h.replace(/\\/g,"\\\\"),u[0]="STRING",u[1]=this.makeString(h,'"',!0),l.push(u)}else this.error("Unexpected "+c);s=K(this.tokens),o=["+","+"],o[2]=s[2],l.push(o)}return l.pop(),"STRING"!==(null!=(g=l[0])?g[0]:void 0)&&(this.token("STRING",'""',0,0),this.token("+","+",0,0)),(b=this.tokens).push.apply(b,l),t&&(n=i.lastIndexOf(t),this.token(",",",",n,0),this.token("STRING",'"'+t+'"',n,t.length)),this.token(")",")",i.length-1,0),i.length},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=D.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("OUTDENT"),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",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],it.call(b,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;return(e=G.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(n=K(this.tokens),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,i,s,a,c,u;if((e=R.exec(this.chunk))?(i=e[0],o.test(i)&&this.tagParameters()):i=this.chunk.charAt(0),n=i,t=K(this.tokens),"="===i&&t&&(!t[1].reserved&&(s=t[1],it.call(_,s)>=0)&&this.error('reserved word "'+this.value()+"\" can't be assigned"),"||"===(a=t[1])||"&&"===a))return t[0]="COMPOUND_ASSIGN",t[1]+="=",i.length;if(";"===i)this.seenFor=!1,n="TERMINATOR";else if(it.call(N,i)>=0)n="MATH";else if(it.call(l,i)>=0)n="COMPARE";else if(it.call(h,i)>=0)n="COMPOUND_ASSIGN";else if(it.call(H,i)>=0)n="UNARY";else if(it.call(W,i)>=0)n="UNARY_MATH";else if(it.call(B,i)>=0)n="SHIFT";else if(it.call(L,i)>=0||"?"===i&&(null!=t?t.spaced:void 0))n="LOGIC";else if(t&&!t.spaced)if("("===i&&(c=t[0],it.call(r,c)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),n="CALL_START";else if("["===i&&(u=t[0],it.call(y,u)>=0))switch(n="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(i){case"(":case"{":case"[":this.ends.push(v[i]);break;case")":case"}":case"]":this.pair(i)}return this.token(n,i),i.length},e.prototype.sanitizeHeredoc=function(e,t){var n,i,r,o,s;if(r=t.indent,i=t.herecomment){if(d.test(e)&&this.error('block comment cannot contain "*/", starting'),0>e.indexOf("\n"))return e}else for(;o=f.exec(e);)n=o[1],(null===r||(s=n.length)>0&&r.length>s)&&(r=n);return r&&(e=e.replace(RegExp("\\n"+r,"g"),"\n")),i||(e=e.replace(/^\n/,"")),e},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.balancedString=function(e,t){var n,i,r,o,s,a,c,u;for(n=0,a=[t],i=c=1,u=e.length;u>=1?u>c:c>u;i=u>=1?++c:--c)if(n)--n;else{switch(r=e.charAt(i)){case"\\":++n;continue;case t:if(a.pop(),!a.length)return e.slice(0,+i+1||9e9);t=a[a.length-1];continue}"}"!==t||'"'!==r&&"'"!==r?"}"===t&&"/"===r&&(o=m.exec(e.slice(i))||O.exec(e.slice(i)))?n+=o[0].length-1:"}"===t&&"{"===r?a.push(t="}"):'"'===t&&"#"===s&&"{"===r&&a.push(t="}"):a.push(t=r),s=r}return this.error("missing "+a.pop()+", starting")},e.prototype.interpolateString=function(t,n){var i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S;for(null==n&&(n={}),s=n.heredoc,v=n.regex,w=n.offsetInChunk,_=n.strOffset,p=n.lexedLength,w||(w=0),_||(_=0),p||(p=t.length),T=[],g=0,a=-1;h=t.charAt(a+=1);)"\\"!==h?"#"===h&&"{"===t.charAt(a+1)&&(o=this.balancedString(t.slice(a+1),"}"))&&(a>g&&T.push(this.makeToken("NEOSTRING",t.slice(g,a),_+g)),r||(r=this.makeToken("","string interpolation",w+a+1,2)),c=o.slice(1,-1),c.length&&(E=this.getLineAndColumnFromChunk(_+a+2),d=E[0],i=E[1],m=(new e).tokenize(c,{line:d,column:i,rewrite:!1}),y=m.pop(),"TERMINATOR"===(null!=(D=m[0])?D[0]:void 0)&&(y=m.shift()),(l=m.length)&&(l>1&&(m.unshift(this.makeToken("(","(",_+a+1,0)),m.push(this.makeToken(")",")",_+a+1+c.length,0))),T.push(["TOKENS",m]))),a+=o.length,g=a+1):a+=1;if(a>g&&t.length>g&&T.push(this.makeToken("NEOSTRING",t.slice(g),_+g)),v)return T;if(!T.length)return this.token("STRING",'""',w,p);for("NEOSTRING"!==T[0][0]&&T.unshift(this.makeToken("NEOSTRING","",w)),(u=T.length>1)&&this.token("(","(",w,0,r),a=x=0,N=T.length;N>x;a=++x)F=T[a],C=F[0],L=F[1],a&&(a&&(b=this.token("+","+")),f="TOKENS"===C?L[0]:F,b[2]={first_line:f[2].first_line,first_column:f[2].first_column,last_line:f[2].first_line,last_column:f[2].first_column}),"TOKENS"===C?(S=this.tokens).push.apply(S,L):"NEOSTRING"===C?(F[0]="STRING",F[1]=this.makeString(L,'"',s),this.tokens.push(F)):this.error("Unexpected "+C);return u&&(k=this.makeToken(")",")",w+p,0),k.stringEnd=!0,this.tokens.push(k)),T},e.prototype.pair=function(e){var t;return e!==(t=K(this.ends))?("OUTDENT"!==t&&this.error("unmatched "+e),this.outdentToken(K(this.indents),!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r;return 0===e?[this.chunkLine,this.chunkColumn]:(r=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),n=X(r,"\n"),t=this.chunkColumn,n>0?(i=r.split("\n"),t=K(i).length):t+=r.length,[this.chunkLine+n,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={},a=this.getLineAndColumnFromChunk(n),o.first_line=a[0],o.first_column=a[1],r=Math.max(0,i-1),c=this.getLineAndColumnFromChunk(n+r),o.last_line=c[0],o.last_column=c[1],s=[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(e,t){var n;return(n=K(this.tokens,e))&&(t?n[0]=t:n[0])},e.prototype.value=function(e,t){var n;return(n=K(this.tokens,e))&&(t?n[1]=t:n[1])},e.prototype.unfinished=function(){var e;return T.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.removeNewlines=function(e){return e.replace(/^\s*\n\s*/,"").replace(/([^\\]|\\\\)\s*\n\s*$/,"$1")},e.prototype.escapeLines=function(e,t){return e=e.replace(/\\[^\S\n]*(\n|\\)\s*/g,function(e,t){return"\n"===t?"":e}),t?e.replace(E,"\\n"):e.replace(/\s*\n\s*/g," ")},e.prototype.makeString=function(e,t,n){return e?(e=e.replace(RegExp("\\\\("+t+"|\\\\)","g"),function(e,n){return n===t?n:e}),e=e.replace(RegExp(""+t,"g"),"\\$&"),t+this.escapeLines(e,n)+t):t+t},e.prototype.error=function(e,t){var n,i,r;return null==t&&(t=0),r=this.getLineAndColumnFromChunk(t),i=r[0],n=r[1],et(e,{first_line:i,first_column:n})},e}(),C=["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"],c=["undefined","then","unless","until","loop","of","by","when"],c=c.concat(["await","defer"]),a={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(z in a)e.push(z);return e}(),c=c.concat(s),j=["case","default","function","var","void","with","const","let","enum","export","import","native","__hasProp","__extends","__slice","__bind","__indexOf","implements","interface","package","private","protected","public","static"],V=["arguments","eval","yield*"],_=C.concat(j).concat(V),n.RESERVED=j.concat(C).concat(c).concat(V),n.STRICT_PROSCRIBED=V,t=65279,g=/^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,p=/^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/,R=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,G=/^[^\n\S]+/,u=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,o=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,M=/^'[^\\']*(?:\\[\s\S][^\\']*)*'/,k=/^`[^\\`]*(?:\\.[^\\`]*)*`/,O=/^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/,m=/^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/,w=/((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g,E=/\n/g,f=/\n+([^\n\S]*)/g,d=/\*\//,T=/^\s*(?:,|\??\.(?![.\d])|::)/,U=/\s+$/,h=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],H=["NEW","TYPEOF","DELETE","DO"],W=["!","~"],L=["&&","||","&","|","^"],B=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],N=["*","/","%","//","%%"],$=["IN","OF","INSTANCEOF"],i=["TRUE","FALSE"],S=["NUMBER","REGEX","BOOL","NULL","UNDEFINED","++","--"],A=S.concat(")","}","THIS","IDENTIFIER","STRING","]"),r=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],y=r.concat("NUMBER","BOOL","NULL","UNDEFINED"),F=["INDENT","OUTDENT","TERMINATOR"],b=[")","}","]"],r.push("DEFER")}).call(this)},{"./helpers":3,"./rewriter":9}],6:[function(e,t,n){(function(t){(function(){var i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U,H,W,G,Y,X,q,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,lt,ht,pt,dt,ft,mt,wt,gt,bt,yt,vt,kt,_t,Ct,Ft,Tt,Lt,xt,Nt,Et,Dt,St,At,It,Rt,Ot,$t,jt,Pt,Bt={}.hasOwnProperty,Mt=function(e,t){function n(){this.constructor=e}for(var i in t)Bt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Vt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ut=[].slice;Error.stackTraceLimit=1/0,et=e("./scope").Scope,jt=e("./lexer"),z=jt.RESERVED,Z=jt.STRICT_PROSCRIBED,vt=e("iced-runtime"),Nt=e("path"),Pt=e("./helpers"),ft=Pt.compact,bt=Pt.flatten,gt=Pt.extend,Tt=Pt.merge,mt=Pt.del,It=Pt.starts,wt=Pt.ends,Ct=Pt.last,At=Pt.some,dt=Pt.addLocationDataFn,Ft=Pt.locationDataToString,Rt=Pt.throwSyntaxError,n.extend=gt,n.addLocationDataFn=dt,pt=function(){return!0},U=function(){return!1},st=function(){return this},V=function(){return this.negated=!this.negated,this},H=function(){return new lt(new B("null"))},n.CodeFragment=d=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?": "+Ft(this.locationData):"")},e}(),yt=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("")},n.Base=a=function(){function e(){this.icedContinuationBlock=null,this.icedLoopFlag=!1,this.icedNodeFlag=!1,this.icedGotCpsSplitFlag=!1,this.icedCpsPivotFlag=!1,this.icedHasAutocbFlag=!1,this.icedFoundArguments=!1,this.icedParentAwait=null,this.icedCallContinuationFlag=!1}return e.prototype.compile=function(e,t){return yt(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=gt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,n.icedHasContinuation()&&!n.icedGotCpsSplitFlag?n.icedCompileCps(e):e.level!==P&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var t,n,r,o,s;return(o=this.jumps())&&o.error("cannot use a pure statement in an expression"),e.sharedScope=!0,this.icedClearAutocbFlags(),r=new p([],c.wrap([this])),t=[],((n=this.contains(kt))||this.contains(_t))&&(t=[new B("this")],n?(s="apply",t.push(new B("arguments"))):s="call",r=new lt(r,[new i(new B(s))])),new u(r,t).compileNode(e)},e.prototype.cache=function(e,t,n){var i,r;return this.isComplex()?(i=new B(n||e.scope.freeVariable("ref")),r=new o(i,this),t?[r.compileToFragments(e,t),[this.makeCode(i.value)]]:[r,i]):(i=t?this.compileToFragments(e,t):this,[i,i])},e.prototype.cacheToCodeFragments=function(e){return[yt(e[0]),yt(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new u(new B(""+e+".push"),[t]):new J(t,this.icedHasAutocbFlag)},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 f))return e[t];return null},e.prototype.toString=function(e,t){var n,i;return null==e&&(e=""),null==t&&(t=this.constructor.name),n=[],this.icedNodeFlag&&n.push("A"),this.icedLoopFlag&&n.push("L"),this.icedCpsPivotFlag&&n.push("P"),this.icedIsAutocbCode&&n.push("B"),this.icedHasAutocbFlag&&n.push("C"),this.icedParentAwait&&n.push("D"),this.icedFoundArguments&&n.push("G"),n.length&&(n=" ("+n.join("")+")"),i="\n"+e+t,i="\n"+e+t,this.soak&&(i+="?"),i+=n,this.eachChild(function(t){return i+=t.toString(e+ot)}),this.icedContinuationBlock&&(e+=ot,i+="\n"+e+"Continuation",i+=this.icedContinuationBlock.toString(e+ot)),i},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=bt([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 Y("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.flattenChildren=function(){var e,t,n,i,r,o,s,a,c;for(n=[],a=this.children,i=0,o=a.length;o>i;i++)if(e=a[i],this[e])for(c=bt([this[e]]),r=0,s=c.length;s>r;r++)t=c[r],n.push(t);return n},e.prototype.icedCompileCps=function(e){var t;return this.icedGotCpsSplitFlag=!0,t=m.wrap(this,this.icedContinuationBlock,null,e),e.sharedScope=!0,t.compileNode(e)},e.prototype.icedWalkAst=function(e,t){var n,i,r,o;for(this.icedParentAwait=e,this.icedHasAutocbFlag=t.foundAutocb,o=this.flattenChildren(),i=0,r=o.length;r>i;i++)n=o[i],n.icedWalkAst(e,t)&&(this.icedNodeFlag=!0); +return this.icedNodeFlag},e.prototype.icedWalkAstLoops=function(e){var t,n,i,r;for(this.isLoop()&&this.icedNodeFlag&&(e=!0),this.isLoop()&&!this.icedNodeFlag&&(e=!1),this.icedLoopFlag=e,r=this.flattenChildren(),n=0,i=r.length;i>n;n++)t=r[n],t.icedWalkAstLoops(e)&&(this.icedLoopFlag=!0);return this.icedLoopFlag},e.prototype.icedWalkCpsPivots=function(){var e,t,n,i;for((this.icedNodeFlag||this.icedLoopFlag&&this.icedIsJump())&&(this.icedCpsPivotFlag=!0),i=this.flattenChildren(),t=0,n=i.length;n>t;t++)e=i[t],e.icedWalkCpsPivots()&&(this.icedCpsPivotFlag=!0);return this.icedCpsPivotFlag},e.prototype.icedClearAutocbFlags=function(){return this.icedHasAutocbFlag=!1,this.traverseChildren(!1,function(e){return e.icedHasAutocbFlag=!1,!0})},e.prototype.icedCpsRotate=function(){var e,t,n,i;for(i=this.flattenChildren(),t=0,n=i.length;n>t;t++)e=i[t],e.icedCpsRotate();return this},e.prototype.icedIsCpsPivot=function(){return this.icedCpsPivotFlag},e.prototype.icedNestContinuationBlock=function(e){return this.icedContinuationBlock=e},e.prototype.icedHasContinuation=function(){return!!this.icedContinuationBlock},e.prototype.icedCallContinuation=function(){return this.icedCallContinuationFlag=!0},e.prototype.icedWrapContinuation=U,e.prototype.icedIsJump=U,e.prototype.icedUnwrap=function(e){return e.icedHasContinuation()&&this.icedHasContinuation()?this:(this.icedHasContinuation()&&(e.icedContinuationBlock=this.icedContinuationBlock),e)},e.prototype.icedStatementAssertion=function(){return this.icedIsCpsPivot()?this.error("await'ed statements can't act as expressions"):void 0},e.prototype.children=[],e.prototype.isStatement=U,e.prototype.jumps=U,e.prototype.isComplex=pt,e.prototype.isChainable=U,e.prototype.isAssignable=U,e.prototype.isLoop=U,e.prototype.unwrap=st,e.prototype.unfoldSoak=U,e.prototype.assigns=U,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 Rt(e,this.locationData)},e.prototype.makeCode=function(e){return new d(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}(),n.Block=c=function(e){function t(e){t.__super__.constructor.call(this),this.expressions=ft(bt(e||[]))}return Mt(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.icedUnwrap(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,i=0,r=o.length;r>i;i++)if(t=o[i],n=t.jumps(e))return n},t.prototype.makeReturn=function(e){var t,n,i;for(i=this.expressions.length,n=!1;i--;)if(t=this.expressions[i],!(t instanceof f)){this.expressions[i]=t.makeReturn(e),t instanceof J&&!t.expression&&!t.icedHasAutocbFlag?(this.expressions.splice(i,1),n=!0):t instanceof E&&!t.elseBody||(n=!0);break}return!this.icedHasAutocbFlag||this.icedNodeFlag||n||this.expressions.push(new J(null,!0)),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,u,l;for(this.tab=e.indent,a=e.level===P,i=[],l=this.expressions,o=c=0,u=l.length;u>c;o=++c)s=l[o],s=s.unwrapAll(),s=s.unfoldSoak(e)||s,s instanceof t?i.push(s.compileNode(e)):a?(s.front=!0,r=s.compileToFragments(e),s.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(s.compileToFragments(e,O));return a?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>=O?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,o,s,a,c,u,l;for(e.indent=e.bare?"":ot,e.level=P,this.spaced=!0,e.scope=new et(null,this,null),l=e.locals||[],c=0,u=l.length;u>c;c++)r=l[c],e.scope.parameter(r);return o=[],e.bare||(s=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 f);i=++e)o.push(t);return o}.call(this),a=this.expressions.slice(s.length),this.expressions=s,s.length&&(o=this.compileNode(Tt(e,{indent:""})),o.push(this.makeCode("\n"))),this.expressions=a),n=this.compileWithDeclarations(e),e.bare?n:[].concat(o,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,u,l,h,p,d,m;for(r=[],s=[],p=this.expressions,o=l=0,h=p.length;h>l&&(i=p[o],i=i.unwrap(),i instanceof f||i instanceof B);o=++l);return e=Tt(e,{level:P}),o&&(a=this.expressions.splice(o,9e9),d=[this.spaced,!1],u=d[0],this.spaced=d[1],m=[this.compileNode(e),u],r=m[0],this.spaced=m[1],this.expressions=a),s=this.compileNode(e),c=e.scope,c.expressions===this&&(n=e.scope.hasDeclarations(),t=c.hasAssignments,n||t?(o&&r.push(this.makeCode("\n")),r.push(this.makeCode(""+this.tab+"var ")),n&&r.push(this.makeCode(c.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+ot))),r.push(this.makeCode(c.assignedVariables().join(",\n"+(this.tab+ot))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&s.length&&r.push(this.makeCode("\n"))),r.concat(s)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t.prototype.icedThreadReturn=function(e){var t,n;for(e=e||new N,n=this.expressions.length;n--&&(t=this.expressions[n],!t.isStatement());)if(!(t instanceof f||t instanceof J))return e.assignValue(t),this.expressions[n]=e,void 0;return this.expressions.push(e)},t.prototype.icedCompileCps=function(e){return this.icedGotCpsSplitFlag=!0,this.expressions.length>1?t.__super__.icedCompileCps.call(this,e):this.compileNode(e)},t.prototype.icedCpsRotate=function(){var e,n,i,r,o,s,a,c,u,l;for(r=null,l=this.expressions,i=s=0,c=l.length;c>s&&(n=l[i],n.icedIsCpsPivot()&&(r=n,r.icedCallContinuation()),n.icedCpsRotate(),!r);i=++s);if(!r)return this;if(r.icedContinuationBlock)throw SyntaxError("unexpected continuation block in node");if(o=this.expressions.slice(i+1),this.expressions=this.expressions.slice(0,i+1),o.length){for(e=new t(o),r.icedNestContinuationBlock(e),a=0,u=o.length;u>a;a++)n=o[a],n.icedNodeFlag&&(e.icedNodeFlag=!0),n.icedLoopFlag&&(e.icedLoopFlag=!0),n.icedCpsPivotFlag&&(e.icedCpsPivotFlag=!0),n.icedHasAutocbFlag&&(e.icedHasAutocbFlag=!0);e.icedCpsRotate()}return this},t.prototype.icedAddRuntime=function(e,t){var n,i;for(n=0;(i=this.expressions[n])&&i instanceof f||i instanceof lt&&i.isString();)n++;return this.expressions.splice(n,0,new x(e,t))},t.prototype.icedTransform=function(e){var t;return t={},this.icedWalkAst(null,t),!(null!=e?e.repl:void 0)&&(t.foundDefer||t.foundAwait||e.runforce)&&this.icedAddRuntime(t.foundDefer,t.foundAwait),t.foundAwait&&(this.icedWalkAstLoops(!1),this.icedWalkCpsPivots(),this.icedCpsRotate()),this},t.prototype.icedGetSingle=function(){return 1===this.expressions.length?this.expressions[0]:null},t}(a),n.Literal=B=function(e){function t(e){if(this.value=e,null==this.value)throw Error("whoops!");t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return _.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=U,t.prototype.assigns=function(e){return e===this.value},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(e){var t,n,i;return this.icedLoopFlag&&this.icedIsJump()?this.icedCompileIced(e):(n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)])},t.prototype.toString=function(){return' "'+this.value+'"'},t.prototype.icedWalkAst=function(e,t){return"arguments"===this.value&&t.foundAwaitFunc&&(t.foundArguments=!0,this.value="_arguments"),!1},t.prototype.icedIsJump=function(){var e;return"break"===(e=this.value)||"continue"===e},t.prototype.icedCompileIced=function(e){var n,i,r,o;return i={"continue":vt["const"].c_while,"break":vt["const"].b_while},o=i[this.value],r=new lt(new t(o)),n=new u(r,[]),n.compileNode(e)},t}(a),n.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=I?"(void 0)":"void 0")]},t}(a),n.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(a),n.Bool=function(e){function t(e){this.val=e}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(a),n.Return=J=function(e){function t(e,n){this.expression=e,t.__super__.constructor.call(this),this.icedHasAutocbFlag=n}return Mt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=pt,t.prototype.makeReturn=st,t.prototype.jumps=st,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 this.icedHasAutocbFlag?this.icedCompileIced(e):(t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,j))),t.push(this.makeCode(";")),t)},t.prototype.icedCompileIced=function(e){var t,n,i,r,o;return r=new lt(new B(vt["const"].autocb)),t=this.expression?[this.expression]:[],i=new u(r,t),o=new B("return"),n=new c([i,o]),n.compileNode(e)},t}(a),n.Value=lt=function(e){function t(e,n,i){return t.__super__.constructor.call(this),!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return Mt(t,e),t.prototype.children=["base","properties"],t.prototype.copy=function(){return new t(this.base,this.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(r)},t.prototype.isRange=function(){return this.bareLiteral(K)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(B)&&Q.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(B)&&T.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(B)&&F.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),t=0,n=i.length;n>t;t++)if(e=i[t],e.soak||e instanceof u)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},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 G&&(!e||this.base.generated)},t.prototype.isSplice=function(){return Ct(this.properties)instanceof tt},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&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,i,r,s;return r=Ct(this.properties),2>this.properties.length&&!this.base.isComplex()&&!(null!=r?r.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(i=new B(e.scope.freeVariable("base")),n=new t(new q(new o(i,n)))),r?(r.isComplex()&&(s=new B(e.scope.freeVariable("name")),r=new S(new o(s,r.index)),s=new S(s)),[n.add(r),new t(i||n.base,[s||r])]):[n,i])},t.prototype.compileNode=function(e){var t,n,i,r,o;for(this.base.front=this.front,i=this.properties,t=this.base.compileToFragments(e,i.length?I:null),(this.base instanceof q||i.length)&&Q.test(yt(t))&&t.push(this.makeCode(".")),r=0,o=i.length;o>r;r++)n=i[r],t.push.apply(t,n.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var i,r,s,a,c,u,l,h,p,d;if(s=n.base.unfoldSoak(e))return(p=s.body.properties).push.apply(p,n.properties),s;for(d=n.properties,r=l=0,h=d.length;h>l;r=++l)if(a=d[r],a.soak)return a.soak=!1,i=new t(n.base,n.properties.slice(0,r)),u=new t(n.base,n.properties.slice(r)),i.isComplex()&&(c=new B(e.scope.freeVariable("ref")),i=new q(new o(c,i)),u.base=c),new E(new g(i),u,{soak:!0});return!1}}(this)()},t.prototype.icedToSlot=function(e){var t;return this.base instanceof G?this.base.icedToSlot(e):(t=null,this.properties&&this.properties.length&&(t=this.properties.pop()),new nt(e,this,t))},t.prototype.icedToSlotAccess=function(){return this["this"]?this.properties[0]:new i(this)},t}(a),n.Comment=f=function(e){function t(e){this.comment=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.isStatement=pt,t.prototype.makeReturn=st,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)# /gm,"$1 * "),n="/*"+Lt(i,this.tab)+(Vt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===P&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(a),n.Call=u=function(e){function t(e,n,i){this.args=null!=n?n:[],this.soak=i,t.__super__.constructor.call(this),this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof lt&&e.isNotCallable()&&e.error("literal is not a function")}return Mt(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.superReference=function(e){var t,n;return n=e.scope.namedMethod(),(null!=n?n.klass:void 0)?(t=[new i(new B("__super__"))],n["static"]&&t.push(new i(new B("constructor"))),t.push(new i(new B(n.name))),new lt(new B(n.klass),t).compile(e)):(null!=n?n.ctor:void 0)?""+n.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},t.prototype.superThis=function(e){var t;return e.scope.icedgen?"_this":(t=e.scope.method,t&&!t.klass&&t.context||"this")},t.prototype.unfoldSoak=function(e){var n,i,r,o,s,a,c,u,l;if(this.soak){if(this.variable){if(i=Ot(e,this,"variable"))return i;u=new lt(this.variable).cacheReference(e),r=u[0],s=u[1]}else r=new B(this.superReference(e)),s=new lt(r);return s=new t(s,this.args),s.isNew=this.isNew,r=new B("typeof "+r.compile(e)+' === "function"'),new E(r,new lt(s),{soak:!0})}for(n=this,o=[];;)if(n.variable instanceof t)o.push(n),n=n.variable;else{if(!(n.variable instanceof lt))break;if(o.push(n),!((n=n.variable.base)instanceof t))break}for(l=o.reverse(),a=0,c=l.length;c>a;a++)n=l[a],i&&(n.variable instanceof t?n.variable=i:n.variable.base=i),i=Ot(e,n,"variable");return i},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l;if(null!=(u=this.variable)&&(u.front=this.front),r=it.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=a=0,c=l.length;c>a;n=++a)t=l[n],t.icedStatementAssertion(),n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,O));return o=[],this.isSuper?(s=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(s+=", "),o.push(this.makeCode(s))):(this.isNew&&o.push(this.makeCode("new ")),o.push.apply(o,this.variable.compileToFragments(e,I)),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.isSuper?[].concat(this.makeCode(""+this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(o=this.tab+ot,[].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,O),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new lt(this.variable),(s=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,O),this.makeCode(")"),s.compileToFragments(e))):(r=i.compileToFragments(e,I),Q.test(yt(r))&&(r=this.wrapInBraces(r)),s?(a=yt(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.prototype.icedToSlot=function(){return this.error("function call cannot be a slot for defer")},t}(a),n.Extends=y=function(e){function t(e,n){this.child=e,this.parent=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new u(new lt(new B($t("extends"))),[this.child,this.parent]).compileToFragments(e)},t}(a),n.Access=i=function(e){function t(e,n){this.name=e,t.__super__.constructor.call(this),this.name.asKey=!0,this.soak="soak"===n}return Mt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),_.test(yt(t))||this.name instanceof w?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=U,t}(a),n.Index=S=function(e){function t(e){this.index=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,j),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(a),n.Range=K=function(e){function t(e,n,i){this.from=e,this.to=n,t.__super__.constructor.call(this),this.exclusive="exclusive"===i,this.equals=this.exclusive?"":"="}return Mt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,o;return e=Tt(e,{top:!0}),n=this.cacheToCodeFragments(this.from.cache(e,O)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,O)),this.toC=i[0],this.toVar=i[1],(t=mt(e,"step"))&&(r=this.cacheToCodeFragments(t.cache(e,O)),this.step=r[0],this.stepVar=r[1]),o=[this.fromVar.match(W),this.toVar.match(W)],this.fromNum=o[0],this.toNum=o[1],this.stepVar?this.stepNum=this.stepVar.match(W):void 0},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,o=mt(e,"index"),s=mt(e,"name"),u=s&&s!==o,p=""+o+" = "+this.fromC,this.toC!==this.toVar&&(p+=", "+this.toC),this.step!==this.stepVar&&(p+=", "+this.step),d=[""+o+" <"+this.equals,""+o+" >"+this.equals],c=d[0],r=d[1],n=this.stepNum?xt(this.stepNum[0])>0?""+c+" "+this.toVar:""+r+" "+this.toVar:a?(f=[xt(this.fromNum[0]),xt(this.toNum[0])],i=f[0],h=f[1],f,h>=i?""+c+" "+h:""+r+" "+h):(t=this.stepVar?""+this.stepVar+" > 0":""+this.fromVar+" <= "+this.toVar,""+t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),l=this.stepVar?""+o+" += "+this.stepVar:a?u?h>=i?"++"+o:"--"+o:h>=i?""+o+"++":""+o+"--":u?""+t+" ? ++"+o+" : --"+o:""+t+" ? "+o+"++ : "+o+"--",u&&(p=""+s+" = "+p),u&&(l=""+s+" = "+l),[this.makeCode(""+p+"; "+n+"; "+l)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(u=function(){d=[];for(var e=p=+this.fromNum,t=+this.toNum;t>=p?t>=e:e>=t;t>=p?e++:e--)d.push(e);return d}.apply(this),this.exclusive&&u.pop(),[this.makeCode("["+u.join(", ")+"]")]):(s=this.tab+ot,o=e.scope.freeVariable("i"),l=e.scope.freeVariable("results"),c="\n"+s+l+" = [];",this.fromNum&&this.toNum?(e.index=o,n=yt(this.compileNode(e))):(h=""+o+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=""+this.fromVar+" <= "+this.toVar,n="var "+h+"; "+i+" ? "+o+" <"+this.equals+" "+this.toVar+" : "+o+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+o+"++ : "+o+"--"),a="{ "+l+".push("+o+"); }\n"+s+"return "+l+";\n"+e.indent,r=function(e){return null!=e?e.contains(kt):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+s+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(a),n.Slice=tt=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;return a=this.range,o=a.to,i=a.from,r=i&&i.compileToFragments(e,j)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,j),n=yt(t),(this.range.exclusive||-1!==+n)&&(s=", "+(this.range.exclusive?n:Q.test(n)?""+(+n+1):(t=o.compileToFragments(e,I),"+"+yt(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+yt(r)+(s||"")+")")]},t}(a),n.Obj=G=function(e){function t(e,n){this.generated=null!=n?n:!1,this.objects=this.properties=e||[],t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["properties"],t.prototype.compileNode=function(e){var t,n,i,r,s,a,c,u,l,h,p,d,m;if(l=this.properties,!l.length)return[this.makeCode(this.front?"({})":"{}")];if(this.generated)for(h=0,d=l.length;d>h;h++)c=l[h],c instanceof lt&&c.error("cannot have an implicit value in an implicit object");for(i=e.indent+=ot,a=this.lastNonComment(this.properties),t=[],n=p=0,m=l.length;m>p;n=++p)u=l[n],s=n===l.length-1?"":u===a||u instanceof f?"\n":",\n",r=u instanceof f?"":i,u instanceof o&&u.variable instanceof lt&&u.variable.hasProperties()&&u.variable.error("Invalid object key"),u instanceof lt&&u["this"]&&(u=new o(u.properties[0].name,u,"object")),u instanceof f||(u instanceof o||(u=new o(u,u,"object")),(u.variable.base||u.variable).asKey=!0),r&&t.push(this.makeCode(r)),t.push.apply(t,u.compileToFragments(e,P)),s&&t.push(this.makeCode(s));return t.unshift(this.makeCode("{"+(l.length&&"\n"))),t.push(this.makeCode(""+(l.length&&"\n"+this.tab)+"}")),this.front?this.wrapInBraces(t):t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,n=0,i=r.length;i>n;n++)if(t=r[n],t.assigns(e))return!0;return!1},t.prototype.icedToSlot=function(e){var t,n,i,r,s,a;for(s=this.properties,a=[],i=0,r=s.length;r>i;i++)n=s[i],n instanceof o?a.push(n.value.icedToSlot(e).addAccess(n.variable.icedToSlotAccess())):n instanceof lt?(t=n.icedToSlotAccess(),a.push(n.icedToSlot(e).addAccess(t))):a.push(void 0);return a},t}(a),n.Arr=r=function(e){function t(e){this.objects=e||[],t.__super__.constructor.call(this)}return Mt(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+=ot,t=it.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++)o=i[t],r.push(o.compileToFragments(e,O));return r}.call(this),r=s=0,a=n.length;a>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return yt(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,n=0,i=r.length;i>n;n++)if(t=r[n],t.assigns(e))return!0;return!1},t}(a),n.Class=l=function(e){function t(e,n,i){this.variable=e,this.parent=n,this.body=null!=i?i:new c,t.__super__.constructor.call(this),this.boundFuncs=[],this.body.classBody=!0}return Mt(t,e),t.prototype.children=["variable","parent","body"],t.prototype.determineName=function(){var e,t;return this.variable?(e=(t=Ct(this.variable.properties))?t instanceof i&&t.name.value:this.variable.base.value,Vt.call(Z,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=_.test(e)&&e)):null},t.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof B&&"this"===t.value?t.value=e:t instanceof p&&(t.klass=e,t.bound)?t.context=e:void 0})},t.prototype.addBoundFunctions=function(e){var t,n,r,o,s;for(s=this.boundFuncs,r=0,o=s.length;o>r;r++)t=s[r],n=new lt(new B("this"),[new i(t)]).compile(e),this.ctor.body.unshift(new B(""+n+" = "+$t("bind")+"("+n+", this)"))},t.prototype.addProperties=function(e,t,n){var r,s,a,c,u;return u=e.base.properties.slice(0),a=function(){var e;for(e=[];r=u.shift();)r instanceof o&&(s=r.variable.base,delete r.context,c=r.value,"constructor"===s.value?(this.ctor&&r.error("cannot define more than one constructor in a class"),c.bound&&r.error("cannot define a constructor as a bound function"),c instanceof p?r=this.ctor=c:(this.externalCtor=n.classScope.freeVariable("class"),r=new o(new B(this.externalCtor),c))):r.variable["this"]?c["static"]=!0:(r.variable=new lt(new B(t),[new i(new B("prototype")),new i(s)]),c instanceof p&&c.bound&&(this.boundFuncs.push(s),c.bound=!1))),e.push(r);return e}.call(this),ft(a)},t.prototype.walkBody=function(e,n){return this.traverseChildren(!1,function(i){return function(r){var s,a,u,l,h,p,d;if(s=!0,r instanceof t)return!1;if(r instanceof c){for(d=a=r.expressions,u=h=0,p=d.length;p>h;u=++h)l=d[u],l instanceof o&&l.variable.looksStatic(e)?l.value["static"]=!0:l instanceof lt&&l.isObject(!0)&&(s=!1,a[u]=i.addProperties(l,e,n));r.expressions=a=bt(a)}return s&&!(r instanceof t)}}(this))},t.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof f||n instanceof lt&&n.isString();)++t;return this.directives=e.splice(0,t)},t.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new p,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},t.prototype.compileNode=function(e){var t,n,i,r,s,a,l,h,d;return(r=this.body.jumps())&&r.error("Class bodies cannot contain pure statements"),(n=this.body.contains(kt))&&n.error("Class bodies shouldn't reference arguments"),l=this.determineName()||"_Class",l.reserved&&(l="_"+l),a=new B(l),i=new p([],c.wrap([this.body])),t=[],e.classScope=i.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(l),this.walkBody(l,e),this.ensureConstructor(l),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(a),this.parent&&(h=new B(e.classScope.freeVariable("super",!1)),this.body.expressions.unshift(new y(a,h)),i.params.push(new X(h)),t.push(this.parent)),(d=this.body.expressions).unshift.apply(d,this.directives),s=new q(new u(i,t)),this.variable&&(s=new o(this.variable,s)),s.compileToFragments(e)},t}(a),n.Assign=o=function(e){function t(e,n,i,r){var o,s,a;this.variable=e,this.value=n,this.context=i,t.__super__.constructor.call(this),this.param=r&&r.param,this.subpattern=r&&r.subpattern,a=s=this.variable.unwrapAll().value,o=Vt.call(Z,a)>=0,o&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"'),this.icedlocal=r&&r.icedlocal}return Mt(t,e),t.prototype.children=["variable","value"],t.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===P&&null!=this.context&&Vt.call(this.context,"?")>=0},t.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},t.prototype.unfoldSoak=function(e){return Ot(e,this,"variable")},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h;if(this.value.icedStatementAssertion(),i=this.variable instanceof lt){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 n=this.variable.compileToFragments(e,O),o=yt(n),this.context||(a=this.variable.unwrapAll(),a.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof a.hasProperties?a.hasProperties():void 0)||(this.param||this.icedlocal?e.scope.add(o,"var",this.icedlocal):e.scope.find(o))),this.value instanceof p&&(r=M.exec(o))&&(r[2]&&(this.value.klass=r[1]),this.value.name=null!=(l=null!=(h=r[3])?h:r[4])?l:r[5]),s=this.value.compileToFragments(e,O),"object"===this.context?n.concat(this.makeCode(": "),s):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),s),O>=e.level?t:this.wrapInBraces(t))},t.prototype.compilePatternMatch=function(e){var n,r,o,s,a,c,u,l,h,p,d,f,m,w,g,y,v,k,C,F,T,L,x,N,E,D,A,I;if(y=e.level===P,k=this.value,f=this.variable.base.objects,!(m=f.length))return o=k.compileToFragments(e),e.level>=$?this.wrapInBraces(o):o;if(l=this.variable.isObject(),y&&1===m&&!((d=f[0])instanceof it))return d instanceof t?(x=d,N=x.variable,u=N.base,d=x.value):u=l?d["this"]?d.properties[0].name:d:new B(0),n=_.test(u.unwrap().value||0),k=new lt(k),k.properties.push(new(n?i:S)(u)),E=d.unwrap().value,Vt.call(z,E)>=0&&d.error("assignment to a reserved word: "+d.compile(e)),new t(d,k,null,{param:this.param}).compileToFragments(e,P);for(C=k.compileToFragments(e,O),F=yt(C),r=[],s=!1,(!_.test(F)||this.variable.assigns(F))&&(r.push([this.makeCode(""+(w=e.scope.freeVariable("ref"))+" = ")].concat(Ut.call(C))),C=[this.makeCode(w)],F=w),c=T=0,L=f.length;L>T;c=++T){if(d=f[c],u=c,l&&(d instanceof t?(D=d,A=D.variable,u=A.base,d=D.value):d.base instanceof q?(I=new lt(d.unwrapAll()).cacheReference(e),d=I[0],u=I[1]):u=d["this"]?d.properties[0].name:d),!s&&d instanceof it)p=d.name.unwrap().value,d=d.unwrap(),v=""+m+" <= "+F+".length ? "+$t("slice")+".call("+F+", "+c,(g=m-c-1)?(h=e.scope.freeVariable("i"),v+=", "+h+" = "+F+".length - "+g+") : ("+h+" = "+c+", [])"):v+=") : []",v=new B(v),s=""+h+"++";else{if(!s&&d instanceof b){(g=m-c-1)&&(1===g?s=""+F+".length - 1":(h=e.scope.freeVariable("i"),v=new B(""+h+" = "+F+".length - "+g),s=""+h+"++",r.push(v.compileToFragments(e,O))));continue}p=d.unwrap().value,(d instanceof it||d instanceof b)&&d.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeof u?(u=new B(s||u),n=!1):n=l&&_.test(u.unwrap().value||0),v=new lt(new B(F),[new(n?i:S)(u)])}null!=p&&Vt.call(z,p)>=0&&d.error("assignment to a reserved word: "+d.compile(e)),r.push(new t(d,v,null,{param:this.param,subpattern:!0}).compileToFragments(e,O))}return y||this.subpattern||r.push(C),a=this.joinFragmentArrays(r,", "),O>e.level?a:this.wrapInBraces(a)},t.prototype.compileConditional=function(e){var n,i,r,o;return o=this.variable.cacheReference(e),i=o[0],r=o[1],!i.properties.length&&i.base instanceof B&&"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"),Vt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new E(new g(i),r,{type:"if"}).addElse(new t(r,this.value,"=")).compileToFragments(e)):(n=new Y(this.context.slice(0,-1),i,new t(r,this.value,"=")).compileToFragments(e),O>=e.level?n:this.wrapInBraces(n)) +},t.prototype.compileSpecialMath=function(e){var n,i,r;return r=this.variable.cacheReference(e),n=r[0],i=r[1],new t(n,new Y(this.context.slice(0,-1),i,this.value)).compileToFragments(e)},t.prototype.compileSplice=function(e){var t,n,i,r,o,s,a,c,u,l,h,p;return l=this.variable.properties.pop().range,i=l.from,a=l.to,n=l.exclusive,s=this.variable.compile(e),i?(h=this.cacheToCodeFragments(i.cache(e,$)),r=h[0],o=h[1]):r=o="0",a?i instanceof lt&&i.isSimpleNumber()&&a instanceof lt&&a.isSimpleNumber()?(a=a.compile(e)-o,n||(a+=1)):(a=a.compile(e,I)+" - "+o,n||(a+=" + 1")):a="9e9",p=this.value.cache(e,O),c=p[0],u=p[1],t=[].concat(this.makeCode("[].splice.apply("+s+", ["+r+", "+a+"].concat("),c,this.makeCode(")), "),u),e.level>P?this.wrapInBraces(t):t},t}(a),n.Code=p=function(e){function t(e,n,i){t.__super__.constructor.call(this),this.params=e||[],this.body=n||new c,this.icedgen="icedgen"===i,this.icedPassedDeferral=null,this.bound="boundfunc"===i||this.icedgen,this.isGenerator=this.body.contains(function(e){var t;return e instanceof Y&&("yield"===(t=e.operator)||"yield*"===t)})}return Mt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=U,t.prototype.makeScope=function(e){return new et(e,this.body,this)},t.prototype.compileNode=function(e){var n,i,s,a,l,h,p,d,f,m,w,g,y,v,k,_,C,F,T,L,x,N,D,S,A,R,O,$,j,P,M,V,U;if(this.bound&&(null!=($=e.scope.method)?$.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",k=new t([new X(new B(this.context))],new c([this])),i=new u(k,[new B("this")]),i.updateLocationDataIfMissing(this.locationData),i.compileNode(e);for(e.scope=mt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=mt(e,"sharedScope")||this.icedgen,e.scope.icedgen=this.icedgen,e.indent+=ot,delete e.bare,delete e.isExistentialEquals,f=[],a=[],j=this.params,_=0,L=j.length;L>_;_++)d=j[_],d instanceof b||e.scope.parameter(d.asReference(e));for(P=this.params,C=0,x=P.length;x>C;C++)if(d=P[C],d.splat||d instanceof b){for(M=this.params,F=0,N=M.length;N>F;F++)p=M[F].name,d instanceof b||(p["this"]&&(p=p.properties[0].name),p.value&&e.scope.add(p.value,"var",!0));w=new o(new lt(new r(function(){var t,n,i,r;for(i=this.params,r=[],t=0,n=i.length;n>t;t++)p=i[t],r.push(p.asReference(e));return r}.call(this))),new lt(new B("arguments")));break}for(V=this.params,T=0,D=V.length;D>T;T++)d=V[T],d.isComplex()?(y=m=d.asReference(e),d.value&&(y=new Y("?",m,d.value)),a.push(new o(new lt(d.name),y,"=",{param:!0}))):(m=d,d.value&&(h=new B(m.name.value+" == null"),y=new o(new lt(d.name),d.value,"="),a.push(new E(h,y)))),w||f.push(m);for(v=this.body.isEmpty(),w&&a.unshift(w),a.length&&(U=this.body.expressions).unshift.apply(U,a),l=R=0,S=f.length;S>R;l=++R)p=f[l],f[l]=p.compileToFragments(e),e.scope.parameter(yt(f[l]));for(g=[],this.eachParamName(function(e,t){return Vt.call(g,e)>=0&&t.error("multiple parameters named '"+e+"'"),g.push(e)}),this.icedIsAutocbCode&&(v=!1),v||this.noReturn||this.body.makeReturn(),s="function",this.isGenerator&&(s+="*"),this.ctor&&(s+=" "+this.name),s+="(",n=[this.makeCode(s)],l=O=0,A=f.length;A>O;l=++O)p=f[l],l&&n.push(this.makeCode(", ")),n.push.apply(n,p);return n.push(this.makeCode(") {")),this.icedPatchBody(e),this.body.isEmpty()||(n=n.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),n.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ut.call(n)):this.front||e.level>=I?this.wrapInBraces(n):n},t.prototype.eachParamName=function(e){var t,n,i,r,o;for(r=this.params,o=[],n=0,i=r.length;i>n;n++)t=r[n],o.push(t.eachName(e));return o},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t.prototype.icedPatchBody=function(e){var t,n,r,s;return this.icedFoundArguments&&this.icedNodeFlag&&e.scope.assign("_arguments","arguments"),this.icedNodeFlag&&!this.icedgen&&(this.icedPassedDeferral=e.scope.freeVariable(vt["const"].passed_deferral),n=new lt(new B(this.icedPassedDeferral)),t=new lt(new B(vt["const"].ns)),t.add(new i(new lt(new B(vt["const"].findDeferral)))),s=new u(t,[new lt(new B("arguments"))]),this.body.unshift(new o(n,s))),this.icedNodeFlag&&!this.icedgen?(r=this.icedIsAutocbCode?vt["const"].autocb:vt["const"].k_noop,s=new lt(new B(r)),n=new lt(new B(vt["const"].k)),this.body.unshift(new o(n,s,null,{icedlocal:!0}))):void 0},t.prototype.icedWalkAst=function(e,n){var i,r,o,s,a,c,u,l;for(this.icedParentAwait=e,r=n.foundAutocb,i=n.currFunc,s=n.foundArguments,o=n.foundAwaitFunc,n.foundAutocb=!1,n.foundArguments=!1,n.foundAwaitFunc=!1,n.currFunc=this,l=this.params,c=0,u=l.length;u>c;c++)if(a=l[c],a.name instanceof B&&a.name.value===vt["const"].autocb){n.foundAutocb=!0;break}return t.__super__.icedWalkAst.call(this,e,n),this.icedHasAutocbFlag=r,this.icedIsAutocbCode=n.foundAutocb,this.icedFoundArguments=n.foundArguments,n.foundAwaitFunc=o,n.foundArguments=s,n.foundAutocb=r,n.currFunc=i,!1},t.prototype.icedWalkAstLoops=function(){return t.__super__.icedWalkAstLoops.call(this,!1)&&(this.icedLoopFlag=!0),!1},t.prototype.icedWalkCpsPivots=function(){return t.__super__.icedWalkCpsPivots.call(this),this.icedCpsPivotFlag=!1},t.prototype.icedTraceName=function(){var e;return e=[],this.klass&&e.push(this.klass),this.name&&e.push(this.name),e.join(".")},t}(a),n.Param=X=function(e){function t(e,n,i){var r;this.name=e,this.value=n,this.splat=i,t.__super__.constructor.call(this),r=e=this.name.unwrapAll().value,Vt.call(Z,r)>=0&&this.name.error('parameter name "'+e+'" is not allowed')}return Mt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,O)},t.prototype.asReference=function(e){var t;return this.reference?this.reference:(t=this.name,t["this"]?(t=t.properties[0].name,t.value.reserved&&(t=new B(e.scope.freeVariable(t.value)))):t.isComplex()&&(t=new B(e.scope.freeVariable("arg"))),t=new lt(t),this.splat&&(t=new it(t)),t.updateLocationDataIfMissing(this.locationData),this.reference=t)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,i,r,s,a,c;if(null==t&&(t=this.name),n=function(t){var n;return n=t.properties[0].name,n.value.reserved?void 0:e(n.value,n)},t instanceof B)return e(t.value,t);if(t instanceof lt)return n(t);for(c=t.objects,s=0,a=c.length;a>s;s++)r=c[s],r instanceof o?this.eachName(e,r.value.unwrap()):r instanceof it?(i=r.name.unwrap(),e(i.value,i)):r instanceof lt?r.isArray()||r.isObject()?this.eachName(e,r.base):r["this"]?n(r):e(r.base.value,r.base):r instanceof b||r.error("illegal parameter "+r.compile())},t}(a),n.Splat=it=function(e){function t(e){t.__super__.constructor.call(this),this.name=e.compile?e:new B(e)}return Mt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=pt,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,u,l,h,p,d;for(l=-1;(h=n[++l])&&!(h instanceof t););if(l>=n.length)return[];if(1===n.length)return h=n[0],c=h.compileToFragments(e,O),i?c:[].concat(h.makeCode(""+$t("slice")+".call("),c,h.makeCode(")"));for(r=n.slice(l),u=p=0,d=r.length;d>p;u=++p)h=r[u],s=h.compileToFragments(e,O),r[u]=h instanceof t?[].concat(h.makeCode(""+$t("slice")+".call("),s,h.makeCode(")")):[].concat(h.makeCode("["),s,h.makeCode("]"));return 0===l?(h=n[0],a=h.joinFragmentArrays(r.slice(1),", "),r[0].concat(h.makeCode(".concat("),a,h.makeCode(")"))):(o=function(){var t,i,r,o;for(r=n.slice(0,l),o=[],t=0,i=r.length;i>t;t++)h=r[t],o.push(h.compileToFragments(e,O));return o}(),o=n[0].joinFragmentArrays(o,", "),a=n[l].joinFragmentArrays(r,", "),[].concat(n[0].makeCode("["),o,n[l].makeCode("].concat("),a,Ct(n).makeCode(")")))},t.prototype.icedToSlot=function(e){return new nt(e,new lt(this.name),null,!0)},t}(a),n.Expansion=b=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isComplex=U,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}(a),n.While=ht=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 Mt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=pt,t.prototype.isLoop=pt,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(i=0,r=e.length;r>i;i++)if(n=e[i],t=n.jumps({loop:!0}))return t;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return this.condition.icedStatementAssertion(),this.icedNodeFlag?this.icedCompileIced(e):(e.indent+=ot,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 E(new q(this.guard).invert(),new B("continue"))):this.guard&&(n=c.wrap([new E(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,P),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,j),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&(this.icedHasAutocbFlag?(t.push(this.makeCode("\n"+this.tab+vt["const"].autocb+"("+i+");")),t.push(this.makeCode("\n"+this.tab+"return;"))):t.push(this.makeCode("\n"+this.tab+"return "+i+";"))),t)},t.prototype.icedWrap=function(e){var t,n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,S;return a=e.condition,t=e.body,_=[],N=new lt(new B(vt["const"].t_while)),b=new lt(new B(vt["const"].k)),y=new X(new B(vt["const"].k)),r=new lt(new B(vt["const"].b_while)),n=new o(r,b,null,{icedlocal:!0}),w=new lt(new B(vt["const"].c_while)),d=new c([new u(N,[b])]),e.step&&d.unshift(e.step),m=new p([],d),S=new lt(new B(vt["const"].ns)),S.add(new i(new lt(new B(vt["const"].trampoline)))),h=new c([new u(S,[m])]),f=new p([],h,"icedgen"),l=new o(w,f,null,{icedlocal:!0}),k=new lt(new B(vt["const"].n_while)),v=new o(k,w,null,{icedlocal:!0}),s=new E(a.invert(),new c([new u(r,[])])),e.guard?(h=new c([new u(w,[])]),g=new E(e.guard,t),g.addElse(h),s.addElse(new c([e.pre_body,g]))):s.addElse(new c([e.pre_body,t])),T=new c([n,l,v,s]),x=new p([y],T,"icedgen"),C=new o(N,x,null,{icedlocal:!0}),L=new u(N,[b]),D=[],e.init&&(D=D.concat(e.init)),D=D.concat([C,L]),F=new c(D)},t.prototype.icedCallContinuation=function(){return this.body.icedThreadReturn(new N(vt["const"].n_while))},t.prototype.icedCompileIced=function(e){var t,n;return n={condition:this.condition,body:this.body,guard:this.guard},t=this.icedWrap(n),t.compileNode(e)},t}(a),n.Op=Y=function(e){function t(e,i,r,o){if(t.__super__.constructor.call(this),"in"===e)return new D(i,r);if("do"===e)return this.generateDo(i);if("new"===e){if(i instanceof u&&!i["do"]&&!i.isNew)return i.newInstance();(i instanceof p&&i.bound||i["do"])&&(i=new q(i))}return this.operator=n[e]||e,this.first=i,this.second=r,this.flip=!!o,this}var n,r;return Mt(t,e),n={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},r={"!==":"===","===":"!=="},t.prototype.children=["first","second"],t.prototype.isSimpleNumber=U,t.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},t.prototype.isUnary=function(){return!this.second},t.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e))||this.first.isComplex()},t.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},t.prototype.invert=function(){var e,n,i,o,s;if(this.isChainable()&&this.first.isChainable()){for(e=!0,n=this;n&&n.operator;)e&&(e=n.operator in r),n=n.first;if(!e)return new q(this).invert();for(n=this;n&&n.operator;)n.invert=!n.invert,n.operator=r[n.operator],n=n.first;return this}return(o=r[this.operator])?(this.operator=o,this.first.unwrap()instanceof t&&this.first.invert(),this):this.second?new q(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof t&&("!"===(s=i.operator)||"in"===s||"instanceof"===s)?i:new t("!",this)},t.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&Ot(e,this,"first")},t.prototype.generateDo=function(e){var t,n,i,r,s,a,c,l;for(r=[],n=e instanceof o&&(s=e.value.unwrap())instanceof p?s:e,l=n.params||[],a=0,c=l.length;c>a;a++)i=l[a],i.value?(r.push(i.value),delete i.value):r.push(i);return t=new u(e,r),t["do"]=!0,t},t.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)&&(s=this.first.unwrapAll().value,Vt.call(Z,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),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,$),r=this.second.compileToFragments(e,$),t=[].concat(i,this.makeCode(" "+this.operator+" "),r),$>=e.level?t:this.wrapInBraces(t)}},t.prototype.compileChain=function(e){var t,n,i,r;return r=this.first.second.cache(e),this.first.second=r[0],i=r[1],n=this.first.compileToFragments(e,$),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),i.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,$)),this.wrapInBraces(t)},t.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new B(e.scope.freeVariable("ref")),t=new q(new o(n,this.first))):(t=this.first,n=t),new E(new g(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},t.prototype.compileUnary=function(e){var n,i,r;return i=[],n=this.operator,i.push([this.makeCode(n)]),"!"===n&&this.first instanceof g?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=I?new q(this).compileToFragments(e):(r="+"===n||"-"===n,("new"===n||"typeof"===n||"delete"===n||r&&this.first instanceof t&&this.first.operator===n)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof t||"new"===n&&this.first.isStatement(e))&&(this.first=new q(this.first)),i.push(this.first.compileToFragments(e,$)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},t.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Vt.call(Object.keys(this.first),"expression")>=0?null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,$)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,$)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},t.prototype.compilePower=function(e){var t;return t=new lt(new B("Math"),[new i(new B("pow"))]),new u(t,[this.first,this.second]).compileToFragments(e)},t.prototype.compileFloorDivision=function(e){var n,r;return r=new lt(new B("Math"),[new i(new B("floor"))]),n=new t("/",this.first,this.second),new u(r,[n]).compileToFragments(e)},t.prototype.compileModulo=function(e){var t;return t=new lt(new B($t("modulo"))),new u(t,[this.first,this.second]).compileToFragments(e)},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},t.prototype.icedWrapContinuation=function(){return this.icedCallContinuationFlag},t}(a),n.In=D=function(e){function t(e,n){this.object=e,this.array=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["object","array"],t.prototype.invert=V,t.prototype.compileNode=function(e){var t,n,i,r,o;if(this.array instanceof lt&&this.array.isArray()&&this.array.base.objects.length){for(o=this.array.base.objects,i=0,r=o.length;r>i;i++)if(n=o[i],n instanceof it){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,u,l,h,p;for(l=this.object.cache(e,$),s=l[0],o=l[1],h=this.negated?[" !== "," && "]:[" === "," || "],t=h[0],n=h[1],a=[],p=this.array.base.objects,i=c=0,u=p.length;u>c;i=++c)r=p[i],i&&a.push(this.makeCode(n)),a=a.concat(i?o:s,this.makeCode(t),r.compileToFragments(e,I));return $>e.level?a:this.wrapInBraces(a)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return r=this.object.cache(e,O),i=r[0],n=r[1],t=[].concat(this.makeCode($t("indexOf")+".call("),this.array.compileToFragments(e,O),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),yt(i)===yt(n)?t:(t=i.concat(this.makeCode(", "),t),O>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(a),n.Slot=nt=function(e){function t(e,n,i,r){t.__super__.constructor.call(this),this.index=e,this.value=n,this.suffix=i,this.splat=r,this.access=null}return Mt(t,e),t.prototype.addAccess=function(e){return this.access=e,this},t.prototype.children=["value","suffix"],t}(a),n.Defer=w=function(e){function t(e,n){var i,r;this.lineno=n,t.__super__.constructor.call(this),this.slots=bt(function(){var t,n,o;for(o=[],r=t=0,n=e.length;n>t;r=++t)i=e[r],o.push(i.icedToSlot(r));return o}()),this.params=[],this.vars=[],this.custom=!1}return Mt(t,e),t.prototype.children=["slots"],t.prototype.setCustom=function(){return this.custom=!0,this},t.prototype.newParam=function(){var e;return e=""+vt["const"].slot+"_"+(this.params.length+1),this.params.push(new X(new B(e))),new lt(new B(e))},t.prototype.makeAssignFn=function(e){var t,n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F;if(0===this.slots.length)return null;for(s=[],n=[],d=0,F=this.slots,_=0,C=F.length;C>_;_++)v=F[_],d=v.index,t=new lt(new B("arguments")),f=new lt(new B(d)),v.splat?(h=new lt(new B($t("slice"))),h.add(new i(new lt(new B("call")))),l=new u(h,[t,f]),k=v.value,this.vars.push(k),r=new o(k,l)):(t.add(new S(f)),v.access&&t.add(v.access),v.suffix?(n.push(v.value),k=this.newParam(),v.suffix instanceof S?(y=new S(this.newParam()),n.push(v.suffix.index)):y=v.suffix,k.add(y)):(w=v.value.compile(e,P),"_"===w?(k=new lt(new B(vt["const"].deferrals)),k.add(new i(new lt(new B(vt["const"].retslot))))):(k=v.value,this.vars.push(k))),r=new o(k,t)),s.push(r);return a=new c(s),m=new p([],a,"icedgen"),g=new c([new J(m)]),b=new p(this.params,g,"icedgen"),l=new u(b,n)},t.prototype.transform=function(e){var t,n,r,s,a,c,l,h,p,d;return d=new lt(new B(vt["const"].defer_method)),this.custom?c=d:(c=new lt(new B(vt["const"].deferrals)),c.add(new i(d))),n=[],(t=this.makeAssignFn(e))&&n.push(new o(new lt(new B(vt["const"].assign_fn)),t,"object")),h=new lt(new B(vt["const"].lineno)),p=new lt(new B(this.lineno)),l=new o(h,p,"object"),n.push(l),this.custom&&(s=new lt(new B(vt["const"].context)),a=new lt(new B(vt["const"].deferrals)),r=new o(s,a,"object"),n.push(r)),e=new G(n),new u(c,[new lt(e)])},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;for(t=this.transform(e),a=this.vars,o=0,s=a.length;s>o;o++)r=a[o],n=r.compile(e,O),i=e.scope,i.find(n,"var");return t.compileNode(e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,n.foundDefer=!0,this.parentFunc=n.currFunc,t.__super__.icedWalkAst.call(this,e,n)},t}(a),Dt=function(e){return'"'+e.replace(/\\/g,"\\\\")+'"'},Et=function(e){return'"'+e.replace(/["']/g,"")+'"'},St=function(){return Dt(Nt.join(t,"..",".."))},n.Await=s=function(e){function t(e){this.body=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.transform=function(e){var t,n,r,s,a,c,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T;return r=this.body,k=vt["const"].deferrals,e.scope.add(k,"var"),b=new lt(new B(k)),h=new lt(new B(vt["const"].ns)),h.add(new i(new lt(new B(vt["const"].Deferrals)))),n=[],(v=null!=(F=this.parentFunc)?F.icedPassedDeferral:void 0)&&(c=new lt(new B(vt["const"].parent)),l=new lt(new B(v)),a=new o(c,l,"object"),n.push(a)),null!=e.filename&&(d=new lt(new B(vt["const"].filename)),f=new lt(new B(Dt(e.filename))),p=new o(d,f,"object"),n.push(p)),(v=null!=(T=this.parentFunc)?T.icedTraceName():void 0)&&(w=new lt(new B(vt["const"].funcname)),g=new lt(new B(Et(v))),m=new o(w,g,"object"),n.push(m)),C=new G(n,!0),s=new u(h,[new lt(new B(vt["const"].k)),C]),_=new Y("new",s),t=new o(b,_),r.unshift(t),y=b.copy().add(new i(new lt(new B(vt["const"].fulfill)))),s=new u(y,[]),r.push(s),this.body=r},t.prototype.children=["body"],t.prototype.isStatement=function(){return pt},t.prototype.makeReturn=st,t.prototype.compileNode=function(e){return this.transform(e),this.body.compileNode(e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,this.parentFunc=n.currFunc,e=e||this,this.icedParentAwait=e,t.__super__.icedWalkAst.call(this,e,n),this.icedNodeFlag=n.foundAwaitFunc=n.foundAwait=!0},t}(a),x=function(e){function t(e,n){this.foundDefer=e,this.foundAwait=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.compileNode=function(e){var n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D;if(this.expressions=[],_=e.runtime?e.runtime:e.bare?"none":this.foundDefer?"node":"none",!e.runtime||this.foundDefer||e.runforce||(_="none"),F=!1,T=null,d=null,d=function(){switch(_){case"inline":case"window":return"window"===_&&(F=!0),F&&(T=new lt(new B(_))),A.generate(T?T.copy():null);case"node":case"browserify":case"interp":return f="interp"===_,y=f?St():"'iced-runtime'",r=vt["const"].ns,h=new B(y),n=new i(new B(r)),v=new lt(new B("require")),a=new u(v,[h]),l=new lt(a),f&&l.add(n),b=new lt(new B(vt["const"].ns)),new o(b,l);case"none":return null;default:throw SyntaxError("unexpected flag IcedRuntime "+_)}}(),d&&this.push(d),this.foundAwait){for(k=new p([],new c([])),g=[],D=[vt["const"].k_noop,vt["const"].k],L=0,N=D.length;N>L;L++)m=D[L],C=new lt(new B(m)),T&&(w=T.copy(),w.add(new i(C)),C=w),g.push(C);for(s=k,x=0,E=g.length;E>x;x++)_=g[x],s=new o(_,s);this.push(s)}return this.isEmpty()?[]:t.__super__.compileNode.call(this,e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,t.__super__.icedWalkAst.call(this,e,n)},t}(c),n.Try=ct=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return Mt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=pt,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,i,r;return e.indent+=ot,r=this.attempt.compileToFragments(e,P),t=this.recovery?(i=new B("_error"),this.errorVariable?this.recovery.unshift(new o(this.errorVariable,i)):void 0,[].concat(this.makeCode(" catch ("),i.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,P),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch (_error) {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,P),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(""+this.tab+"try {\n"),r,this.makeCode("\n"+this.tab+"}"),t,n)},t}(a),n.Throw=at=function(e){function t(e){this.expression=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=pt,t.prototype.jumps=U,t.prototype.makeReturn=st,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(a),n.Existence=g=function(e){function t(e){this.expression=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["expression"],t.prototype.invert=V,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,$),_.test(i)&&!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(R>=e.level?i:"("+i+")")]},t}(a),n.Parens=q=function(e){function t(e){this.body=e,t.__super__.constructor.call(this)}return Mt(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 lt&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,j),t=$>e.level&&(n instanceof Y||n instanceof u||n instanceof v&&n.returns),t?i:this.wrapInBraces(i))},t}(a),n.For=v=function(e){function t(e,n){var i;t.__super__.constructor.call(this),this.source=n.source,this.guard=n.guard,this.step=n.step,this.name=n.name,this.index=n.index,this.body=c.wrap([e]),this.own=!!n.own,this.object=!!n.object,this.object&&(i=[this.index,this.name],this.name=i[0],this.index=i[1]),this.index instanceof lt&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof lt&&this.source.base instanceof K&&!this.source.properties.length,this.pattern=this.name instanceof lt,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 Mt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,i,r,s,a,u,l,h,p,d,f,m,w,g,b,y,v,k,C,F,T,L,x,N,D,S,A,I,R,$,j,M,V;return t=c.wrap([this.body]),v=null!=(M=Ct(t.expressions))?M.jumps():void 0,v&&v instanceof J&&(this.returns=!1),S=this.range?this.source.base:this.source,D=e.scope,this.pattern||(C=this.name&&this.name.compile(e,O)),w=this.index&&this.index.compile(e,O),C&&!this.pattern&&D.find(C),w&&D.find(w),this.returns&&(N=D.freeVariable("results")),g=this.object&&w||D.freeVariable("i"),b=this.range&&C||w||g,y=b!==g?""+b+" = ":"",this.step&&!this.range&&(V=this.cacheToCodeFragments(this.step.cache(e,O)),A=V[0],R=V[1],I=R.match(W)),this.pattern&&(C=g),j="",d="",u="",f=this.tab+ot,S.icedStatementAssertion(),this.icedNodeFlag?this.icedCompileIced(e,{stepVar:R,body:t,kvar:b,guard:this.guard}):(this.range?p=S.compileToFragments(Tt(e,{index:g,name:C,step:this.step})):($=this.source.compile(e,O),!C&&!this.own||_.test($)||(u+=""+this.tab+(T=D.freeVariable("ref"))+" = "+$+";\n",$=T),C&&!this.pattern&&(F=""+C+" = "+$+"["+b+"]"),this.object||(A!==R&&(u+=""+this.tab+A+";\n"),this.step&&I&&(h=0>xt(I[0]))||(k=D.freeVariable("len")),s=""+y+g+" = 0, "+k+" = "+$+".length",a=""+y+g+" = "+$+".length - 1",i=""+g+" < "+k,r=""+g+" >= 0",this.step?(I?h&&(i=r,s=a):(i=""+R+" > 0 ? "+i+" : "+r,s="("+R+" > 0 ? ("+s+") : "+a+")"),m=""+g+" += "+R):m=""+(b!==g?"++"+g:""+g+"++"),p=[this.makeCode(""+s+"; "+i+"; "+y+m)])),this.returns&&(L=""+this.tab+N+" = [];\n",x=this.icedHasAutocbFlag?"\n"+this.tab+vt["const"].autocb+"("+N+"); return;":"\n"+this.tab+"return "+N+";",t.makeReturn(N)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new E(new q(this.guard).invert(),new B("continue"))):this.guard&&(t=c.wrap([new E(this.guard,t)]))),this.pattern&&t.expressions.unshift(new o(this.name,new B(""+$+"["+b+"]"))),l=[].concat(this.makeCode(u),this.pluckDirectCall(e,t)),F&&(j="\n"+f+F+";"),this.object&&(p=[this.makeCode(""+b+" in "+$)],this.own&&(d="\n"+f+"if (!"+$t("hasProp")+".call("+$+", "+b+")) continue;")),n=t.compileToFragments(Tt(e,{indent:f}),P),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(L||"")+this.tab+"for ("),p,this.makeCode(") {"+d+j),n,this.makeCode(""+this.tab+"}"+(x||""))))},t.prototype.pluckDirectCall=function(e,t){var n,i,r,s,a,c,l,h,d,f,m,w,g,b,y,v;for(i=[],f=t.expressions,a=h=0,d=f.length;d>h;a=++h)r=f[a],r=r.unwrapAll(),r instanceof u&&(l=null!=(m=r.variable)?m.unwrapAll():void 0,(l instanceof p||l instanceof lt&&(null!=(w=l.base)?w.unwrapAll():void 0)instanceof p&&1===l.properties.length&&("call"===(g=null!=(b=l.properties[0].name)?b.value:void 0)||"apply"===g))&&(s=(null!=(y=l.base)?y.unwrapAll():void 0)||l,c=new B(e.scope.freeVariable("fn")),n=new lt(c),l.base&&(v=[n,l],l.base=v[0],n=v[1]),t.expressions[a]=new u(n,r.args),i=i.concat(this.makeCode(this.tab),new o(c,s).compileToFragments(e,P),this.makeCode(";\n"))));return i},t.prototype.icedCompileIced=function(e,n){var s,a,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,A,I,R,$,j,P,M,V,U,H,G,X,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,ht,pt,dt,ft;return w=n.body,g=null,F=[],st=null,it=e.scope,Z=new c([]),this.object?(et=it.freeVariable("ref"),tt=new lt(new B(et)),s=new o(tt,this.source),R=it.freeVariable("keys"),P=new lt(new B(R)),D=it.freeVariable("k"),A=new B(D),I=new lt(A),y=new lt(new r),G=new c([I]),z={object:!0,name:A,source:tt},X=new t(G,z),a=new o(P,X),C=it.freeVariable("i"),N=new lt(new B(C)),u=new o(N,new lt(new B(0))),F=[s,a,u],j=P.copy(),j.add(new i(new lt(new B("length")))),g=new Y("<",N,j),st=new Y("++",N),this.name&&(rt=tt.copy(),rt.add(new S(this.index)),h=new o(this.name,rt),Z.unshift(h)),$=P.copy(),$.add(new S(N)),l=new o(this.index,$),Z.unshift(l)):this.range?(this.name||(this.name=new B(n.kvar)),m=new lt(new B(e.scope.freeVariable("begin"))),v=new lt(new B(e.scope.freeVariable("end"))),Q=new lt(new B(e.scope.freeVariable("positive"))),ct=new lt(new B(e.scope.freeVariable("step"))),this.step?(d=new o(ct,this.step),p=new o(Q,new Y(">",ct,new B(0)),null,{icedlocal:!0})):(L=new Y(">",v,m),d=new E(L,new o(ct,new B(1))),d.addElse(new o(ct,new B(-1))),p=new o(Q,L,null,{icedlocal:!0})),st=new Y("+=",this.name,ct),k=this.source.base.exclusive?"=":"",J=new Y("&&",new Y("===",Q,new B(!0)),new Y(">"+k,this.name,this.source.base.to)),K=new Y("&&",new Y("===",Q,new B(!1)),new Y("<"+k,this.name,this.source.base.to)),g=new Y("||",new q(J),new q(K)),g=g.invert(),F=[new o(this.name,this.source.base.from),new o(m,this.source.base.from,null,{icedlocal:!0}),new o(v,this.source.base.to,null,{icedlocal:!0}),d,p]):!this.range&&this.name&&(M=new lt(new B(n.kvar)),V=it.freeVariable("len"),et=it.freeVariable("ref"),tt=new lt(new B(et)),H=new lt(new B(V)),s=new o(tt,this.source),U=tt.copy().add(new i(new lt(new B("length")))),a=new o(H,U),F=[s,a],this.step?(ft=this.cacheToCodeFragments(this.step.cache(e,O)),dt=ft[0],ut=ft[1],at=ut.match(W),at?(st=new o(M,new Y("+",M,this.step)),b=0>xt(at[0]),b?(u=new o(M,new Y("-",H,new B(1))),g=new Y(">=",M,new B(0))):(u=new o(M,new B(0)),g=new Y("<",M,H)),F.push(u)):(ht=it.freeVariable("step"),pt=new lt(new B(ht)),T=new o(pt,new lt(this.step)),x=new Y(">",pt,new B(0)),ot=new E(x,new lt(new B(0))),ot.addElse(new Y("-",H,new B(1))),st=new o(M,new Y("+",M,pt)),u=new o(M,ot),g=new Y("&&",new Y(">=",M,new B(0)),new Y("<",M,H)),F.push(T,u))):(u=new o(M,new B(0)),st=new Y("++",M),g=new Y("<",M,H),F.push(u)),nt=tt.copy(),nt.add(new S(M)),l=new o(this.name,nt),Z.unshift(l)),_=n.guard,f=this.icedWrap({condition:g,body:w,init:F,step:st,guard:_,pre_body:Z}),f.compileNode(e)},t}(ht),n.Switch=rt=function(e){function t(e,n,i){this.subject=e,this.cases=n,this.otherwise=i,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=pt,t.prototype.jumps=function(e){var t,n,i,r,o,s,a,c;for(null==e&&(e={block:!0}),s=this.cases,r=0,o=s.length;o>r;r++)if(a=s[r],n=a[0],t=a[1],i=t.jumps(e))return i; +return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,n=0,i=r.length;i>n;n++)t=r[n],t[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new c([new B("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d,f,m,w;for(this.subject&&this.subject.icedStatementAssertion(),c=e.indent+ot,u=e.indent=c+ot,s=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,j):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],w=bt([r]),h=0,d=w.length;d>h;h++)i=w[h],this.subject||(i=i.invert()),s=s.concat(this.makeCode(c+"case "),i.compileToFragments(e,j),this.makeCode(":\n"));if((n=t.compileToFragments(e,P)).length>0&&(s=s.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;o=this.lastNonComment(t.expressions),o instanceof J||o instanceof B&&o.jumps()&&"debugger"!==o.value||s.push(i.makeCode(u+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&s.push.apply(s,[this.makeCode(c+"default:\n")].concat(Ut.call(this.otherwise.compileToFragments(e,P)),[this.makeCode("\n")])),s.push(this.makeCode(this.tab+"}")),s},t.prototype.icedCallContinuation=function(){var e,t,n,i,r,o;for(r=this.cases,n=0,i=r.length;i>n;n++)o=r[n],t=o[0],e=o[1],e.icedThreadReturn();return null!=this.otherwise?this.otherwise.icedThreadReturn():this.otherwise=new c([new N])},t}(a),n.If=E=function(e){function t(e,n,i){this.body=n,null==i&&(i={}),t.__super__.constructor.call(this),this.condition="unless"===i.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=i.soak}return Mt(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)===P||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.condition.icedStatementAssertion(),this.isStatement(e||this.icedIsCpsPivot())?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new c([new B("void 0")]))),this.body&&(this.body=new c([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new c([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof c?e:new c([e])},t.prototype.compileStatement=function(e){var n,i,r,o,s,a,c;return r=mt(e,"chainChild"),(s=mt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+ot,o=this.condition.compileToFragments(e,j),i=this.ensureBlock(this.body).compileToFragments(Tt(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,P))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Tt(e,{indent:c}),P),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,R),n=this.bodyNode().compileToFragments(e,O),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,O):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=R?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t.prototype.icedCallContinuation=function(){return this.elseBody?(this.elseBody.icedThreadReturn(),this.isChain=!1):this.addElse(new N),this.body.icedThreadReturn()},t}(a),h={wrap:function(e,t,n){var r,o,s,a,l;return e.jumps()?e:(a=new p([],c.wrap([e])),r=[],o=e.contains(this.isLiteralArguments),o&&e.classBody&&o.error("Class bodies shouldn't reference arguments"),(o||e.contains(this.isLiteralThis))&&(l=new B(o?"apply":"call"),r=[new B("this")],o&&r.push(new B("arguments")),a=new lt(a,[new i(l)])),a.noReturn=n,s=new u(a,r),t?c.wrap([s]):s)},isLiteralArguments:function(e){return e instanceof B&&"arguments"===e.value&&!e.asKey},isLiteralThis:function(e){return e instanceof B&&"this"===e.value&&!e.asKey||e instanceof p&&e.bound||e instanceof u&&e.isSuper}},Ot=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new lt(t),i},m={wrap:function(e,t,n,i){var r,o,s,a,l,h;return h=new p([new X(new B(vt["const"].k))],c.wrap([e]),"icedgen"),r=[],n&&(n.bindName(i),r.push(n)),o=c.wrap([t]),a=(l=o.icedGetSingle())&&l instanceof N&&l.canInline()?l.extractFunc():new p(r,o,"icedgen"),s=new u(h,[a]),new c([s])}},N=function(e){function t(e,n){this.func=e,null==n&&(n=null),t.__super__.constructor.call(this),this.func||(this.func=vt["const"].k),this.value=n}return Mt(t,e),t.prototype.children=["value"],t.prototype.assignValue=function(e){return this.value=e},t.prototype.canInline=function(){return!this.value||this.value instanceof L},t.prototype.literalFunc=function(){return new B(this.func)},t.prototype.extractFunc=function(){return new lt(this.literalFunc())},t.prototype.compileNode=function(e){var t,n,i;return n=this.literalFunc(),i=e.level===P?this.value?new c([this.value,new u(n)]):new u(n):(t=this.value?[this.value]:[],new u(n,t)),i.compileNode(e)},t}(a),L=function(e){function t(){t.__super__.constructor.call(this,null,null,!1)}return Mt(t,e),t.counter=0,t.prototype.bindName=function(e){var n;return n=""+e.scope.freeVariable(vt["const"].param,!1)+"_"+t.counter++,this.name=new B(n)},t.prototype.compile=function(e){return this.name||this.bindName(e),t.__super__.compile.call(this,e)},t}(X),A={generate:function(e){var t,n,r,s,a,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,S,A,I,R,O,$,j,P,M,V,U,W,q,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,ht,pt,dt,ft,mt,wt,gt,bt,yt;return q=new B("continuation"),m=new B("count"),f=new lt(new B(vt["const"].Deferrals)),tt=new lt(new B(vt["const"].ns)),e&&(e.add(new i(tt)),tt=e),z=new lt(new B("this")),z.add(new i(q)),st=new X(z),w=new lt(new B("this")),w.add(new i(m)),at=new lt(new B("this")),at.add(new i(new lt(new B(vt["const"].retslot)))),t=new o(w,new lt(new B(1))),n=new o(at,H()),k=[st],b=new c([t,n]),y=new p(k,b),v=new lt(new B("constructor")),g=new o(v,y),j=new u(z,[at]),O=new c([j]),_=new Y("--",w),$=new Y("!",_),Z=new E($,O),mt=new c([Z]),gt=new p([],mt),yt=new lt(new B(vt["const"].fulfill)),ft=new o(yt,gt),P=new Y("++",w),W=new B("inner_params"),N=new B("defer_params"),D=new lt(N),d=new lt(N),r=new B(vt["const"].assign_fn),d.add(new i(r,"soak")),Q=new B("apply"),d.add(new i(Q,"soak")),et=H(),s=new u(d,[et,new lt(W)]),bt=new lt(new B("this")),bt.add(new i(new B(vt["const"].fulfill))),wt=new u(bt,[]),M=new c([s,wt]),U=[new X(W,null,!0)],V=new p(U,M,"boundfunc"),F=new c([P,V]),x=[new X(N)],T=new p(x,F),L=new lt(new B(vt["const"].defer_method)),C=new o(L,T),a=[g,ft,C],rt=new G(a,!0),h=new c([new lt(rt)]),K=new l(null,null,h),J=new o(f,K,"object"),ot=new c([H()]),I=new p([],ot),R=new lt(new B(vt["const"].findDeferral)),A=new o(R,I,"object"),S=new B("_fn"),ut=new c([new u(new lt(S),[])]),dt=[new X(S)],ht=new p(dt,ut),pt=new lt(new B(vt["const"].trampoline)),ct=new o(pt,ht,"object"),nt=new G([J,A,ct],!0),it=new lt(nt),new o(tt,it)}},ut={"extends":function(){return"function(child, parent) { for (var key in parent) { if ("+$t("hasProp")+".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"}},P=1,j=2,O=3,R=4,$=5,I=6,ot=" ",C="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",_=RegExp("^"+C+"$"),Q=/^[+-]?\d+$/,k=/^[+-]?0x[\da-f]+/i,W=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,M=RegExp("^("+C+")(\\.prototype)?(?:\\.("+C+")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$"),T=/^['"]/,F=/^\//,$t=function(e){var t;return t="__"+e,et.root.assign(t,ut[e]()),t},Lt=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},xt=function(e){return null==e?0:e.match(k)?parseInt(e,16):parseFloat(e)},kt=function(e){return e instanceof B&&"arguments"===e.value&&!e.asKey},_t=function(e){return e instanceof B&&"this"===e.value&&!e.asKey||e instanceof p&&e.bound||e instanceof u&&e.isSuper},Ot=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new lt(t),i}}).call(this)}).call(this,"/")},{"./helpers":3,"./lexer":5,"./scope":10,"iced-runtime":15,path:18}],7:[function(e,t,n){(function(i){var r=function(){function e(){this.yy={}}var t={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Await:12,AWAIT:13,Block: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,Defer:27,INDENT:28,OUTDENT:29,Identifier:30,IDENTIFIER:31,AlphaNumeric:32,NUMBER:33,STRING:34,Literal:35,JS:36,REGEX:37,DEBUGGER:38,UNDEFINED:39,NULL:40,BOOL:41,Assignable:42,"=":43,AssignObj:44,ObjAssignable:45,":":46,ThisProperty:47,RETURN:48,HERECOMMENT:49,PARAM_START:50,ParamList:51,PARAM_END:52,FuncGlyph:53,"->":54,"=>":55,OptComma:56,",":57,Param:58,ParamVar:59,"...":60,Array:61,Object:62,Splat:63,SimpleAssignable:64,Accessor:65,Parenthetical:66,Range:67,This:68,".":69,"?.":70,"::":71,"?::":72,Index:73,INDEX_START:74,IndexValue:75,INDEX_END:76,INDEX_SOAK:77,Slice:78,"{":79,AssignList:80,"}":81,CLASS:82,EXTENDS:83,OptFuncExist:84,Arguments:85,SUPER:86,DEFER:87,FUNC_EXIST:88,CALL_START:89,CALL_END:90,ArgList:91,THIS:92,"@":93,"[":94,"]":95,RangeDots:96,"..":97,Arg:98,SimpleArgs:99,TRY:100,Catch:101,FINALLY:102,CATCH:103,THROW:104,"(":105,")":106,WhileSource:107,WHILE:108,WHEN:109,UNTIL:110,Loop:111,LOOP:112,ForBody:113,FOR:114,ForStart:115,ForSource:116,ForVariables:117,OWN:118,ForValue:119,FORIN:120,FOROF:121,BY:122,SWITCH:123,Whens:124,ELSE:125,When:126,LEADING_WHEN:127,IfBlock:128,IF:129,POST_IF:130,UNARY:131,UNARY_MATH:132,"-":133,"+":134,YIELD:135,FROM:136,"--":137,"++":138,"?":139,MATH:140,"**":141,SHIFT:142,COMPARE:143,LOGIC:144,RELATION:145,COMPOUND_ASSIGN:146,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",13:"AWAIT",28:"INDENT",29:"OUTDENT",31:"IDENTIFIER",33:"NUMBER",34:"STRING",36:"JS",37:"REGEX",38:"DEBUGGER",39:"UNDEFINED",40:"NULL",41:"BOOL",43:"=",46:":",48:"RETURN",49:"HERECOMMENT",50:"PARAM_START",52:"PARAM_END",54:"->",55:"=>",57:",",60:"...",69:".",70:"?.",71:"::",72:"?::",74:"INDEX_START",76:"INDEX_END",77:"INDEX_SOAK",79:"{",81:"}",82:"CLASS",83:"EXTENDS",86:"SUPER",87:"DEFER",88:"FUNC_EXIST",89:"CALL_START",90:"CALL_END",92:"THIS",93:"@",94:"[",95:"]",97:"..",100:"TRY",102:"FINALLY",103:"CATCH",104:"THROW",105:"(",106:")",108:"WHILE",109:"WHEN",110:"UNTIL",112:"LOOP",114:"FOR",118:"OWN",120:"FORIN",121:"FOROF",122:"BY",123:"SWITCH",125:"ELSE",127:"LEADING_WHEN",129:"IF",130:"POST_IF",131:"UNARY",132:"UNARY_MATH",133:"-",134:"+",135:"YIELD",136:"FROM",137:"--",138:"++",139:"?",140:"MATH",141:"**",142:"SHIFT",143:"COMPARE",144:"LOGIC",145:"RELATION",146:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[12,2],[12,2],[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],[14,2],[14,3],[30,1],[32,1],[32,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[19,3],[19,4],[19,5],[44,1],[44,3],[44,5],[44,1],[45,1],[45,1],[45,1],[9,2],[9,1],[10,1],[17,5],[17,2],[53,1],[53,1],[56,0],[56,1],[51,0],[51,1],[51,3],[51,4],[51,6],[58,1],[58,2],[58,3],[58,1],[59,1],[59,1],[59,1],[59,1],[63,2],[64,1],[64,2],[64,2],[64,1],[42,1],[42,1],[42,1],[15,1],[15,1],[15,1],[15,1],[15,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,1],[65,1],[73,3],[73,2],[75,1],[75,1],[62,4],[80,0],[80,1],[80,3],[80,4],[80,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[16,3],[16,3],[16,1],[16,2],[27,2],[84,0],[84,1],[85,2],[85,4],[68,1],[68,1],[47,2],[61,2],[61,4],[96,1],[96,1],[67,5],[78,3],[78,2],[78,2],[78,1],[91,1],[91,3],[91,4],[91,4],[91,6],[98,1],[98,1],[98,1],[99,1],[99,3],[21,2],[21,3],[21,4],[21,5],[101,3],[101,3],[101,2],[26,2],[66,3],[66,5],[107,2],[107,4],[107,2],[107,4],[22,2],[22,2],[22,2],[22,1],[111,2],[111,2],[23,2],[23,2],[23,2],[113,2],[113,2],[115,2],[115,3],[119,1],[119,1],[119,1],[119,1],[117,1],[117,3],[116,2],[116,2],[116,4],[116,4],[116,4],[116,6],[116,6],[24,5],[24,7],[24,4],[24,6],[124,1],[124,2],[126,3],[126,4],[128,3],[128,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[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:this.$=o[a];break;case 7:this.$=o[a];break;case 8:this.$=o[a];break;case 9:this.$=o[a];break;case 10:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 11:this.$=o[a];break;case 12:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Await(o[a]));break;case 13:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Await(i.Block.wrap([o[a]])));break;case 14:this.$=o[a];break;case 15:this.$=o[a];break;case 16:this.$=o[a];break;case 17:this.$=o[a];break;case 18:this.$=o[a];break;case 19:this.$=o[a];break;case 20:this.$=o[a];break;case 21:this.$=o[a];break;case 22:this.$=o[a];break;case 23:this.$=o[a];break;case 24:this.$=o[a];break;case 25:this.$=o[a];break;case 26:this.$=o[a];break;case 27:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Block);break;case 28:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 29:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 30:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 31:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 32:this.$=o[a];break;case 33:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 34:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 35:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 36:this.$=i.addLocationDataFn(s[a],s[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(s[a],s[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(s[a],s[a])(new i.Bool(o[a]));break;case 39:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a]));break;case 40:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a]));break;case 41:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1]));break;case 42:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 43: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"));break;case 44: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"));break;case 45:this.$=o[a];break;case 46:this.$=o[a];break;case 47:this.$=o[a];break;case 48:this.$=o[a];break;case 49:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Return(o[a]));break;case 50:this.$=i.addLocationDataFn(s[a],s[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(s[a],s[a])(new i.Comment(o[a]));break;case 52:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Code(o[a-3],o[a],o[a-1]));break;case 53:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Code([],o[a],o[a-1]));break;case 54:this.$=i.addLocationDataFn(s[a],s[a])("func");break;case 55:this.$=i.addLocationDataFn(s[a],s[a])("boundfunc");break;case 56:this.$=o[a];break;case 57:this.$=o[a];break;case 58:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 59:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 60:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 61:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 62:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 63:this.$=i.addLocationDataFn(s[a],s[a])(new i.Param(o[a]));break;case 64:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Param(o[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Param(o[a-2],o[a]));break;case 66:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 67:this.$=o[a];break;case 68:this.$=o[a];break;case 69:this.$=o[a];break;case 70:this.$=o[a];break;case 71:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Splat(o[a-1]));break;case 72:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 73:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].add(o[a]));break;case 74:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(o[a-1],[].concat(o[a])));break;case 75:this.$=o[a];break;case 76:this.$=o[a];break;case 77:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 78:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 79:this.$=o[a];break;case 80:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 81:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 82:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 83:this.$=o[a];break;case 84:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a]));break;case 85:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a].setCustom()));break;case 86:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a],"soak"));break;case 87:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 88:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 89:this.$=i.addLocationDataFn(s[a],s[a])(new i.Access(new i.Literal("prototype")));break;case 90:this.$=o[a];break;case 91:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 92:this.$=i.addLocationDataFn(s[a-1],s[a])(i.extend(o[a],{soak:!0}));break;case 93:this.$=i.addLocationDataFn(s[a],s[a])(new i.Index(o[a]));break;case 94:this.$=i.addLocationDataFn(s[a],s[a])(new i.Slice(o[a]));break;case 95:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Obj(o[a-2],o[a-3].generated));break;case 96:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 97:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 98:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 99:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 100:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 101:this.$=i.addLocationDataFn(s[a],s[a])(new i.Class);break;case 102:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(null,null,o[a]));break;case 103:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(null,o[a]));break;case 104:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(null,o[a-1],o[a]));break;case 105:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(o[a]));break;case 106:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(o[a-1],null,o[a]));break;case 107:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(o[a-2],o[a]));break;case 108:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Class(o[a-3],o[a-1],o[a]));break;case 109:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 110:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 111:this.$=i.addLocationDataFn(s[a],s[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 112:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Call("super",o[a]));break;case 113:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Defer(o[a],n));break;case 114:this.$=i.addLocationDataFn(s[a],s[a])(!1);break;case 115:this.$=i.addLocationDataFn(s[a],s[a])(!0);break;case 116:this.$=i.addLocationDataFn(s[a-1],s[a])([]);break;case 117:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 118:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.Literal("this")));break;case 119:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.Literal("this")));break;case 120:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(i.addLocationDataFn(s[a-1])(new i.Literal("this")),[i.addLocationDataFn(s[a])(new i.Access(o[a]))],"this"));break;case 121:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Arr([]));break;case 122:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Arr(o[a-2]));break;case 123:this.$=i.addLocationDataFn(s[a],s[a])("inclusive");break;case 124:this.$=i.addLocationDataFn(s[a],s[a])("exclusive");break;case 125:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Range(o[a-3],o[a-1],o[a-2]));break;case 126:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Range(o[a-2],o[a],o[a-1]));break;case 127:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(o[a-1],null,o[a]));break;case 128:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(null,o[a],o[a-1]));break;case 129:this.$=i.addLocationDataFn(s[a],s[a])(new i.Range(null,null,o[a]));break;case 130:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 131:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 132:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 133:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 134:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 135:this.$=o[a];break;case 136:this.$=o[a];break;case 137:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 138:this.$=o[a];break;case 139:this.$=i.addLocationDataFn(s[a-2],s[a])([].concat(o[a-2],o[a]));break;case 140:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Try(o[a]));break;case 141:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Try(o[a-1],o[a][0],o[a][1]));break;case 142:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Try(o[a-2],null,null,o[a]));break;case 143: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 144:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-1],o[a]]);break;case 145:this.$=i.addLocationDataFn(s[a-2],s[a])([i.addLocationDataFn(s[a-1])(new i.Value(o[a-1])),o[a]]);break;case 146:this.$=i.addLocationDataFn(s[a-1],s[a])([null,o[a]]);break;case 147:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Throw(o[a]));break;case 148:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Parens(o[a-1]));break;case 149:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Parens(o[a-2]));break;case 150:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a]));break;case 151:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{guard:o[a]}));break;case 152:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a],{invert:!0}));break;case 153:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{invert:!0,guard:o[a]}));break;case 154:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].addBody(o[a]));break;case 155:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 156:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 157:this.$=i.addLocationDataFn(s[a],s[a])(o[a]);break;case 158:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.Literal("true"))).addBody(o[a]));break;case 159:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(s[a])(i.Block.wrap([o[a]]))));break;case 160:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 161:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 162:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a],o[a-1]));break;case 163:this.$=i.addLocationDataFn(s[a-1],s[a])({source:i.addLocationDataFn(s[a])(new i.Value(o[a]))});break;case 164: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 165:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a]);break;case 166:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return o[a].own=!0,o[a]}());break;case 167:this.$=o[a];break;case 168:this.$=o[a];break;case 169:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 170:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 171:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 172:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-2],o[a]]);break;case 173:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a]});break;case 174:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a],object:!0});break;case 175:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a]});break;case 176:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a],object:!0});break;case 177:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],step:o[a]});break;case 178:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],guard:o[a-2],step:o[a]});break;case 179:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],step:o[a-2],guard:o[a]});break;case 180:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Switch(o[a-3],o[a-1]));break;case 181:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.Switch(o[a-5],o[a-3],o[a-1]));break;case 182:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Switch(null,o[a-1]));break;case 183:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.Switch(null,o[a-3],o[a-1]));break;case 184:this.$=o[a];break;case 185:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].concat(o[a]));break;case 186:this.$=i.addLocationDataFn(s[a-2],s[a])([[o[a-1],o[a]]]);break;case 187:this.$=i.addLocationDataFn(s[a-3],s[a])([[o[a-2],o[a-1]]]);break;case 188:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 189: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 190:this.$=o[a];break;case 191:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].addElse(o[a]));break;case 192: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 193: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 194:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 195:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 196:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("-",o[a]));break;case 197:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("+",o[a]));break;case 198:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 199:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 200:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-2].concat(o[a-1]),o[a]));break;case 201:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a]));break;case 202:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a]));break;case 203:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a-1],null,!0));break;case 205:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Existence(o[a-1]));break;case 206:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("+",o[a-2],o[a]));break;case 207:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("-",o[a-2],o[a]));break;case 208:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 209:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 210:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 211:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 212:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 213: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 214:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a],o[a-1]));break;case 215:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1],o[a-3]));break;case 216:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a],o[a-2]));break;case 217: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:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[3]},{1:[2,2],6:[1,78]},{1:[2,3],6:[2,3],29:[2,3],106:[2,3]},{1:[2,6],6:[2,6],29:[2,6],106:[2,6],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,7],6:[2,7],29:[2,7],106:[2,7],107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,14],6:[2,14],28:[2,14],29:[2,14],52:[2,14],57:[2,14],60:[2,14],65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,14],77:[1,103],81:[2,14],84:94,88:[1,96],89:[2,114],90:[2,14],95:[2,14],97:[2,14],106:[2,14],108:[2,14],109:[2,14],110:[2,14],114:[2,14],122:[2,14],130:[2,14],133:[2,14],134:[2,14],139:[2,14],140:[2,14],141:[2,14],142:[2,14],143:[2,14],144:[2,14],145:[2,14]},{1:[2,15],6:[2,15],28:[2,15],29:[2,15],52:[2,15],57:[2,15],60:[2,15],65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,15],77:[1,103],81:[2,15],84:104,88:[1,96],89:[2,114],90:[2,15],95:[2,15],97:[2,15],106:[2,15],108:[2,15],109:[2,15],110:[2,15],114:[2,15],122:[2,15],130:[2,15],133:[2,15],134:[2,15],139:[2,15],140:[2,15],141:[2,15],142:[2,15],143:[2,15],144:[2,15],145:[2,15]},{1:[2,16],6:[2,16],28:[2,16],29:[2,16],52:[2,16],57:[2,16],60:[2,16],76:[2,16],81:[2,16],90:[2,16],95:[2,16],97:[2,16],106:[2,16],108:[2,16],109:[2,16],110:[2,16],114:[2,16],122:[2,16],130:[2,16],133:[2,16],134:[2,16],139:[2,16],140:[2,16],141:[2,16],142:[2,16],143:[2,16],144:[2,16],145:[2,16]},{1:[2,17],6:[2,17],28:[2,17],29:[2,17],52:[2,17],57:[2,17],60:[2,17],76:[2,17],81:[2,17],90:[2,17],95:[2,17],97:[2,17],106:[2,17],108:[2,17],109:[2,17],110:[2,17],114:[2,17],122:[2,17],130:[2,17],133:[2,17],134:[2,17],139:[2,17],140:[2,17],141:[2,17],142:[2,17],143:[2,17],144:[2,17],145:[2,17]},{1:[2,18],6:[2,18],28:[2,18],29:[2,18],52:[2,18],57:[2,18],60:[2,18],76:[2,18],81:[2,18],90:[2,18],95:[2,18],97:[2,18],106:[2,18],108:[2,18],109:[2,18],110:[2,18],114:[2,18],122:[2,18],130:[2,18],133:[2,18],134:[2,18],139:[2,18],140:[2,18],141:[2,18],142:[2,18],143:[2,18],144:[2,18],145:[2,18]},{1:[2,19],6:[2,19],28:[2,19],29:[2,19],52:[2,19],57:[2,19],60:[2,19],76:[2,19],81:[2,19],90:[2,19],95:[2,19],97:[2,19],106:[2,19],108:[2,19],109:[2,19],110:[2,19],114:[2,19],122:[2,19],130:[2,19],133:[2,19],134:[2,19],139:[2,19],140:[2,19],141:[2,19],142:[2,19],143:[2,19],144:[2,19],145:[2,19]},{1:[2,20],6:[2,20],28:[2,20],29:[2,20],52:[2,20],57:[2,20],60:[2,20],76:[2,20],81:[2,20],90:[2,20],95:[2,20],97:[2,20],106:[2,20],108:[2,20],109:[2,20],110:[2,20],114:[2,20],122:[2,20],130:[2,20],133:[2,20],134:[2,20],139:[2,20],140:[2,20],141:[2,20],142:[2,20],143:[2,20],144:[2,20],145:[2,20]},{1:[2,21],6:[2,21],28:[2,21],29:[2,21],52:[2,21],57:[2,21],60:[2,21],76:[2,21],81:[2,21],90:[2,21],95:[2,21],97:[2,21],106:[2,21],108:[2,21],109:[2,21],110:[2,21],114:[2,21],122:[2,21],130:[2,21],133:[2,21],134:[2,21],139:[2,21],140:[2,21],141:[2,21],142:[2,21],143:[2,21],144:[2,21],145:[2,21]},{1:[2,22],6:[2,22],28:[2,22],29:[2,22],52:[2,22],57:[2,22],60:[2,22],76:[2,22],81:[2,22],90:[2,22],95:[2,22],97:[2,22],106:[2,22],108:[2,22],109:[2,22],110:[2,22],114:[2,22],122:[2,22],130:[2,22],133:[2,22],134:[2,22],139:[2,22],140:[2,22],141:[2,22],142:[2,22],143:[2,22],144:[2,22],145:[2,22]},{1:[2,23],6:[2,23],28:[2,23],29:[2,23],52:[2,23],57:[2,23],60:[2,23],76:[2,23],81:[2,23],90:[2,23],95:[2,23],97:[2,23],106:[2,23],108:[2,23],109:[2,23],110:[2,23],114:[2,23],122:[2,23],130:[2,23],133:[2,23],134:[2,23],139:[2,23],140:[2,23],141:[2,23],142:[2,23],143:[2,23],144:[2,23],145:[2,23]},{1:[2,24],6:[2,24],28:[2,24],29:[2,24],52:[2,24],57:[2,24],60:[2,24],76:[2,24],81:[2,24],90:[2,24],95:[2,24],97:[2,24],106:[2,24],108:[2,24],109:[2,24],110:[2,24],114:[2,24],122:[2,24],130:[2,24],133:[2,24],134:[2,24],139:[2,24],140:[2,24],141:[2,24],142:[2,24],143:[2,24],144:[2,24],145:[2,24]},{1:[2,25],6:[2,25],28:[2,25],29:[2,25],52:[2,25],57:[2,25],60:[2,25],76:[2,25],81:[2,25],90:[2,25],95:[2,25],97:[2,25],106:[2,25],108:[2,25],109:[2,25],110:[2,25],114:[2,25],122:[2,25],130:[2,25],133:[2,25],134:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25],143:[2,25],144:[2,25],145:[2,25]},{1:[2,26],6:[2,26],28:[2,26],29:[2,26],52:[2,26],57:[2,26],60:[2,26],76:[2,26],81:[2,26],90:[2,26],95:[2,26],97:[2,26],106:[2,26],108:[2,26],109:[2,26],110:[2,26],114:[2,26],122:[2,26],130:[2,26],133:[2,26],134:[2,26],139:[2,26],140:[2,26],141:[2,26],142:[2,26],143:[2,26],144:[2,26],145:[2,26]},{1:[2,8],6:[2,8],28:[2,8],29:[2,8],52:[2,8],57:[2,8],60:[2,8],76:[2,8],81:[2,8],90:[2,8],95:[2,8],97:[2,8],106:[2,8],108:[2,8],109:[2,8],110:[2,8],114:[2,8],122:[2,8],130:[2,8],133:[2,8],134:[2,8],139:[2,8],140:[2,8],141:[2,8],142:[2,8],143:[2,8],144:[2,8],145:[2,8]},{1:[2,9],6:[2,9],28:[2,9],29:[2,9],52:[2,9],57:[2,9],60:[2,9],76:[2,9],81:[2,9],90:[2,9],95:[2,9],97:[2,9],106:[2,9],108:[2,9],109:[2,9],110:[2,9],114:[2,9],122:[2,9],130:[2,9],133:[2,9],134:[2,9],139:[2,9],140:[2,9],141:[2,9],142:[2,9],143:[2,9],144:[2,9],145:[2,9]},{1:[2,10],6:[2,10],28:[2,10],29:[2,10],52:[2,10],57:[2,10],60:[2,10],76:[2,10],81:[2,10],90:[2,10],95:[2,10],97:[2,10],106:[2,10],108:[2,10],109:[2,10],110:[2,10],114:[2,10],122:[2,10],130:[2,10],133:[2,10],134:[2,10],139:[2,10],140:[2,10],141:[2,10],142:[2,10],143:[2,10],144:[2,10],145:[2,10]},{1:[2,11],6:[2,11],28:[2,11],29:[2,11],52:[2,11],57:[2,11],60:[2,11],76:[2,11],81:[2,11],90:[2,11],95:[2,11],97:[2,11],106:[2,11],108:[2,11],109:[2,11],110:[2,11],114:[2,11],122:[2,11],130:[2,11],133:[2,11],134:[2,11],139:[2,11],140:[2,11],141:[2,11],142:[2,11],143:[2,11],144:[2,11],145:[2,11]},{1:[2,79],6:[2,79],28:[2,79],29:[2,79],43:[1,106],52:[2,79],57:[2,79],60:[2,79],69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],76:[2,79],77:[2,79],81:[2,79],88:[2,79],89:[2,79],90:[2,79],95:[2,79],97:[2,79],106:[2,79],108:[2,79],109:[2,79],110:[2,79],114:[2,79],122:[2,79],130:[2,79],133:[2,79],134:[2,79],139:[2,79],140:[2,79],141:[2,79],142:[2,79],143:[2,79],144:[2,79],145:[2,79]},{1:[2,80],6:[2,80],28:[2,80],29:[2,80],52:[2,80],57:[2,80],60:[2,80],69:[2,80],70:[2,80],71:[2,80],72:[2,80],74:[2,80],76:[2,80],77:[2,80],81:[2,80],88:[2,80],89:[2,80],90:[2,80],95:[2,80],97:[2,80],106:[2,80],108:[2,80],109:[2,80],110:[2,80],114:[2,80],122:[2,80],130:[2,80],133:[2,80],134:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80],143:[2,80],144:[2,80],145:[2,80]},{1:[2,81],6:[2,81],28:[2,81],29:[2,81],52:[2,81],57:[2,81],60:[2,81],69:[2,81],70:[2,81],71:[2,81],72:[2,81],74:[2,81],76:[2,81],77:[2,81],81:[2,81],88:[2,81],89:[2,81],90:[2,81],95:[2,81],97:[2,81],106:[2,81],108:[2,81],109:[2,81],110:[2,81],114:[2,81],122:[2,81],130:[2,81],133:[2,81],134:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81],143:[2,81],144:[2,81],145:[2,81]},{1:[2,82],6:[2,82],28:[2,82],29:[2,82],52:[2,82],57:[2,82],60:[2,82],69:[2,82],70:[2,82],71:[2,82],72:[2,82],74:[2,82],76:[2,82],77:[2,82],81:[2,82],88:[2,82],89:[2,82],90:[2,82],95:[2,82],97:[2,82],106:[2,82],108:[2,82],109:[2,82],110:[2,82],114:[2,82],122:[2,82],130:[2,82],133:[2,82],134:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82],143:[2,82],144:[2,82],145:[2,82]},{1:[2,83],6:[2,83],28:[2,83],29:[2,83],52:[2,83],57:[2,83],60:[2,83],69:[2,83],70:[2,83],71:[2,83],72:[2,83],74:[2,83],76:[2,83],77:[2,83],81:[2,83],88:[2,83],89:[2,83],90:[2,83],95:[2,83],97:[2,83],106:[2,83],108:[2,83],109:[2,83],110:[2,83],114:[2,83],122:[2,83],130:[2,83],133:[2,83],134:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83],143:[2,83],144:[2,83],145:[2,83]},{1:[2,111],6:[2,111],28:[2,111],29:[2,111],52:[2,111],57:[2,111],60:[2,111],69:[2,111],70:[2,111],71:[2,111],72:[2,111],74:[2,111],76:[2,111],77:[2,111],81:[2,111],85:107,88:[2,111],89:[1,108],90:[2,111],95:[2,111],97:[2,111],106:[2,111],108:[2,111],109:[2,111],110:[2,111],114:[2,111],122:[2,111],130:[2,111],133:[2,111],134:[2,111],139:[2,111],140:[2,111],141:[2,111],142:[2,111],143:[2,111],144:[2,111],145:[2,111]},{6:[2,58],28:[2,58],30:113,31:[1,77],47:114,51:109,52:[2,58],57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{14:119,28:[1,120]},{7:121,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:123,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:124,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:125,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:127,8:126,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],136:[1,128],137:[1,36],138:[1,37]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:129,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:133,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{1:[2,76],6:[2,76],28:[2,76],29:[2,76],43:[2,76],52:[2,76],57:[2,76],60:[2,76],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,76],77:[2,76],81:[2,76],83:[1,137],88:[2,76],89:[2,76],90:[2,76],95:[2,76],97:[2,76],106:[2,76],108:[2,76],109:[2,76],110:[2,76],114:[2,76],122:[2,76],130:[2,76],133:[2,76],134:[2,76],137:[1,134],138:[1,135],139:[2,76],140:[2,76],141:[2,76],142:[2,76],143:[2,76],144:[2,76],145:[2,76],146:[1,136]},{1:[2,190],6:[2,190],28:[2,190],29:[2,190],52:[2,190],57:[2,190],60:[2,190],76:[2,190],81:[2,190],90:[2,190],95:[2,190],97:[2,190],106:[2,190],108:[2,190],109:[2,190],110:[2,190],114:[2,190],122:[2,190],125:[1,138],130:[2,190],133:[2,190],134:[2,190],139:[2,190],140:[2,190],141:[2,190],142:[2,190],143:[2,190],144:[2,190],145:[2,190]},{14:139,28:[1,120]},{14:140,28:[1,120]},{1:[2,157],6:[2,157],28:[2,157],29:[2,157],52:[2,157],57:[2,157],60:[2,157],76:[2,157],81:[2,157],90:[2,157],95:[2,157],97:[2,157],106:[2,157],108:[2,157],109:[2,157],110:[2,157],114:[2,157],122:[2,157],130:[2,157],133:[2,157],134:[2,157],139:[2,157],140:[2,157],141:[2,157],142:[2,157],143:[2,157],144:[2,157],145:[2,157]},{14:141,28:[1,120]},{7:142,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,143],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,101],6:[2,101],14:144,15:130,16:131,28:[1,120],29:[2,101],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,52:[2,101],57:[2,101],60:[2,101],61:51,62:52,64:146,66:25,67:26,68:27,76:[2,101],79:[1,74],81:[2,101],83:[1,145],86:[1,28],90:[2,101],92:[1,62],93:[1,63],94:[1,61],95:[2,101],97:[2,101],105:[1,60],106:[2,101],108:[2,101],109:[2,101],110:[2,101],114:[2,101],122:[2,101],130:[2,101],133:[2,101],134:[2,101],139:[2,101],140:[2,101],141:[2,101],142:[2,101],143:[2,101],144:[2,101],145:[2,101]},{7:147,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{85:148,89:[1,108]},{1:[2,50],6:[2,50],7:149,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,50],29:[2,50],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],52:[2,50],53:30,54:[1,64],55:[1,65],57:[2,50],60:[2,50],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,50],79:[1,74],81:[2,50],82:[1,45],86:[1,28],87:[1,47],90:[2,50],92:[1,62],93:[1,63],94:[1,61],95:[2,50],97:[2,50],100:[1,40],104:[1,46],105:[1,60],106:[2,50],107:41,108:[2,50],109:[2,50],110:[2,50],111:42,112:[1,71],113:43,114:[2,50],115:73,122:[2,50],123:[1,44],128:39,129:[1,68],130:[2,50],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37],139:[2,50],140:[2,50],141:[2,50],142:[2,50],143:[2,50],144:[2,50],145:[2,50]},{1:[2,51],6:[2,51],28:[2,51],29:[2,51],52:[2,51],57:[2,51],60:[2,51],76:[2,51],81:[2,51],90:[2,51],95:[2,51],97:[2,51],106:[2,51],108:[2,51],109:[2,51],110:[2,51],114:[2,51],122:[2,51],130:[2,51],133:[2,51],134:[2,51],139:[2,51],140:[2,51],141:[2,51],142:[2,51],143:[2,51],144:[2,51],145:[2,51]},{7:151,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:150,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,77],6:[2,77],28:[2,77],29:[2,77],43:[2,77],52:[2,77],57:[2,77],60:[2,77],69:[2,77],70:[2,77],71:[2,77],72:[2,77],74:[2,77],76:[2,77],77:[2,77],81:[2,77],88:[2,77],89:[2,77],90:[2,77],95:[2,77],97:[2,77],106:[2,77],108:[2,77],109:[2,77],110:[2,77],114:[2,77],122:[2,77],130:[2,77],133:[2,77],134:[2,77],139:[2,77],140:[2,77],141:[2,77],142:[2,77],143:[2,77],144:[2,77],145:[2,77]},{1:[2,78],6:[2,78],28:[2,78],29:[2,78],43:[2,78],52:[2,78],57:[2,78],60:[2,78],69:[2,78],70:[2,78],71:[2,78],72:[2,78],74:[2,78],76:[2,78],77:[2,78],81:[2,78],88:[2,78],89:[2,78],90:[2,78],95:[2,78],97:[2,78],106:[2,78],108:[2,78],109:[2,78],110:[2,78],114:[2,78],122:[2,78],130:[2,78],133:[2,78],134:[2,78],139:[2,78],140:[2,78],141:[2,78],142:[2,78],143:[2,78],144:[2,78],145:[2,78]},{1:[2,32],6:[2,32],28:[2,32],29:[2,32],52:[2,32],57:[2,32],60:[2,32],69:[2,32],70:[2,32],71:[2,32],72:[2,32],74:[2,32],76:[2,32],77:[2,32],81:[2,32],88:[2,32],89:[2,32],90:[2,32],95:[2,32],97:[2,32],106:[2,32],108:[2,32],109:[2,32],110:[2,32],114:[2,32],122:[2,32],130:[2,32],133:[2,32],134:[2,32],139:[2,32],140:[2,32],141:[2,32],142:[2,32],143:[2,32],144:[2,32],145:[2,32]},{1:[2,33],6:[2,33],28:[2,33],29:[2,33],52:[2,33],57:[2,33],60:[2,33],69:[2,33],70:[2,33],71:[2,33],72:[2,33],74:[2,33],76:[2,33],77:[2,33],81:[2,33],88:[2,33],89:[2,33],90:[2,33],95:[2,33],97:[2,33],106:[2,33],108:[2,33],109:[2,33],110:[2,33],114:[2,33],122:[2,33],130:[2,33],133:[2,33],134:[2,33],139:[2,33],140:[2,33],141:[2,33],142:[2,33],143:[2,33],144:[2,33],145:[2,33]},{1:[2,34],6:[2,34],28:[2,34],29:[2,34],52:[2,34],57:[2,34],60:[2,34],69:[2,34],70:[2,34],71:[2,34],72:[2,34],74:[2,34],76:[2,34],77:[2,34],81:[2,34],88:[2,34],89:[2,34],90:[2,34],95:[2,34],97:[2,34],106:[2,34],108:[2,34],109:[2,34],110:[2,34],114:[2,34],122:[2,34],130:[2,34],133:[2,34],134:[2,34],139:[2,34],140:[2,34],141:[2,34],142:[2,34],143:[2,34],144:[2,34],145:[2,34]},{1:[2,35],6:[2,35],28:[2,35],29:[2,35],52:[2,35],57:[2,35],60:[2,35],69:[2,35],70:[2,35],71:[2,35],72:[2,35],74:[2,35],76:[2,35],77:[2,35],81:[2,35],88:[2,35],89:[2,35],90:[2,35],95:[2,35],97:[2,35],106:[2,35],108:[2,35],109:[2,35],110:[2,35],114:[2,35],122:[2,35],130:[2,35],133:[2,35],134:[2,35],139:[2,35],140:[2,35],141:[2,35],142:[2,35],143:[2,35],144:[2,35],145:[2,35]},{1:[2,36],6:[2,36],28:[2,36],29:[2,36],52:[2,36],57:[2,36],60:[2,36],69:[2,36],70:[2,36],71:[2,36],72:[2,36],74:[2,36],76:[2,36],77:[2,36],81:[2,36],88:[2,36],89:[2,36],90:[2,36],95:[2,36],97:[2,36],106:[2,36],108:[2,36],109:[2,36],110:[2,36],114:[2,36],122:[2,36],130:[2,36],133:[2,36],134:[2,36],139:[2,36],140:[2,36],141:[2,36],142:[2,36],143:[2,36],144:[2,36],145:[2,36]},{1:[2,37],6:[2,37],28:[2,37],29:[2,37],52:[2,37],57:[2,37],60:[2,37],69:[2,37],70:[2,37],71:[2,37],72:[2,37],74:[2,37],76:[2,37],77:[2,37],81:[2,37],88:[2,37],89:[2,37],90:[2,37],95:[2,37],97:[2,37],106:[2,37],108:[2,37],109:[2,37],110:[2,37],114:[2,37],122:[2,37],130:[2,37],133:[2,37],134:[2,37],139:[2,37],140:[2,37],141:[2,37],142:[2,37],143:[2,37],144:[2,37],145:[2,37]},{1:[2,38],6:[2,38],28:[2,38],29:[2,38],52:[2,38],57:[2,38],60:[2,38],69:[2,38],70:[2,38],71:[2,38],72:[2,38],74:[2,38],76:[2,38],77:[2,38],81:[2,38],88:[2,38],89:[2,38],90:[2,38],95:[2,38],97:[2,38],106:[2,38],108:[2,38],109:[2,38],110:[2,38],114:[2,38],122:[2,38],130:[2,38],133:[2,38],134:[2,38],139:[2,38],140:[2,38],141:[2,38],142:[2,38],143:[2,38],144:[2,38],145:[2,38]},{4:152,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,153],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:154,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,118],6:[2,118],28:[2,118],29:[2,118],52:[2,118],57:[2,118],60:[2,118],69:[2,118],70:[2,118],71:[2,118],72:[2,118],74:[2,118],76:[2,118],77:[2,118],81:[2,118],88:[2,118],89:[2,118],90:[2,118],95:[2,118],97:[2,118],106:[2,118],108:[2,118],109:[2,118],110:[2,118],114:[2,118],122:[2,118],130:[2,118],133:[2,118],134:[2,118],139:[2,118],140:[2,118],141:[2,118],142:[2,118],143:[2,118],144:[2,118],145:[2,118]},{1:[2,119],6:[2,119],28:[2,119],29:[2,119],30:161,31:[1,77],52:[2,119],57:[2,119],60:[2,119],69:[2,119],70:[2,119],71:[2,119],72:[2,119],74:[2,119],76:[2,119],77:[2,119],81:[2,119],88:[2,119],89:[2,119],90:[2,119],95:[2,119],97:[2,119],106:[2,119],108:[2,119],109:[2,119],110:[2,119],114:[2,119],122:[2,119],130:[2,119],133:[2,119],134:[2,119],139:[2,119],140:[2,119],141:[2,119],142:[2,119],143:[2,119],144:[2,119],145:[2,119]},{28:[2,54]},{28:[2,55]},{1:[2,72],6:[2,72],28:[2,72],29:[2,72],43:[2,72],52:[2,72],57:[2,72],60:[2,72],69:[2,72],70:[2,72],71:[2,72],72:[2,72],74:[2,72],76:[2,72],77:[2,72],81:[2,72],83:[2,72],88:[2,72],89:[2,72],90:[2,72],95:[2,72],97:[2,72],106:[2,72],108:[2,72],109:[2,72],110:[2,72],114:[2,72],122:[2,72],130:[2,72],133:[2,72],134:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[2,72],143:[2,72],144:[2,72],145:[2,72],146:[2,72]},{1:[2,75],6:[2,75],28:[2,75],29:[2,75],43:[2,75],52:[2,75],57:[2,75],60:[2,75],69:[2,75],70:[2,75],71:[2,75],72:[2,75],74:[2,75],76:[2,75],77:[2,75],81:[2,75],83:[2,75],88:[2,75],89:[2,75],90:[2,75],95:[2,75],97:[2,75],106:[2,75],108:[2,75],109:[2,75],110:[2,75],114:[2,75],122:[2,75],130:[2,75],133:[2,75],134:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75],142:[2,75],143:[2,75],144:[2,75],145:[2,75],146:[2,75]},{7:162,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:163,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:164,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:166,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:165,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{30:171,31:[1,77],47:172,61:173,62:174,67:167,79:[1,74],93:[1,117],94:[1,61],117:168,118:[1,169],119:170},{116:175,120:[1,176],121:[1,177]},{6:[2,96],10:181,28:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:178,81:[2,96],93:[1,117]},{1:[2,30],6:[2,30],28:[2,30],29:[2,30],46:[2,30],52:[2,30],57:[2,30],60:[2,30],69:[2,30],70:[2,30],71:[2,30],72:[2,30],74:[2,30],76:[2,30],77:[2,30],81:[2,30],88:[2,30],89:[2,30],90:[2,30],95:[2,30],97:[2,30],106:[2,30],108:[2,30],109:[2,30],110:[2,30],114:[2,30],122:[2,30],130:[2,30],133:[2,30],134:[2,30],139:[2,30],140:[2,30],141:[2,30],142:[2,30],143:[2,30],144:[2,30],145:[2,30]},{1:[2,31],6:[2,31],28:[2,31],29:[2,31],46:[2,31],52:[2,31],57:[2,31],60:[2,31],69:[2,31],70:[2,31],71:[2,31],72:[2,31],74:[2,31],76:[2,31],77:[2,31],81:[2,31],88:[2,31],89:[2,31],90:[2,31],95:[2,31],97:[2,31],106:[2,31],108:[2,31],109:[2,31],110:[2,31],114:[2,31],122:[2,31],130:[2,31],133:[2,31],134:[2,31],139:[2,31],140:[2,31],141:[2,31],142:[2,31],143:[2,31],144:[2,31],145:[2,31]},{1:[2,29],6:[2,29],28:[2,29],29:[2,29],43:[2,29],46:[2,29],52:[2,29],57:[2,29],60:[2,29],69:[2,29],70:[2,29],71:[2,29],72:[2,29],74:[2,29],76:[2,29],77:[2,29],81:[2,29],83:[2,29],88:[2,29],89:[2,29],90:[2,29],95:[2,29],97:[2,29],106:[2,29],108:[2,29],109:[2,29],110:[2,29],114:[2,29],120:[2,29],121:[2,29],122:[2,29],130:[2,29],133:[2,29],134:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29],142:[2,29],143:[2,29],144:[2,29],145:[2,29],146:[2,29]},{1:[2,5],5:185,6:[2,5],7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[2,5],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],106:[2,5],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,205],6:[2,205],28:[2,205],29:[2,205],52:[2,205],57:[2,205],60:[2,205],76:[2,205],81:[2,205],90:[2,205],95:[2,205],97:[2,205],106:[2,205],108:[2,205],109:[2,205],110:[2,205],114:[2,205],122:[2,205],130:[2,205],133:[2,205],134:[2,205],139:[2,205],140:[2,205],141:[2,205],142:[2,205],143:[2,205],144:[2,205],145:[2,205]},{7:186,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:187,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:188,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:189,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:190,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:191,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:192,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:193,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:194,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,156],6:[2,156],28:[2,156],29:[2,156],52:[2,156],57:[2,156],60:[2,156],76:[2,156],81:[2,156],90:[2,156],95:[2,156],97:[2,156],106:[2,156],108:[2,156],109:[2,156],110:[2,156],114:[2,156],122:[2,156],130:[2,156],133:[2,156],134:[2,156],139:[2,156],140:[2,156],141:[2,156],142:[2,156],143:[2,156],144:[2,156],145:[2,156]},{1:[2,161],6:[2,161],28:[2,161],29:[2,161],52:[2,161],57:[2,161],60:[2,161],76:[2,161],81:[2,161],90:[2,161],95:[2,161],97:[2,161],106:[2,161],108:[2,161],109:[2,161],110:[2,161],114:[2,161],122:[2,161],130:[2,161],133:[2,161],134:[2,161],139:[2,161],140:[2,161],141:[2,161],142:[2,161],143:[2,161],144:[2,161],145:[2,161]},{7:195,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,155],6:[2,155],28:[2,155],29:[2,155],52:[2,155],57:[2,155],60:[2,155],76:[2,155],81:[2,155],90:[2,155],95:[2,155],97:[2,155],106:[2,155],108:[2,155],109:[2,155],110:[2,155],114:[2,155],122:[2,155],130:[2,155],133:[2,155],134:[2,155],139:[2,155],140:[2,155],141:[2,155],142:[2,155],143:[2,155],144:[2,155],145:[2,155]},{1:[2,160],6:[2,160],28:[2,160],29:[2,160],52:[2,160],57:[2,160],60:[2,160],76:[2,160],81:[2,160],90:[2,160],95:[2,160],97:[2,160],106:[2,160],108:[2,160],109:[2,160],110:[2,160],114:[2,160],122:[2,160],130:[2,160],133:[2,160],134:[2,160],139:[2,160],140:[2,160],141:[2,160],142:[2,160],143:[2,160],144:[2,160],145:[2,160]},{85:196,89:[1,108]},{1:[2,73],6:[2,73],28:[2,73],29:[2,73],43:[2,73],52:[2,73],57:[2,73],60:[2,73],69:[2,73],70:[2,73],71:[2,73],72:[2,73],74:[2,73],76:[2,73],77:[2,73],81:[2,73],83:[2,73],88:[2,73],89:[2,73],90:[2,73],95:[2,73],97:[2,73],106:[2,73],108:[2,73],109:[2,73],110:[2,73],114:[2,73],122:[2,73],130:[2,73],133:[2,73],134:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73],142:[2,73],143:[2,73],144:[2,73],145:[2,73],146:[2,73]},{89:[2,115]},{27:198,30:197,31:[1,77],87:[1,47]},{30:199,31:[1,77]},{1:[2,89],6:[2,89],28:[2,89],29:[2,89],30:200,31:[1,77],43:[2,89],52:[2,89],57:[2,89],60:[2,89],69:[2,89],70:[2,89],71:[2,89],72:[2,89],74:[2,89],76:[2,89],77:[2,89],81:[2,89],83:[2,89],88:[2,89],89:[2,89],90:[2,89],95:[2,89],97:[2,89],106:[2,89],108:[2,89],109:[2,89],110:[2,89],114:[2,89],122:[2,89],130:[2,89],133:[2,89],134:[2,89],137:[2,89],138:[2,89],139:[2,89],140:[2,89],141:[2,89],142:[2,89],143:[2,89],144:[2,89],145:[2,89],146:[2,89]},{30:201,31:[1,77]},{1:[2,90],6:[2,90],28:[2,90],29:[2,90],43:[2,90],52:[2,90],57:[2,90],60:[2,90],69:[2,90],70:[2,90],71:[2,90],72:[2,90],74:[2,90],76:[2,90],77:[2,90],81:[2,90],83:[2,90],88:[2,90],89:[2,90],90:[2,90],95:[2,90],97:[2,90],106:[2,90],108:[2,90],109:[2,90],110:[2,90],114:[2,90],122:[2,90],130:[2,90],133:[2,90],134:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90],142:[2,90],143:[2,90],144:[2,90],145:[2,90],146:[2,90]},{7:203,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,207],61:51,62:52,64:38,66:25,67:26,68:27,75:202,78:204,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],96:205,97:[1,206],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{73:208,74:[1,102],77:[1,103]},{85:209,89:[1,108]},{1:[2,74],6:[2,74],28:[2,74],29:[2,74],43:[2,74],52:[2,74],57:[2,74],60:[2,74],69:[2,74],70:[2,74],71:[2,74],72:[2,74],74:[2,74],76:[2,74],77:[2,74],81:[2,74],83:[2,74],88:[2,74],89:[2,74],90:[2,74],95:[2,74],97:[2,74],106:[2,74],108:[2,74],109:[2,74],110:[2,74],114:[2,74],122:[2,74],130:[2,74],133:[2,74],134:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74],142:[2,74],143:[2,74],144:[2,74],145:[2,74],146:[2,74]},{6:[1,211],7:210,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,212],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,112],6:[2,112],28:[2,112],29:[2,112],52:[2,112],57:[2,112],60:[2,112],69:[2,112],70:[2,112],71:[2,112],72:[2,112],74:[2,112],76:[2,112],77:[2,112],81:[2,112],88:[2,112],89:[2,112],90:[2,112],95:[2,112],97:[2,112],106:[2,112],108:[2,112],109:[2,112],110:[2,112],114:[2,112],122:[2,112],130:[2,112],133:[2,112],134:[2,112],139:[2,112],140:[2,112],141:[2,112],142:[2,112],143:[2,112],144:[2,112],145:[2,112]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[1,213],91:214,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],52:[1,216],56:218,57:[1,217]},{6:[2,59],28:[2,59],29:[2,59],52:[2,59],57:[2,59]},{6:[2,63],28:[2,63],29:[2,63],43:[1,220],52:[2,63],57:[2,63],60:[1,219]},{6:[2,66],28:[2,66],29:[2,66],52:[2,66],57:[2,66]},{6:[2,67],28:[2,67],29:[2,67],43:[2,67],52:[2,67],57:[2,67],60:[2,67]},{6:[2,68],28:[2,68],29:[2,68],43:[2,68],52:[2,68],57:[2,68],60:[2,68]},{6:[2,69],28:[2,69],29:[2,69],43:[2,69],52:[2,69],57:[2,69],60:[2,69]},{6:[2,70],28:[2,70],29:[2,70],43:[2,70],52:[2,70],57:[2,70],60:[2,70]},{30:161,31:[1,77]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,53],6:[2,53],28:[2,53],29:[2,53],52:[2,53],57:[2,53],60:[2,53],76:[2,53],81:[2,53],90:[2,53],95:[2,53],97:[2,53],106:[2,53],108:[2,53],109:[2,53],110:[2,53],114:[2,53],122:[2,53],130:[2,53],133:[2,53],134:[2,53],139:[2,53],140:[2,53],141:[2,53],142:[2,53],143:[2,53],144:[2,53],145:[2,53]},{4:222,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[1,221],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,194],6:[2,194],28:[2,194],29:[2,194],52:[2,194],57:[2,194],60:[2,194],76:[2,194],81:[2,194],90:[2,194],95:[2,194],97:[2,194],106:[2,194],107:89,108:[2,194],109:[2,194],110:[2,194],113:90,114:[2,194],115:73,122:[2,194],130:[2,194],133:[2,194],134:[2,194],139:[1,79],140:[2,194],141:[2,194],142:[2,194],143:[2,194],144:[2,194],145:[2,194]},{107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,195],6:[2,195],28:[2,195],29:[2,195],52:[2,195],57:[2,195],60:[2,195],76:[2,195],81:[2,195],90:[2,195],95:[2,195],97:[2,195],106:[2,195],107:89,108:[2,195],109:[2,195],110:[2,195],113:90,114:[2,195],115:73,122:[2,195],130:[2,195],133:[2,195],134:[2,195],139:[1,79],140:[2,195],141:[1,83],142:[2,195],143:[2,195],144:[2,195],145:[2,195]},{1:[2,196],6:[2,196],28:[2,196],29:[2,196],52:[2,196],57:[2,196],60:[2,196],76:[2,196],81:[2,196],90:[2,196],95:[2,196],97:[2,196],106:[2,196],107:89,108:[2,196],109:[2,196],110:[2,196],113:90,114:[2,196],115:73,122:[2,196],130:[2,196],133:[2,196],134:[2,196],139:[1,79],140:[2,196],141:[1,83],142:[2,196],143:[2,196],144:[2,196],145:[2,196]},{1:[2,197],6:[2,197],28:[2,197],29:[2,197],52:[2,197],57:[2,197],60:[2,197],76:[2,197],81:[2,197],90:[2,197],95:[2,197],97:[2,197],106:[2,197],107:89,108:[2,197],109:[2,197],110:[2,197],113:90,114:[2,197],115:73,122:[2,197],130:[2,197],133:[2,197],134:[2,197],139:[1,79],140:[2,197],141:[1,83],142:[2,197],143:[2,197],144:[2,197],145:[2,197]},{1:[2,198],6:[2,198],28:[2,198],29:[2,198],52:[2,198],57:[2,198],60:[2,198],76:[2,198],81:[2,198],90:[2,198],95:[2,198],97:[2,198],106:[2,198],107:92,108:[2,198],109:[2,198],110:[2,198],113:93,114:[2,198],115:73,122:[2,198],130:[2,198],133:[2,198],134:[2,198],139:[2,198],140:[2,198],141:[2,198],142:[2,198],143:[2,198],144:[2,198],145:[2,198]},{1:[2,199],6:[2,199],28:[2,199],29:[2,199],52:[2,199],57:[2,199],60:[2,199],76:[2,199],81:[2,199],90:[2,199],95:[2,199],97:[2,199],106:[2,199],107:89,108:[2,199],109:[2,199],110:[2,199],113:90,114:[2,199],115:73,122:[2,199],130:[2,199],133:[2,199],134:[2,199],139:[1,79],140:[2,199],141:[2,199],142:[2,199],143:[2,199],144:[2,199],145:[2,199]},{7:223,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,201],6:[2,201],28:[2,201],29:[2,201],52:[2,201],57:[2,201],60:[2,201],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,201],77:[2,76],81:[2,201],88:[2,76],89:[2,76],90:[2,201],95:[2,201],97:[2,201],106:[2,201],108:[2,201],109:[2,201],110:[2,201],114:[2,201],122:[2,201],130:[2,201],133:[2,201],134:[2,201],139:[2,201],140:[2,201],141:[2,201],142:[2,201],143:[2,201],144:[2,201],145:[2,201]},{65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:94,88:[1,96],89:[2,114]},{65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:104,88:[1,96],89:[2,114]},{69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],77:[2,79],88:[2,79],89:[2,79]},{1:[2,202],6:[2,202],28:[2,202],29:[2,202],52:[2,202],57:[2,202],60:[2,202],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,202],77:[2,76],81:[2,202],88:[2,76],89:[2,76],90:[2,202],95:[2,202],97:[2,202],106:[2,202],108:[2,202],109:[2,202],110:[2,202],114:[2,202],122:[2,202],130:[2,202],133:[2,202],134:[2,202],139:[2,202],140:[2,202],141:[2,202],142:[2,202],143:[2,202],144:[2,202],145:[2,202]},{1:[2,203],6:[2,203],28:[2,203],29:[2,203],52:[2,203],57:[2,203],60:[2,203],76:[2,203],81:[2,203],90:[2,203],95:[2,203],97:[2,203],106:[2,203],108:[2,203],109:[2,203],110:[2,203],114:[2,203],122:[2,203],130:[2,203],133:[2,203],134:[2,203],139:[2,203],140:[2,203],141:[2,203],142:[2,203],143:[2,203],144:[2,203],145:[2,203]},{1:[2,204],6:[2,204],28:[2,204],29:[2,204],52:[2,204],57:[2,204],60:[2,204],76:[2,204],81:[2,204],90:[2,204],95:[2,204],97:[2,204],106:[2,204],108:[2,204],109:[2,204],110:[2,204],114:[2,204],122:[2,204],130:[2,204],133:[2,204],134:[2,204],139:[2,204],140:[2,204],141:[2,204],142:[2,204],143:[2,204],144:[2,204],145:[2,204]},{6:[1,226],7:224,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,225],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:227,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{14:228,28:[1,120],129:[1,229]},{1:[2,140],6:[2,140],28:[2,140],29:[2,140],52:[2,140],57:[2,140],60:[2,140],76:[2,140],81:[2,140],90:[2,140],95:[2,140],97:[2,140],101:230,102:[1,231],103:[1,232],106:[2,140],108:[2,140],109:[2,140],110:[2,140],114:[2,140],122:[2,140],130:[2,140],133:[2,140],134:[2,140],139:[2,140],140:[2,140],141:[2,140],142:[2,140],143:[2,140],144:[2,140],145:[2,140]},{1:[2,154],6:[2,154],28:[2,154],29:[2,154],52:[2,154],57:[2,154],60:[2,154],76:[2,154],81:[2,154],90:[2,154],95:[2,154],97:[2,154],106:[2,154],108:[2,154],109:[2,154],110:[2,154],114:[2,154],122:[2,154],130:[2,154],133:[2,154],134:[2,154],139:[2,154],140:[2,154],141:[2,154],142:[2,154],143:[2,154],144:[2,154],145:[2,154]},{1:[2,162],6:[2,162],28:[2,162],29:[2,162],52:[2,162],57:[2,162],60:[2,162],76:[2,162],81:[2,162],90:[2,162],95:[2,162],97:[2,162],106:[2,162],108:[2,162],109:[2,162],110:[2,162],114:[2,162],122:[2,162],130:[2,162],133:[2,162],134:[2,162],139:[2,162],140:[2,162],141:[2,162],142:[2,162],143:[2,162],144:[2,162],145:[2,162]},{28:[1,233],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{124:234,126:235,127:[1,236]},{1:[2,102],6:[2,102],28:[2,102],29:[2,102],52:[2,102],57:[2,102],60:[2,102],76:[2,102],81:[2,102],90:[2,102],95:[2,102],97:[2,102],106:[2,102],108:[2,102],109:[2,102],110:[2,102],114:[2,102],122:[2,102],130:[2,102],133:[2,102],134:[2,102],139:[2,102],140:[2,102],141:[2,102],142:[2,102],143:[2,102],144:[2,102],145:[2,102]},{7:237,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,105],6:[2,105],14:238,28:[1,120],29:[2,105],52:[2,105],57:[2,105],60:[2,105],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,105],77:[2,76],81:[2,105],83:[1,239],88:[2,76],89:[2,76],90:[2,105],95:[2,105],97:[2,105],106:[2,105],108:[2,105],109:[2,105],110:[2,105],114:[2,105],122:[2,105],130:[2,105],133:[2,105],134:[2,105],139:[2,105],140:[2,105],141:[2,105],142:[2,105],143:[2,105],144:[2,105],145:[2,105]},{1:[2,147],6:[2,147],28:[2,147],29:[2,147],52:[2,147],57:[2,147],60:[2,147],76:[2,147],81:[2,147],90:[2,147],95:[2,147],97:[2,147],106:[2,147],107:89,108:[2,147],109:[2,147],110:[2,147],113:90,114:[2,147],115:73,122:[2,147],130:[2,147],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,113],6:[2,113],28:[2,113],29:[2,113],43:[2,113],52:[2,113],57:[2,113],60:[2,113],69:[2,113],70:[2,113],71:[2,113],72:[2,113],74:[2,113],76:[2,113],77:[2,113],81:[2,113],83:[2,113],88:[2,113],89:[2,113],90:[2,113],95:[2,113],97:[2,113],106:[2,113],108:[2,113],109:[2,113],110:[2,113],114:[2,113],122:[2,113],130:[2,113],133:[2,113],134:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113],142:[2,113],143:[2,113],144:[2,113],145:[2,113],146:[2,113]},{1:[2,49],6:[2,49],28:[2,49],29:[2,49],52:[2,49],57:[2,49],60:[2,49],76:[2,49],81:[2,49],90:[2,49],95:[2,49],97:[2,49],106:[2,49],107:89,108:[2,49],109:[2,49],110:[2,49],113:90,114:[2,49],115:73,122:[2,49],130:[2,49],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,12],6:[2,12],28:[2,12],29:[2,12],52:[2,12],57:[2,12],60:[2,12],76:[2,12],81:[2,12],90:[2,12],95:[2,12],97:[2,12],106:[2,12],108:[2,12],109:[2,12],110:[2,12],114:[2,12],122:[2,12],130:[2,12],133:[2,12],134:[2,12],139:[2,12],140:[2,12],141:[2,12],142:[2,12],143:[2,12],144:[2,12],145:[2,12]},{1:[2,13],6:[2,13],28:[2,13],29:[2,13],52:[2,13],57:[2,13],60:[2,13],76:[2,13],81:[2,13],90:[2,13],95:[2,13],97:[2,13],106:[2,13],107:89,108:[1,69],109:[2,13],110:[1,70],113:90,114:[1,72],115:73,122:[2,13],130:[2,13],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,78],106:[1,240]},{4:241,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,135],28:[2,135],57:[2,135],60:[1,243],95:[2,135],96:242,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,121],6:[2,121],28:[2,121],29:[2,121],43:[2,121],52:[2,121],57:[2,121],60:[2,121],69:[2,121],70:[2,121],71:[2,121],72:[2,121],74:[2,121],76:[2,121],77:[2,121],81:[2,121],88:[2,121],89:[2,121],90:[2,121],95:[2,121],97:[2,121],106:[2,121],108:[2,121],109:[2,121],110:[2,121],114:[2,121],120:[2,121],121:[2,121],122:[2,121],130:[2,121],133:[2,121],134:[2,121],139:[2,121],140:[2,121],141:[2,121],142:[2,121],143:[2,121],144:[2,121],145:[2,121]},{6:[2,56],28:[2,56],56:244,57:[1,245],95:[2,56]},{6:[2,130],28:[2,130],29:[2,130],57:[2,130],90:[2,130],95:[2,130]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:246,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,136],28:[2,136],29:[2,136],57:[2,136],90:[2,136],95:[2,136]},{6:[2,137],28:[2,137],29:[2,137],57:[2,137],90:[2,137],95:[2,137]},{1:[2,120],6:[2,120],28:[2,120],29:[2,120],43:[2,120],46:[2,120],52:[2,120],57:[2,120],60:[2,120],69:[2,120],70:[2,120],71:[2,120],72:[2,120],74:[2,120],76:[2,120],77:[2,120],81:[2,120],83:[2,120],88:[2,120],89:[2,120],90:[2,120],95:[2,120],97:[2,120],106:[2,120],108:[2,120],109:[2,120],110:[2,120],114:[2,120],120:[2,120],121:[2,120],122:[2,120],130:[2,120],133:[2,120],134:[2,120],137:[2,120],138:[2,120],139:[2,120],140:[2,120],141:[2,120],142:[2,120],143:[2,120],144:[2,120],145:[2,120],146:[2,120]},{14:247,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,150],6:[2,150],28:[2,150],29:[2,150],52:[2,150],57:[2,150],60:[2,150],76:[2,150],81:[2,150],90:[2,150],95:[2,150],97:[2,150],106:[2,150],107:89,108:[1,69],109:[1,248],110:[1,70],113:90,114:[1,72],115:73,122:[2,150],130:[2,150],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,152],6:[2,152],28:[2,152],29:[2,152],52:[2,152],57:[2,152],60:[2,152],76:[2,152],81:[2,152],90:[2,152],95:[2,152],97:[2,152],106:[2,152],107:89,108:[1,69],109:[1,249],110:[1,70],113:90,114:[1,72],115:73,122:[2,152],130:[2,152],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,158],6:[2,158],28:[2,158],29:[2,158],52:[2,158],57:[2,158],60:[2,158],76:[2,158],81:[2,158],90:[2,158],95:[2,158],97:[2,158],106:[2,158],108:[2,158],109:[2,158],110:[2,158],114:[2,158],122:[2,158],130:[2,158],133:[2,158],134:[2,158],139:[2,158],140:[2,158],141:[2,158],142:[2,158],143:[2,158],144:[2,158],145:[2,158]},{1:[2,159],6:[2,159],28:[2,159],29:[2,159],52:[2,159],57:[2,159],60:[2,159],76:[2,159],81:[2,159],90:[2,159],95:[2,159],97:[2,159],106:[2,159],107:89,108:[1,69],109:[2,159],110:[1,70],113:90,114:[1,72],115:73,122:[2,159],130:[2,159],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,163],6:[2,163],28:[2,163],29:[2,163],52:[2,163],57:[2,163],60:[2,163],76:[2,163],81:[2,163],90:[2,163],95:[2,163],97:[2,163],106:[2,163],108:[2,163],109:[2,163],110:[2,163],114:[2,163],122:[2,163],130:[2,163],133:[2,163],134:[2,163],139:[2,163],140:[2,163],141:[2,163],142:[2,163],143:[2,163],144:[2,163],145:[2,163]},{120:[2,165],121:[2,165]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],117:250,119:170},{57:[1,251],120:[2,171],121:[2,171]},{57:[2,167],120:[2,167],121:[2,167]},{57:[2,168],120:[2,168],121:[2,168]},{57:[2,169],120:[2,169],121:[2,169]},{57:[2,170],120:[2,170],121:[2,170]},{1:[2,164],6:[2,164],28:[2,164],29:[2,164],52:[2,164],57:[2,164],60:[2,164],76:[2,164],81:[2,164],90:[2,164],95:[2,164],97:[2,164],106:[2,164],108:[2,164],109:[2,164],110:[2,164],114:[2,164],122:[2,164],130:[2,164],133:[2,164],134:[2,164],139:[2,164],140:[2,164],141:[2,164],142:[2,164],143:[2,164],144:[2,164],145:[2,164]},{7:252,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:253,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],56:254,57:[1,255],81:[2,56]},{6:[2,97],28:[2,97],29:[2,97],57:[2,97],81:[2,97]},{6:[2,42],28:[2,42],29:[2,42],46:[1,256],57:[2,42],81:[2,42]},{6:[2,45],28:[2,45],29:[2,45],57:[2,45],81:[2,45]},{6:[2,46],28:[2,46],29:[2,46],46:[2,46],57:[2,46],81:[2,46]},{6:[2,47],28:[2,47],29:[2,47],46:[2,47],57:[2,47],81:[2,47]},{6:[2,48],28:[2,48],29:[2,48],46:[2,48],57:[2,48],81:[2,48]},{1:[2,4],6:[2,4],29:[2,4],106:[2,4]},{1:[2,206],6:[2,206],28:[2,206],29:[2,206],52:[2,206],57:[2,206],60:[2,206],76:[2,206],81:[2,206],90:[2,206],95:[2,206],97:[2,206],106:[2,206],107:89,108:[2,206],109:[2,206],110:[2,206],113:90,114:[2,206],115:73,122:[2,206],130:[2,206],133:[2,206],134:[2,206],139:[1,79],140:[1,82],141:[1,83],142:[2,206],143:[2,206],144:[2,206],145:[2,206]},{1:[2,207],6:[2,207],28:[2,207],29:[2,207],52:[2,207],57:[2,207],60:[2,207],76:[2,207],81:[2,207],90:[2,207],95:[2,207],97:[2,207],106:[2,207],107:89,108:[2,207],109:[2,207],110:[2,207],113:90,114:[2,207],115:73,122:[2,207],130:[2,207],133:[2,207],134:[2,207],139:[1,79],140:[1,82],141:[1,83],142:[2,207],143:[2,207],144:[2,207],145:[2,207]},{1:[2,208],6:[2,208],28:[2,208],29:[2,208],52:[2,208],57:[2,208],60:[2,208],76:[2,208],81:[2,208],90:[2,208],95:[2,208],97:[2,208],106:[2,208],107:89,108:[2,208],109:[2,208],110:[2,208],113:90,114:[2,208],115:73,122:[2,208],130:[2,208],133:[2,208],134:[2,208],139:[1,79],140:[2,208],141:[1,83],142:[2,208],143:[2,208],144:[2,208],145:[2,208]},{1:[2,209],6:[2,209],28:[2,209],29:[2,209],52:[2,209],57:[2,209],60:[2,209],76:[2,209],81:[2,209],90:[2,209],95:[2,209],97:[2,209],106:[2,209],107:89,108:[2,209],109:[2,209],110:[2,209],113:90,114:[2,209],115:73,122:[2,209],130:[2,209],133:[2,209],134:[2,209],139:[1,79],140:[2,209],141:[1,83],142:[2,209],143:[2,209],144:[2,209],145:[2,209]},{1:[2,210],6:[2,210],28:[2,210],29:[2,210],52:[2,210],57:[2,210],60:[2,210],76:[2,210],81:[2,210],90:[2,210],95:[2,210],97:[2,210],106:[2,210],107:89,108:[2,210],109:[2,210],110:[2,210],113:90,114:[2,210],115:73,122:[2,210],130:[2,210],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[2,210],143:[2,210],144:[2,210],145:[2,210]},{1:[2,211],6:[2,211],28:[2,211],29:[2,211],52:[2,211],57:[2,211],60:[2,211],76:[2,211],81:[2,211],90:[2,211],95:[2,211],97:[2,211],106:[2,211],107:89,108:[2,211],109:[2,211],110:[2,211],113:90,114:[2,211],115:73,122:[2,211],130:[2,211],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,211],144:[2,211],145:[1,87]},{1:[2,212],6:[2,212],28:[2,212],29:[2,212],52:[2,212],57:[2,212],60:[2,212],76:[2,212],81:[2,212],90:[2,212],95:[2,212],97:[2,212],106:[2,212],107:89,108:[2,212],109:[2,212],110:[2,212],113:90,114:[2,212],115:73,122:[2,212],130:[2,212],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[2,212],145:[1,87]},{1:[2,213],6:[2,213],28:[2,213],29:[2,213],52:[2,213],57:[2,213],60:[2,213],76:[2,213],81:[2,213],90:[2,213],95:[2,213],97:[2,213],106:[2,213],107:89,108:[2,213],109:[2,213],110:[2,213],113:90,114:[2,213],115:73,122:[2,213],130:[2,213],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,213],144:[2,213],145:[2,213]},{1:[2,193],6:[2,193],28:[2,193],29:[2,193],52:[2,193],57:[2,193],60:[2,193],76:[2,193],81:[2,193],90:[2,193],95:[2,193],97:[2,193],106:[2,193],107:89,108:[1,69],109:[2,193],110:[1,70],113:90,114:[1,72],115:73,122:[2,193],130:[2,193],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,192],6:[2,192],28:[2,192],29:[2,192],52:[2,192],57:[2,192],60:[2,192],76:[2,192],81:[2,192],90:[2,192],95:[2,192],97:[2,192],106:[2,192],107:89,108:[1,69],109:[2,192],110:[1,70],113:90,114:[1,72],115:73,122:[2,192],130:[2,192],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,109],6:[2,109],28:[2,109],29:[2,109],52:[2,109],57:[2,109],60:[2,109],69:[2,109],70:[2,109],71:[2,109],72:[2,109],74:[2,109],76:[2,109],77:[2,109],81:[2,109],88:[2,109],89:[2,109],90:[2,109],95:[2,109],97:[2,109],106:[2,109],108:[2,109],109:[2,109],110:[2,109],114:[2,109],122:[2,109],130:[2,109],133:[2,109],134:[2,109],139:[2,109],140:[2,109],141:[2,109],142:[2,109],143:[2,109],144:[2,109],145:[2,109]},{1:[2,84],6:[2,84],28:[2,84],29:[2,84],43:[2,84],52:[2,84],57:[2,84],60:[2,84],69:[2,84],70:[2,84],71:[2,84],72:[2,84],74:[2,84],76:[2,84],77:[2,84],81:[2,84],83:[2,84],88:[2,84],89:[2,84],90:[2,84],95:[2,84],97:[2,84],106:[2,84],108:[2,84],109:[2,84],110:[2,84],114:[2,84],122:[2,84],130:[2,84],133:[2,84],134:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84],143:[2,84],144:[2,84],145:[2,84],146:[2,84]},{1:[2,85],6:[2,85],28:[2,85],29:[2,85],43:[2,85],52:[2,85],57:[2,85],60:[2,85],69:[2,85],70:[2,85],71:[2,85],72:[2,85],74:[2,85],76:[2,85],77:[2,85],81:[2,85],83:[2,85],88:[2,85],89:[2,85],90:[2,85],95:[2,85],97:[2,85],106:[2,85],108:[2,85],109:[2,85],110:[2,85],114:[2,85],122:[2,85],130:[2,85],133:[2,85],134:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85],143:[2,85],144:[2,85],145:[2,85],146:[2,85]},{1:[2,86],6:[2,86],28:[2,86],29:[2,86],43:[2,86],52:[2,86],57:[2,86],60:[2,86],69:[2,86],70:[2,86],71:[2,86],72:[2,86],74:[2,86],76:[2,86],77:[2,86],81:[2,86],83:[2,86],88:[2,86],89:[2,86],90:[2,86],95:[2,86],97:[2,86],106:[2,86],108:[2,86],109:[2,86],110:[2,86],114:[2,86],122:[2,86],130:[2,86],133:[2,86],134:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86],143:[2,86],144:[2,86],145:[2,86],146:[2,86]},{1:[2,87],6:[2,87],28:[2,87],29:[2,87],43:[2,87],52:[2,87],57:[2,87],60:[2,87],69:[2,87],70:[2,87],71:[2,87],72:[2,87],74:[2,87],76:[2,87],77:[2,87],81:[2,87],83:[2,87],88:[2,87],89:[2,87],90:[2,87],95:[2,87],97:[2,87],106:[2,87],108:[2,87],109:[2,87],110:[2,87],114:[2,87],122:[2,87],130:[2,87],133:[2,87],134:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87],143:[2,87],144:[2,87],145:[2,87],146:[2,87]},{1:[2,88],6:[2,88],28:[2,88],29:[2,88],43:[2,88],52:[2,88],57:[2,88],60:[2,88],69:[2,88],70:[2,88],71:[2,88],72:[2,88],74:[2,88],76:[2,88],77:[2,88],81:[2,88],83:[2,88],88:[2,88],89:[2,88],90:[2,88],95:[2,88],97:[2,88],106:[2,88],108:[2,88],109:[2,88],110:[2,88],114:[2,88],122:[2,88],130:[2,88],133:[2,88],134:[2,88],137:[2,88],138:[2,88],139:[2,88],140:[2,88],141:[2,88],142:[2,88],143:[2,88],144:[2,88],145:[2,88],146:[2,88]},{76:[1,257]},{60:[1,207],76:[2,93],96:258,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{76:[2,94]},{7:259,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,129],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{11:[2,123],13:[2,123],31:[2,123],33:[2,123],34:[2,123],36:[2,123],37:[2,123],38:[2,123],39:[2,123],40:[2,123],41:[2,123],48:[2,123],49:[2,123],50:[2,123],54:[2,123],55:[2,123],76:[2,123],79:[2,123],82:[2,123],86:[2,123],87:[2,123],92:[2,123],93:[2,123],94:[2,123],100:[2,123],104:[2,123],105:[2,123],108:[2,123],110:[2,123],112:[2,123],114:[2,123],123:[2,123],129:[2,123],131:[2,123],132:[2,123],133:[2,123],134:[2,123],135:[2,123],137:[2,123],138:[2,123]},{11:[2,124],13:[2,124],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],76:[2,124],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{1:[2,92],6:[2,92],28:[2,92],29:[2,92],43:[2,92],52:[2,92],57:[2,92],60:[2,92],69:[2,92],70:[2,92],71:[2,92],72:[2,92],74:[2,92],76:[2,92],77:[2,92],81:[2,92],83:[2,92],88:[2,92],89:[2,92],90:[2,92],95:[2,92],97:[2,92],106:[2,92],108:[2,92],109:[2,92],110:[2,92],114:[2,92],122:[2,92],130:[2,92],133:[2,92],134:[2,92],137:[2,92],138:[2,92],139:[2,92],140:[2,92],141:[2,92],142:[2,92],143:[2,92],144:[2,92],145:[2,92],146:[2,92]},{1:[2,110],6:[2,110],28:[2,110],29:[2,110],52:[2,110],57:[2,110],60:[2,110],69:[2,110],70:[2,110],71:[2,110],72:[2,110],74:[2,110],76:[2,110],77:[2,110],81:[2,110],88:[2,110],89:[2,110],90:[2,110],95:[2,110],97:[2,110],106:[2,110],108:[2,110],109:[2,110],110:[2,110],114:[2,110],122:[2,110],130:[2,110],133:[2,110],134:[2,110],139:[2,110],140:[2,110],141:[2,110],142:[2,110],143:[2,110],144:[2,110],145:[2,110]},{1:[2,39],6:[2,39],28:[2,39],29:[2,39],52:[2,39],57:[2,39],60:[2,39],76:[2,39],81:[2,39],90:[2,39],95:[2,39],97:[2,39],106:[2,39],107:89,108:[2,39],109:[2,39],110:[2,39],113:90,114:[2,39],115:73,122:[2,39],130:[2,39],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:260,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:261,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,116],6:[2,116],28:[2,116],29:[2,116],43:[2,116],52:[2,116],57:[2,116],60:[2,116],69:[2,116],70:[2,116],71:[2,116],72:[2,116],74:[2,116],76:[2,116],77:[2,116],81:[2,116],83:[2,116],88:[2,116],89:[2,116],90:[2,116],95:[2,116],97:[2,116],106:[2,116],108:[2,116],109:[2,116],110:[2,116],114:[2,116],122:[2,116],130:[2,116],133:[2,116],134:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116],142:[2,116],143:[2,116],144:[2,116],145:[2,116],146:[2,116]},{6:[2,56],28:[2,56],56:262,57:[1,245],90:[2,56]},{6:[2,135],28:[2,135],29:[2,135],57:[2,135],60:[1,263],90:[2,135],95:[2,135],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{53:264,54:[1,64],55:[1,65]},{6:[2,57],28:[2,57],29:[2,57],30:113,31:[1,77],47:114,58:265,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[1,266],28:[1,267]},{6:[2,64],28:[2,64],29:[2,64],52:[2,64],57:[2,64]},{7:268,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,27],6:[2,27],28:[2,27],29:[2,27],52:[2,27],57:[2,27],60:[2,27],76:[2,27],81:[2,27],90:[2,27],95:[2,27],97:[2,27],102:[2,27],103:[2,27],106:[2,27],108:[2,27],109:[2,27],110:[2,27],114:[2,27],122:[2,27],125:[2,27],127:[2,27],130:[2,27],133:[2,27],134:[2,27],139:[2,27],140:[2,27],141:[2,27],142:[2,27],143:[2,27],144:[2,27],145:[2,27]},{6:[1,78],29:[1,269]},{1:[2,200],6:[2,200],28:[2,200],29:[2,200],52:[2,200],57:[2,200],60:[2,200],76:[2,200],81:[2,200],90:[2,200],95:[2,200],97:[2,200],106:[2,200],107:89,108:[2,200],109:[2,200],110:[2,200],113:90,114:[2,200],115:73,122:[2,200],130:[2,200],133:[2,200],134:[2,200],139:[1,79],140:[2,200],141:[2,200],142:[2,200],143:[2,200],144:[2,200],145:[2,200]},{1:[2,214],6:[2,214],28:[2,214],29:[2,214],52:[2,214],57:[2,214],60:[2,214],76:[2,214],81:[2,214],90:[2,214],95:[2,214],97:[2,214],106:[2,214],107:89,108:[2,214],109:[2,214],110:[2,214],113:90,114:[2,214],115:73,122:[2,214],130:[2,214],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:270,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:271,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,217],6:[2,217],28:[2,217],29:[2,217],52:[2,217],57:[2,217],60:[2,217],76:[2,217],81:[2,217],90:[2,217],95:[2,217],97:[2,217],106:[2,217],107:89,108:[2,217],109:[2,217],110:[2,217],113:90,114:[2,217],115:73,122:[2,217],130:[2,217],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,191],6:[2,191],28:[2,191],29:[2,191],52:[2,191],57:[2,191],60:[2,191],76:[2,191],81:[2,191],90:[2,191],95:[2,191],97:[2,191],106:[2,191],108:[2,191],109:[2,191],110:[2,191],114:[2,191],122:[2,191],130:[2,191],133:[2,191],134:[2,191],139:[2,191],140:[2,191],141:[2,191],142:[2,191],143:[2,191],144:[2,191],145:[2,191]},{7:272,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,141],6:[2,141],28:[2,141],29:[2,141],52:[2,141],57:[2,141],60:[2,141],76:[2,141],81:[2,141],90:[2,141],95:[2,141],97:[2,141],102:[1,273],106:[2,141],108:[2,141],109:[2,141],110:[2,141],114:[2,141],122:[2,141],130:[2,141],133:[2,141],134:[2,141],139:[2,141],140:[2,141],141:[2,141],142:[2,141],143:[2,141],144:[2,141],145:[2,141]},{14:274,28:[1,120]},{14:277,28:[1,120],30:275,31:[1,77],62:276,79:[1,74]},{124:278,126:235,127:[1,236]},{29:[1,279],125:[1,280],126:281,127:[1,236]},{29:[2,184],125:[2,184],127:[2,184]},{7:283,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],99:282,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,103],6:[2,103],14:284,28:[1,120],29:[2,103],52:[2,103],57:[2,103],60:[2,103],76:[2,103],81:[2,103],90:[2,103],95:[2,103],97:[2,103],106:[2,103],107:89,108:[1,69],109:[2,103],110:[1,70],113:90,114:[1,72],115:73,122:[2,103],130:[2,103],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,106],6:[2,106],28:[2,106],29:[2,106],52:[2,106],57:[2,106],60:[2,106],76:[2,106],81:[2,106],90:[2,106],95:[2,106],97:[2,106],106:[2,106],108:[2,106],109:[2,106],110:[2,106],114:[2,106],122:[2,106],130:[2,106],133:[2,106],134:[2,106],139:[2,106],140:[2,106],141:[2,106],142:[2,106],143:[2,106],144:[2,106],145:[2,106]},{7:285,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,148],6:[2,148],28:[2,148],29:[2,148],52:[2,148],57:[2,148],60:[2,148],69:[2,148],70:[2,148],71:[2,148],72:[2,148],74:[2,148],76:[2,148],77:[2,148],81:[2,148],88:[2,148],89:[2,148],90:[2,148],95:[2,148],97:[2,148],106:[2,148],108:[2,148],109:[2,148],110:[2,148],114:[2,148],122:[2,148],130:[2,148],133:[2,148],134:[2,148],139:[2,148],140:[2,148],141:[2,148],142:[2,148],143:[2,148],144:[2,148],145:[2,148]},{6:[1,78],29:[1,286]},{7:287,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,71],11:[2,124],13:[2,124],28:[2,71],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],57:[2,71],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],95:[2,71],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{6:[1,289],28:[1,290],95:[1,288]},{6:[2,57],7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,57],29:[2,57],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[2,57],92:[1,62],93:[1,63],94:[1,61],95:[2,57],98:291,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],29:[2,56],56:292,57:[1,245]},{1:[2,188],6:[2,188],28:[2,188],29:[2,188],52:[2,188],57:[2,188],60:[2,188],76:[2,188],81:[2,188],90:[2,188],95:[2,188],97:[2,188],106:[2,188],108:[2,188],109:[2,188],110:[2,188],114:[2,188],122:[2,188],125:[2,188],130:[2,188],133:[2,188],134:[2,188],139:[2,188],140:[2,188],141:[2,188],142:[2,188],143:[2,188],144:[2,188],145:[2,188]},{7:293,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:294,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{120:[2,166],121:[2,166]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],119:295},{1:[2,173],6:[2,173],28:[2,173],29:[2,173],52:[2,173],57:[2,173],60:[2,173],76:[2,173],81:[2,173],90:[2,173],95:[2,173],97:[2,173],106:[2,173],107:89,108:[2,173],109:[1,296],110:[2,173],113:90,114:[2,173],115:73,122:[1,297],130:[2,173],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,174],6:[2,174],28:[2,174],29:[2,174],52:[2,174],57:[2,174],60:[2,174],76:[2,174],81:[2,174],90:[2,174],95:[2,174],97:[2,174],106:[2,174],107:89,108:[2,174],109:[1,298],110:[2,174],113:90,114:[2,174],115:73,122:[2,174],130:[2,174],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,300],28:[1,301],81:[1,299]},{6:[2,57],10:181,28:[2,57],29:[2,57],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:302,45:180,47:184,49:[1,49],81:[2,57],93:[1,117]},{7:303,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,304],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,91],6:[2,91],28:[2,91],29:[2,91],43:[2,91],52:[2,91],57:[2,91],60:[2,91],69:[2,91],70:[2,91],71:[2,91],72:[2,91],74:[2,91],76:[2,91],77:[2,91],81:[2,91],83:[2,91],88:[2,91],89:[2,91],90:[2,91],95:[2,91],97:[2,91],106:[2,91],108:[2,91],109:[2,91],110:[2,91],114:[2,91],122:[2,91],130:[2,91],133:[2,91],134:[2,91],137:[2,91],138:[2,91],139:[2,91],140:[2,91],141:[2,91],142:[2,91],143:[2,91],144:[2,91],145:[2,91],146:[2,91]},{7:305,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,127],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,128],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,40],6:[2,40],28:[2,40],29:[2,40],52:[2,40],57:[2,40],60:[2,40],76:[2,40],81:[2,40],90:[2,40],95:[2,40],97:[2,40],106:[2,40],107:89,108:[2,40],109:[2,40],110:[2,40],113:90,114:[2,40],115:73,122:[2,40],130:[2,40],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{29:[1,306],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],90:[1,307]},{6:[2,71],28:[2,71],29:[2,71],57:[2,71],90:[2,71],95:[2,71]},{14:308,28:[1,120]},{6:[2,60],28:[2,60],29:[2,60],52:[2,60],57:[2,60]},{30:113,31:[1,77],47:114,58:309,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,58],28:[2,58],29:[2,58],30:113,31:[1,77],47:114,51:310,57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,65],28:[2,65],29:[2,65],52:[2,65],57:[2,65],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,28],6:[2,28],28:[2,28],29:[2,28],52:[2,28],57:[2,28],60:[2,28],76:[2,28],81:[2,28],90:[2,28],95:[2,28],97:[2,28],102:[2,28],103:[2,28],106:[2,28],108:[2,28],109:[2,28],110:[2,28],114:[2,28],122:[2,28],125:[2,28],127:[2,28],130:[2,28],133:[2,28],134:[2,28],139:[2,28],140:[2,28],141:[2,28],142:[2,28],143:[2,28],144:[2,28],145:[2,28]},{29:[1,311],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,216],6:[2,216],28:[2,216],29:[2,216],52:[2,216],57:[2,216],60:[2,216],76:[2,216],81:[2,216],90:[2,216],95:[2,216],97:[2,216],106:[2,216],107:89,108:[2,216],109:[2,216],110:[2,216],113:90,114:[2,216],115:73,122:[2,216],130:[2,216],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:312,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:313,28:[1,120]},{1:[2,142],6:[2,142],28:[2,142],29:[2,142],52:[2,142],57:[2,142],60:[2,142],76:[2,142],81:[2,142],90:[2,142],95:[2,142],97:[2,142],106:[2,142],108:[2,142],109:[2,142],110:[2,142],114:[2,142],122:[2,142],130:[2,142],133:[2,142],134:[2,142],139:[2,142],140:[2,142],141:[2,142],142:[2,142],143:[2,142],144:[2,142],145:[2,142]},{14:314,28:[1,120]},{14:315,28:[1,120]},{1:[2,146],6:[2,146],28:[2,146],29:[2,146],52:[2,146],57:[2,146],60:[2,146],76:[2,146],81:[2,146],90:[2,146],95:[2,146],97:[2,146],102:[2,146],106:[2,146],108:[2,146],109:[2,146],110:[2,146],114:[2,146],122:[2,146],130:[2,146],133:[2,146],134:[2,146],139:[2,146],140:[2,146],141:[2,146],142:[2,146],143:[2,146],144:[2,146],145:[2,146]},{29:[1,316],125:[1,317],126:281,127:[1,236]},{1:[2,182],6:[2,182],28:[2,182],29:[2,182],52:[2,182],57:[2,182],60:[2,182],76:[2,182],81:[2,182],90:[2,182],95:[2,182],97:[2,182],106:[2,182],108:[2,182],109:[2,182],110:[2,182],114:[2,182],122:[2,182],130:[2,182],133:[2,182],134:[2,182],139:[2,182],140:[2,182],141:[2,182],142:[2,182],143:[2,182],144:[2,182],145:[2,182]},{14:318,28:[1,120]},{29:[2,185],125:[2,185],127:[2,185]},{14:319,28:[1,120],57:[1,320]},{28:[2,138],57:[2,138],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,104],6:[2,104],28:[2,104],29:[2,104],52:[2,104],57:[2,104],60:[2,104],76:[2,104],81:[2,104],90:[2,104],95:[2,104],97:[2,104],106:[2,104],108:[2,104],109:[2,104],110:[2,104],114:[2,104],122:[2,104],130:[2,104],133:[2,104],134:[2,104],139:[2,104],140:[2,104],141:[2,104],142:[2,104],143:[2,104],144:[2,104],145:[2,104]},{1:[2,107],6:[2,107],14:321,28:[1,120],29:[2,107],52:[2,107],57:[2,107],60:[2,107],76:[2,107],81:[2,107],90:[2,107],95:[2,107],97:[2,107],106:[2,107],107:89,108:[1,69],109:[2,107],110:[1,70],113:90,114:[1,72],115:73,122:[2,107],130:[2,107],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{106:[1,322]},{95:[1,323],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,122],6:[2,122],28:[2,122],29:[2,122],43:[2,122],52:[2,122],57:[2,122],60:[2,122],69:[2,122],70:[2,122],71:[2,122],72:[2,122],74:[2,122],76:[2,122],77:[2,122],81:[2,122],88:[2,122],89:[2,122],90:[2,122],95:[2,122],97:[2,122],106:[2,122],108:[2,122],109:[2,122],110:[2,122],114:[2,122],120:[2,122],121:[2,122],122:[2,122],130:[2,122],133:[2,122],134:[2,122],139:[2,122],140:[2,122],141:[2,122],142:[2,122],143:[2,122],144:[2,122],145:[2,122]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],98:324,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:325,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,131],28:[2,131],29:[2,131],57:[2,131],90:[2,131],95:[2,131]},{6:[1,289],28:[1,290],29:[1,326]},{1:[2,151],6:[2,151],28:[2,151],29:[2,151],52:[2,151],57:[2,151],60:[2,151],76:[2,151],81:[2,151],90:[2,151],95:[2,151],97:[2,151],106:[2,151],107:89,108:[1,69],109:[2,151],110:[1,70],113:90,114:[1,72],115:73,122:[2,151],130:[2,151],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,153],6:[2,153],28:[2,153],29:[2,153],52:[2,153],57:[2,153],60:[2,153],76:[2,153],81:[2,153],90:[2,153],95:[2,153],97:[2,153],106:[2,153],107:89,108:[1,69],109:[2,153],110:[1,70],113:90,114:[1,72],115:73,122:[2,153],130:[2,153],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{120:[2,172],121:[2,172]},{7:327,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:328,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:329,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,95],6:[2,95],28:[2,95],29:[2,95],43:[2,95],52:[2,95],57:[2,95],60:[2,95],69:[2,95],70:[2,95],71:[2,95],72:[2,95],74:[2,95],76:[2,95],77:[2,95],81:[2,95],88:[2,95],89:[2,95],90:[2,95],95:[2,95],97:[2,95],106:[2,95],108:[2,95],109:[2,95],110:[2,95],114:[2,95],120:[2,95],121:[2,95],122:[2,95],130:[2,95],133:[2,95],134:[2,95],139:[2,95],140:[2,95],141:[2,95],142:[2,95],143:[2,95],144:[2,95],145:[2,95]},{10:181,30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:330,45:180,47:184,49:[1,49],93:[1,117]},{6:[2,96],10:181,28:[2,96],29:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:331,93:[1,117]},{6:[2,98],28:[2,98],29:[2,98],57:[2,98],81:[2,98]},{6:[2,43],28:[2,43],29:[2,43],57:[2,43],81:[2,43],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:332,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,126],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,41],6:[2,41],28:[2,41],29:[2,41],52:[2,41],57:[2,41],60:[2,41],76:[2,41],81:[2,41],90:[2,41],95:[2,41],97:[2,41],106:[2,41],108:[2,41],109:[2,41],110:[2,41],114:[2,41],122:[2,41],130:[2,41],133:[2,41],134:[2,41],139:[2,41],140:[2,41],141:[2,41],142:[2,41],143:[2,41],144:[2,41],145:[2,41]},{1:[2,117],6:[2,117],28:[2,117],29:[2,117],43:[2,117],52:[2,117],57:[2,117],60:[2,117],69:[2,117],70:[2,117],71:[2,117],72:[2,117],74:[2,117],76:[2,117],77:[2,117],81:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],95:[2,117],97:[2,117],106:[2,117],108:[2,117],109:[2,117],110:[2,117],114:[2,117],122:[2,117],130:[2,117],133:[2,117],134:[2,117],137:[2,117],138:[2,117],139:[2,117],140:[2,117],141:[2,117],142:[2,117],143:[2,117],144:[2,117],145:[2,117],146:[2,117]},{1:[2,52],6:[2,52],28:[2,52],29:[2,52],52:[2,52],57:[2,52],60:[2,52],76:[2,52],81:[2,52],90:[2,52],95:[2,52],97:[2,52],106:[2,52],108:[2,52],109:[2,52],110:[2,52],114:[2,52],122:[2,52],130:[2,52],133:[2,52],134:[2,52],139:[2,52],140:[2,52],141:[2,52],142:[2,52],143:[2,52],144:[2,52],145:[2,52]},{6:[2,61],28:[2,61],29:[2,61],52:[2,61],57:[2,61]},{6:[2,56],28:[2,56],29:[2,56],56:333,57:[1,217]},{1:[2,215],6:[2,215],28:[2,215],29:[2,215],52:[2,215],57:[2,215],60:[2,215],76:[2,215],81:[2,215],90:[2,215],95:[2,215],97:[2,215],106:[2,215],108:[2,215],109:[2,215],110:[2,215],114:[2,215],122:[2,215],130:[2,215],133:[2,215],134:[2,215],139:[2,215],140:[2,215],141:[2,215],142:[2,215],143:[2,215],144:[2,215],145:[2,215]},{1:[2,189],6:[2,189],28:[2,189],29:[2,189],52:[2,189],57:[2,189],60:[2,189],76:[2,189],81:[2,189],90:[2,189],95:[2,189],97:[2,189],106:[2,189],108:[2,189],109:[2,189],110:[2,189],114:[2,189],122:[2,189],125:[2,189],130:[2,189],133:[2,189],134:[2,189],139:[2,189],140:[2,189],141:[2,189],142:[2,189],143:[2,189],144:[2,189],145:[2,189]},{1:[2,143],6:[2,143],28:[2,143],29:[2,143],52:[2,143],57:[2,143],60:[2,143],76:[2,143],81:[2,143],90:[2,143],95:[2,143],97:[2,143],106:[2,143],108:[2,143],109:[2,143],110:[2,143],114:[2,143],122:[2,143],130:[2,143],133:[2,143],134:[2,143],139:[2,143],140:[2,143],141:[2,143],142:[2,143],143:[2,143],144:[2,143],145:[2,143]},{1:[2,144],6:[2,144],28:[2,144],29:[2,144],52:[2,144],57:[2,144],60:[2,144],76:[2,144],81:[2,144],90:[2,144],95:[2,144],97:[2,144],102:[2,144],106:[2,144],108:[2,144],109:[2,144],110:[2,144],114:[2,144],122:[2,144],130:[2,144],133:[2,144],134:[2,144],139:[2,144],140:[2,144],141:[2,144],142:[2,144],143:[2,144],144:[2,144],145:[2,144]},{1:[2,145],6:[2,145],28:[2,145],29:[2,145],52:[2,145],57:[2,145],60:[2,145],76:[2,145],81:[2,145],90:[2,145],95:[2,145],97:[2,145],102:[2,145],106:[2,145],108:[2,145],109:[2,145],110:[2,145],114:[2,145],122:[2,145],130:[2,145],133:[2,145],134:[2,145],139:[2,145],140:[2,145],141:[2,145],142:[2,145],143:[2,145],144:[2,145],145:[2,145]},{1:[2,180],6:[2,180],28:[2,180],29:[2,180],52:[2,180],57:[2,180],60:[2,180],76:[2,180],81:[2,180],90:[2,180],95:[2,180],97:[2,180],106:[2,180],108:[2,180],109:[2,180],110:[2,180],114:[2,180],122:[2,180],130:[2,180],133:[2,180],134:[2,180],139:[2,180],140:[2,180],141:[2,180],142:[2,180],143:[2,180],144:[2,180],145:[2,180]},{14:334,28:[1,120]},{29:[1,335]},{6:[1,336],29:[2,186],125:[2,186],127:[2,186]},{7:337,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,108],6:[2,108],28:[2,108],29:[2,108],52:[2,108],57:[2,108],60:[2,108],76:[2,108],81:[2,108],90:[2,108],95:[2,108],97:[2,108],106:[2,108],108:[2,108],109:[2,108],110:[2,108],114:[2,108],122:[2,108],130:[2,108],133:[2,108],134:[2,108],139:[2,108],140:[2,108],141:[2,108],142:[2,108],143:[2,108],144:[2,108],145:[2,108]},{1:[2,149],6:[2,149],28:[2,149],29:[2,149],52:[2,149],57:[2,149],60:[2,149],69:[2,149],70:[2,149],71:[2,149],72:[2,149],74:[2,149],76:[2,149],77:[2,149],81:[2,149],88:[2,149],89:[2,149],90:[2,149],95:[2,149],97:[2,149],106:[2,149],108:[2,149],109:[2,149],110:[2,149],114:[2,149],122:[2,149],130:[2,149],133:[2,149],134:[2,149],139:[2,149],140:[2,149],141:[2,149],142:[2,149],143:[2,149],144:[2,149],145:[2,149]},{1:[2,125],6:[2,125],28:[2,125],29:[2,125],52:[2,125],57:[2,125],60:[2,125],69:[2,125],70:[2,125],71:[2,125],72:[2,125],74:[2,125],76:[2,125],77:[2,125],81:[2,125],88:[2,125],89:[2,125],90:[2,125],95:[2,125],97:[2,125],106:[2,125],108:[2,125],109:[2,125],110:[2,125],114:[2,125],122:[2,125],130:[2,125],133:[2,125],134:[2,125],139:[2,125],140:[2,125],141:[2,125],142:[2,125],143:[2,125],144:[2,125],145:[2,125]},{6:[2,132],28:[2,132],29:[2,132],57:[2,132],90:[2,132],95:[2,132]},{6:[2,56],28:[2,56],29:[2,56],56:338,57:[1,245]},{6:[2,133],28:[2,133],29:[2,133],57:[2,133],90:[2,133],95:[2,133]},{1:[2,175],6:[2,175],28:[2,175],29:[2,175],52:[2,175],57:[2,175],60:[2,175],76:[2,175],81:[2,175],90:[2,175],95:[2,175],97:[2,175],106:[2,175],107:89,108:[2,175],109:[2,175],110:[2,175],113:90,114:[2,175],115:73,122:[1,339],130:[2,175],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,177],6:[2,177],28:[2,177],29:[2,177],52:[2,177],57:[2,177],60:[2,177],76:[2,177],81:[2,177],90:[2,177],95:[2,177],97:[2,177],106:[2,177],107:89,108:[2,177],109:[1,340],110:[2,177],113:90,114:[2,177],115:73,122:[2,177],130:[2,177],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,176],6:[2,176],28:[2,176],29:[2,176],52:[2,176],57:[2,176],60:[2,176],76:[2,176],81:[2,176],90:[2,176],95:[2,176],97:[2,176],106:[2,176],107:89,108:[2,176],109:[2,176],110:[2,176],113:90,114:[2,176],115:73,122:[2,176],130:[2,176],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,99],28:[2,99],29:[2,99],57:[2,99],81:[2,99]},{6:[2,56],28:[2,56],29:[2,56],56:341,57:[1,255]},{29:[1,342],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,266],28:[1,267],29:[1,343]},{29:[1,344]},{1:[2,183],6:[2,183],28:[2,183],29:[2,183],52:[2,183],57:[2,183],60:[2,183],76:[2,183],81:[2,183],90:[2,183],95:[2,183],97:[2,183],106:[2,183],108:[2,183],109:[2,183],110:[2,183],114:[2,183],122:[2,183],130:[2,183],133:[2,183],134:[2,183],139:[2,183],140:[2,183],141:[2,183],142:[2,183],143:[2,183],144:[2,183],145:[2,183]},{29:[2,187],125:[2,187],127:[2,187]},{28:[2,139],57:[2,139],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],29:[1,345]},{7:346,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:347,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[1,300],28:[1,301],29:[1,348]},{6:[2,44],28:[2,44],29:[2,44],57:[2,44],81:[2,44]},{6:[2,62],28:[2,62],29:[2,62],52:[2,62],57:[2,62]},{1:[2,181],6:[2,181],28:[2,181],29:[2,181],52:[2,181],57:[2,181],60:[2,181],76:[2,181],81:[2,181],90:[2,181],95:[2,181],97:[2,181],106:[2,181],108:[2,181],109:[2,181],110:[2,181],114:[2,181],122:[2,181],130:[2,181],133:[2,181],134:[2,181],139:[2,181],140:[2,181],141:[2,181],142:[2,181],143:[2,181],144:[2,181],145:[2,181]},{6:[2,134],28:[2,134],29:[2,134],57:[2,134],90:[2,134],95:[2,134]},{1:[2,178],6:[2,178],28:[2,178],29:[2,178],52:[2,178],57:[2,178],60:[2,178],76:[2,178],81:[2,178],90:[2,178],95:[2,178],97:[2,178],106:[2,178],107:89,108:[2,178],109:[2,178],110:[2,178],113:90,114:[2,178],115:73,122:[2,178],130:[2,178],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,179],6:[2,179],28:[2,179],29:[2,179],52:[2,179],57:[2,179],60:[2,179],76:[2,179],81:[2,179],90:[2,179],95:[2,179],97:[2,179],106:[2,179],107:89,108:[2,179],109:[2,179],110:[2,179],113:90,114:[2,179],115:73,122:[2,179],130:[2,179],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,100],28:[2,100],29:[2,100],57:[2,100],81:[2,100]}],defaultActions:{64:[2,54],65:[2,55],96:[2,115],204:[2,94]},parseError:function(e,t){if(!t.recoverable)throw Error(e); +this.trace(e)},parse:function(e){function t(){var e;return e=n.lexer.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],o=[],s=this.table,a="",c=0,u=0,l=0,h=2,p=1,d=o.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,this.lexer.yylloc===void 0&&(this.lexer.yylloc={});var f=this.lexer.yylloc;o.push(f);var m=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var w,g,b,y,v,k,_,C,F,T={};;){if(b=i[i.length-1],this.defaultActions[b]?y=this.defaultActions[b]:((null===w||w===void 0)&&(w=t()),y=s[b]&&s[b][w]),y===void 0||!y.length||!y[0]){var L="";F=[];for(k in s[b])this.terminals_[k]&&k>h&&F.push("'"+this.terminals_[k]+"'");L=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+F.join(", ")+", got '"+(this.terminals_[w]||w)+"'":"Parse error on line "+(c+1)+": Unexpected "+(w==p?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(L,{text:this.lexer.match,token:this.terminals_[w]||w,line:this.lexer.yylineno,loc:f,expected:F})}if(y[0]instanceof Array&&y.length>1)throw Error("Parse Error: multiple actions possible at state: "+b+", token: "+w);switch(y[0]){case 1:i.push(w),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),i.push(y[1]),w=null,g?(w=g,g=null):(u=this.lexer.yyleng,a=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,l>0&&l--);break;case 2:if(_=this.productions_[y[1]][1],T.$=r[r.length-_],T._$={first_line:o[o.length-(_||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(_||1)].first_column,last_column:o[o.length-1].last_column},m&&(T._$.range=[o[o.length-(_||1)].range[0],o[o.length-1].range[1]]),v=this.performAction.apply(T,[a,u,c,this.yy,y[1],r,o].concat(d)),v!==void 0)return v;_&&(i=i.slice(0,2*-1*_),r=r.slice(0,-1*_),o=o.slice(0,-1*_)),i.push(this.productions_[y[1]][0]),r.push(T.$),o.push(T._$),C=s[i[i.length-2]][i[i.length-1]],i.push(C);break;case 3:return!0}}return!0}};return e.prototype=t,t.Parser=e,new e}();e!==void 0&&n!==void 0&&(n.parser=r,n.Parser=r.Parser,n.parse=function(){return r.parse.apply(r,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),i.exit(1));var r=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(r)},t!==void 0&&e.main===t&&n.main(i.argv.slice(1)))}).call(this,e("g5I+bs"))},{fs:12,"g5I+bs":19,path:18}],8:[function(e){(function(){var t,n,i,r,o,s,a,c,u,l,h,p,d;if(t=e("./coffee-script"),r=e("child_process"),c=e("./helpers"),l=e("path"),u=function(e,n){var i;return i=t._compileFile(n,!1,{runtime:"interp"}),e._compile(i,n)},e.extensions){for(d=t.FILE_EXTENSIONS,h=0,p=d.length;p>h;h++)o=d[h],e.extensions[o]=u;n=e("module"),s=function(e){var t,i;for(i=l.basename(e).split("."),""===i[0]&&i.shift();i.shift();)if(t="."+i.join("."),n._extensions[t])return t;return".js"},n.prototype.load=function(e){var t;return this.filename=e,this.paths=n._nodeModulePaths(l.dirname(e)),t=s(e),n._extensions[t](this,e),this.loaded=!0}}r&&(a=r.fork,i=e.resolve("../../bin/coffee"),r.fork=function(e,t,n){return c.isCoffee(e)&&(Array.isArray(t)||(n=t||{},t=[]),t=[e].concat(t),e=i),a(e,t,n)})}).call(this)},{"./coffee-script":2,"./helpers":3,child_process:12,module:12,path:18}],9:[function(e,t,n){(function(){var e,t,i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},k=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},n.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,u;for(a=this.tokens,i=0;s=a[e];){if(0===i&&t.call(this,s,e))return n.call(this,s,e);if(!s||0>i)return n.call(this,s,e-1);c=s[0],v.call(o,c)>=0?i+=1:(u=s[0],v.call(r,u)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(r=this.tokens,e=n=0,i=r.length;i>n&&(t=r[e][0],"TERMINATOR"===t);e=++n);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.matchTags=function(){var e,t,n,i,r,o,s;for(t=arguments[0],i=arguments.length>=2?k.call(arguments,1):[],e=0,n=r=0,o=i.length;o>=0?o>r:r>o;n=o>=0?++r:--r){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=i[n]&&("string"==typeof i[n]&&(i[n]=[i[n]]),s=this.tag(t+n+e),0>v.call(i[n],s)))return!1}return!0},e.prototype.looksObjectish=function(e){return this.matchTags(e,"@",null,":")||this.matchTags(e,null,":")},e.prototype.findTagsBackwards=function(e,t){var n,i,s,a,c,u,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>v.call(t,a)&&(c=this.tag(e),0>v.call(o,c)||this.tokens[e].generated)&&(u=this.tag(e),0>v.call(h,u))));)i=this.tag(e),v.call(r,i)>=0&&n.push(this.tag(e)),s=this.tag(e),v.call(o,s)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),v.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e;return e=[],this.scanTokens(function(n,i,l){var p,d,m,w,g,b,y,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U;if($=n[0],F=(T=i>0?l[i-1]:[])[0],_=(l.length-1>i?l[i+1]:[])[0],S=function(){return e[e.length-1]},A=i,m=function(e){return i-A+e},w=function(){var e,t;return null!=(e=S())?null!=(t=e[2])?t.ours:void 0:void 0},g=function(){var e;return w()&&"("===(null!=(e=S())?e[0]:void 0)},y=function(){var e;return w()&&"{"===(null!=(e=S())?e[0]:void 0)},b=function(){var e;return w&&"CONTROL"===(null!=(e=S())?e[0]:void 0)},I=function(t){var n;return n=null!=t?t:i,e.push(["(",n,{ours:!0}]),l.splice(n,0,f("CALL_START","(")),null==t?i+=1:void 0},p=function(){return e.pop(),l.splice(i,0,f("CALL_END",")")),i+=1},R=function(t,r){var o;return null==r&&(r=!0),o=null!=t?t:i,e.push(["{",o,{sameLine:!0,startsLine:r,ours:!0}]),l.splice(o,0,f("{",f(new String("{")),n)),null==t?i+=1:void 0},d=function(t){return t=null!=t?t:i,e.pop(),l.splice(t,0,f("}","}",n)),i+=1},g()&&("IF"===$||"TRY"===$||"FINALLY"===$||"CATCH"===$||"CLASS"===$||"SWITCH"===$))return e.push(["CONTROL",i,{ours:!0}]),m(1);if("INDENT"===$&&w()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;g();)p();return b()&&e.pop(),e.push([$,i]),m(1)}if(v.call(o,$)>=0)return e.push([$,i]),m(1);if(v.call(r,$)>=0){for(;w();)g()?p():y()?d():e.pop();e.pop()}if((v.call(c,$)>=0&&n.spaced&&!n.stringEnd||"?"===$&&i>0&&!l[i-1].spaced)&&(v.call(s,_)>=0||v.call(u,_)>=0&&!(null!=(j=l[i+1])?j.spaced:void 0)&&!(null!=(P=l[i+1])?P.newLine:void 0)))return"?"===$&&($=n[0]="FUNC_EXIST"),I(i+1),L=m(2);if(v.call(c,$)>=0&&this.matchTags(i+1,"INDENT",null,":")&&!this.findTagsBackwards(i,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return I(i+1),e.push(["INDENT",i+2]),m(3);if(":"===$){for(x="@"===this.tag(i-2)?i-2:i-1;"HERECOMMENT"===this.tag(x-2);)x-=2;return this.insideForDeclaration="FOR"===_,O=0===x||(B=this.tag(x-1),v.call(h,B)>=0)||l[x-1].newLine,S()&&(M=S(),D=M[0],E=M[1],("{"===D||"INDENT"===D&&"{"===this.tag(E-1))&&(O||","===this.tag(x-1)||"{"===this.tag(x-1)))?m(1):(R(x,!!O),m(2))}if(y()&&v.call(h,$)>=0&&(S()[2].sameLine=!1),k="OUTDENT"===F||T.newLine,v.call(a,$)>=0||v.call(t,$)>=0&&k)for(;w();)if(V=S(),D=V[0],E=V[1],U=V[2],N=U.sameLine,O=U.startsLine,g()&&","!==F)p();else if(y()&&!this.insideForDeclaration&&N&&"TERMINATOR"!==$&&":"!==F&&d());else{if(!y()||"TERMINATOR"!==$||","===F||O&&this.looksObjectish(i+1))break;d()}if(!(","!==$||this.looksObjectish(i+1)||!y()||this.insideForDeclaration||"TERMINATOR"===_&&this.looksObjectish(i+2)))for(C="OUTDENT"===_?1:0;y();)d(i+C);return m(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,n,r,o,s;return s=r=o=null,n=function(e,n){var r,o,a,c;return";"!==e[1]&&(r=e[0],v.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(o=this.tag(n+1),v.call(i,o)>=0))&&!("ELSE"===e[0]&&"THEN"!==s)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==s&&"=>"!==s)||(c=e[0],v.call(t,c)>=0&&this.tokens[n-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,o)},this.scanTokens(function(t,a,c){var u,l,h,p,f,m;if(l=t[0],"TERMINATOR"===l){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(k.call(this.indentation()))),1;if(p=this.tag(a+1),v.call(i,p)>=0)return c.splice(a,1),0}if("CATCH"===l)for(u=h=1;2>=h;u=++h)if("OUTDENT"===(f=this.tag(a+u))||"TERMINATOR"===f||"FINALLY"===f)return c.splice.apply(c,[a+u,0].concat(k.call(this.indentation()))),2+u;return v.call(d,l)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==l||"IF"!==this.tag(a+1))?(s=l,m=this.indentation(c[a]),r=m[0],o=m[1],"THEN"===s&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,n,e),"THEN"===l&&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>v.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}(),e=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],n.INVERSES=l={},o=[],r=[],g=0,b=e.length;b>g;g++)y=e[g],m=y[0],w=y[1],o.push(l[w]=m),r.push(l[m]=w);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],s=["IDENTIFIER","NUMBER","STRING","JS","REGEX","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],u=["+","-"],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"],t=[".","?.","::","?::"],c.push("DEFER"),s.push("DEFER"),a.push("AWAIT")}).call(this)},{}],10:[function(e,t,n){(function(){var t,i,r,o,s;s=e("./helpers"),i=s.extend,o=s.last,r=e("iced-runtime"),n.Scope=t=function(){function e(t,n,i){this.parent=t,this.expressions=n,this.method=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(e.root=this)}return e.root=null,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){return e.length>1?"_"+e+(t>1?t-1:""):"_"+(t+parseInt(e,36)).toString(36).replace(/\d/g,"a")},e.prototype.type=function(e){var t,n,i,r;for(r=this.variables,n=0,i=r.length;i>n;n++)if(t=r[n],t.name===e)return t.type;return null},e.prototype.freeVariable=function(e,t){var n,i;for(null==t&&(t=!0),n=0;this.check(i=this.temporary(e,n));)n++;return t&&this.add(i,"var",!0),i},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,t,n,i,r,o;for(e=[],t=[],o=this.variables,i=0,r=o.length;r>i;i++)n=o[i],"var"===n.type&&("_"===n.name.charAt(0)?t:e).push(n.name);return e.sort().concat(t.sort())},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],e.type.assigned&&r.push(""+e.name+" = "+e.type.value);return r},e}()}).call(this)},{"./helpers":3,"iced-runtime":15}],11:[function(e,t,n){(function(){var e,t;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}(),t=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={}),o=n[0],r=n[1],s=(a=this.lines)[o]||(a[o]=new e(o)),s.add(r,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,u,l,h,p,d,f,m,w,g;for(null==e&&(e={}),null==t&&(t=null),h=0,i=0,o=0,r=0,u=!1,n="",w=this.lines,a=p=0,f=w.length;f>p;a=++p)if(s=w[a])for(g=s.columns,d=0,m=g.length;m>d;d++)if(c=g[d]){for(;c.line>h;)i=0,u=!1,n+=";",h++;u&&(n+=",",u=!1),n+=this.encodeVlq(c.column-i),i=c.column,n+=this.encodeVlq(0),n+=this.encodeVlq(c.sourceLine-o),o=c.sourceLine,n+=this.encodeVlq(c.sourceColumn-r),r=c.sourceColumn,u=!0}return l={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(l.sourcesContent=[t]),JSON.stringify(l,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+s;a||!t;)n=a&o,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),n.SourceMap=t}).call(this)},{}],12:[function(){},{}],13:[function(e,t){(function(){t.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context",defer_arg:"__iced_defer_"}}).call(this)},{}],14:[function(e,t,n){(function(){var t,i,r,o,s,a,c,u,l=[].slice;o=s=function(){},t=e("./const"),n.iced=r=e("./runtime"),u=function(e,t,n,i){var o,a,c,u,h,p;p=s,u=r.findDeferral(arguments),a=new r.Rendezvous,i[0]=a.id(!0).defer({assign_fn:function(){return function(){return function(){return o=l.call(arguments,0)}}}(this)(),lineno:20,context:h}),setTimeout(a.id(!1).defer({lineno:21,context:h}),t),function(){return function(e){h=new r.Deferrals(e,{parent:u,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),a.wait(h.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:22})),h._fulfill()}}(this)(function(){return function(){return n&&(n[0]=c),e.apply(null,o)}}(this))},n.timeout=function(e,t,n){var i;return i=[],u(e,t,n,i),i[0]},a=function(e,t,n){var i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(e){a=new r.Deferrals(e,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=a.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:39}),a._fulfill()}}(this)(function(){return function(){return i||(t[0]=!1),e()}}(this))},n.iand=function(e,t){var n;return n=[],a(e,t,n),n[0]},c=function(e,t,n){var i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(e){a=new r.Deferrals(e,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=a.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:58}),a._fulfill()}}(this)(function(){return function(){return i&&(t[0]=!0),e()}}(this))},n.ior=function(e,t){var n;return n=[],c(e,t,n),n[0]},n.Pipeliner=i=function(){function e(e,n){this.window=e||1,this.delay=n||0,this.queue=[],this.n_out=0,this.cb=null,this[t.deferrals]=this,this.defer=this._defer}return e.prototype.waitInQueue=function(e){var t,n,i;i=s,t=r.findDeferral(arguments),function(e){return function(i){var o;o=function(i){var s,a,c;return s=i,a=function(){return r.trampoline(function(){return o(i)})},c=a,e.n_out>=e.window?(function(i){n=new r.Deferrals(i,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),e.cb=n.defer({lineno:100}),n._fulfill()}(c),void 0):s()},o(i)}}(this)(function(i){return function(){i.n_out++,function(e){return i.delay?(function(e){n=new r.Deferrals(e,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(n.defer({lineno:108}),i.delay),n._fulfill()}(e),void 0):e()}(function(){return e()})}}(this))},e.prototype.__defer=function(e,t){var n,i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(n){a=new r.Deferrals(n,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),i=a.defer({lineno:122}),e[0]=function(){var e,n;return e=arguments.length>=1?l.call(arguments,0):[],null!=(n=t.assign_fn)&&n.apply(null,e),i()},a._fulfill()}}(this)(function(e){return function(){return e.n_out--,e.cb?(n=e.cb,e.cb=null,n()):void 0}}(this))},e.prototype._defer=function(e){var t;return t=[],this.__defer(t,e),t[0]},e.prototype.flush=function(e){var t,n,i;n=e,t=r.findDeferral(arguments),i=function(e){var n;return function(o){var s,a,c;return s=o,a=function(){return r.trampoline(function(){return i(o)})},c=a,e.n_out?(function(i){n=new r.Deferrals(i,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),e.cb=n.defer({lineno:151}),n._fulfill()}(c),void 0):s()}}(this),i(n)},e}()}).call(this)},{"./const":13,"./runtime":16}],15:[function(e,t,n){(function(){var t,i,r,o,s,a;for(n["const"]=e("./const"),r=[e("./runtime"),e("./library")],s=0,a=r.length;a>s;s++){i=r[s];for(t in i)o=i[t],n[t]=o}}).call(this)},{"./const":13,"./library":14,"./runtime":16}],16:[function(e,t,n){(function(t){(function(){var i,r,o,s,a,c,u,l,h,p,d,f,m,w=[].slice;i=e("./const"),c=function(e,t,n,r,o){var s,a,c,u;c={};for(s in r)u=r[s],c[s]=u;return c[i.lineno]=null!=t?t[i.lineno]:void 0,a=function(){var i,r,s;return i=arguments.length>=1?w.call(arguments,0):[],null!=t&&null!=(s=t.assign_fn)&&s.apply(null,i),e?(r=e,o||(e=null),r._fulfill(n,c)):p("overused deferral at "+m(c))},a[i.trace]=c,a},f=0,l=function(e){return f++,0===f%e?(f=0,!0):!1},d=null,m=function(e){var t;return t=e[i.funcname]||"",""+t+" ("+e[i.filename]+":"+(e[i.lineno]+1)+")"},p=function(e){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+e):void 0},n.trampoline=h=function(e){return l(500)?null!=(t!==void 0&&null!==t?t.nextTick:void 0)?t.nextTick(e):setTimeout(e):e()},n.Deferrals=r=function(){function e(e,t){this.trace=t,this.continuation=e,this.count=1,this.ret=null}return e.prototype._call=function(e){var t;return this.continuation?(d=e,t=this.continuation,this.continuation=null,t(this.ret)):p("Entered dead await at "+m(e))},e.prototype._fulfill=function(e,t){return--this.count>0?void 0:h(function(e){return function(){return e._call(t)}}(this))},e.prototype.defer=function(e){var t;return this.count++,t=this,c(t,e,null,this.trace)},e}(),n.findDeferral=a=function(e){var t,n,r;for(n=0,r=e.length;r>n;n++)if(t=e[n],null!=t?t[i.trace]:void 0)return t;return null},n.Rendezvous=o=function(){function e(){this.completed=[],this.waiters=[],this.defer_id=0}var t;return t=function(){function e(e,t,n){this.rv=e,this.id=t,this.multi=n}return e.prototype.defer=function(e){return this.rv._defer_with_id(this.id,e,this.multi)},e}(),e.prototype.wait=function(e){var t;return this.completed.length?(t=this.completed.shift(),e(t)):this.waiters.push(e)},e.prototype.defer=function(e){var t;return t=this.defer_id++,this._defer_with_id(t,e)},e.prototype.id=function(e,n){return n=!!n,new t(this,e,n)},e.prototype._fulfill=function(e){var t;return this.waiters.length?(t=this.waiters.shift(),t(e)):this.completed.push(e)},e.prototype._defer_with_id=function(e,t,n){return this.count++,c(this,t,e,{},n)},e}(),n.stackWalk=u=function(e){var t,n,r,o;for(n=[],r=e?e[i.trace]:d;r;)t=" at "+m(r),n.push(t),r=null!=r?null!=(o=r[i.parent])?o[i.trace]:void 0:void 0;return n},n.exceptionHandler=s=function(e,t){var n;return t||(t=console.error),t(e.stack),n=u(),n.length?(t("Iced 'stack' trace (w/ real line numbers):"),t(n.join("\n"))):void 0},n.catchExceptions=function(e){return t!==void 0&&null!==t?t.on("uncaughtException",function(n){return s(n,e),t.exit(1)}):void 0}}).call(this)}).call(this,e("g5I+bs"))},{"./const":13,"g5I+bs":19}],17:[function(e,t){var n=[].indexOf;t.exports=function(e,t){if(n)return e.indexOf(t);for(var i=0;e.length>i;++i)if(e[i]===t)return i;return-1}},{}],18:[function(e,t,n){(function(e){function t(e,t){for(var n=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),n++):n&&(e.splice(i,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],i=0;e.length>i;i++)t(e[i],i,e)&&n.push(e[i]);return n}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return r.exec(e).slice(1)};n.resolve=function(){for(var n="",r=!1,o=arguments.length-1;o>=-1&&!r;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,r="/"===s.charAt(0))}return n=t(i(n.split("/"),function(e){return!!e}),!r).join("/"),(r?"/":"")+n||"."},n.normalize=function(e){var r=n.isAbsolute(e),o="/"===s(e,-1);return e=t(i(e.split("/"),function(e){return!!e}),!r).join("/"),e||r||(e="."),e&&o&&(e+="/"),(r?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(i(e,function(e){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function i(e){for(var t=0;e.length>t&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var r=i(e.split("/")),o=i(t.split("/")),s=Math.min(r.length,o.length),a=s,c=0;s>c;c++)if(r[c]!==o[c]){a=c;break}for(var u=[],c=a;r.length>c;c++)u.push("..");return u=u.concat(o.slice(a)),u.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=o(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},n.basename=function(e,t){var n=o(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return o(e)[3]};var s="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return 0>t&&(t=e.length+t),e.substr(t,n)}}).call(this,e("g5I+bs"))},{"g5I+bs":19}],19:[function(e,t){function n(){}var i=t.exports={};i.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var i=n.shift();i()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=n,i.addListener=n,i.once=n,i.off=n,i.removeListener=n,i.removeAllListeners=n,i.emit=n,i.binding=function(){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(){throw Error("process.chdir is not supported")}},{}],20:[function(_dereq_,module,exports){function Context(){}var indexOf=_dereq_("indexof"),Object_keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t},forEach=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;e.length>n;n++)t(e[n],n,e)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(e,t,n){Object.defineProperty(e,t,{writable:!0,enumerable:!1,configurable:!0,value:n})}}catch(e){return function(e,t,n){e[t]=n}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];Context.prototype={};var Script=exports.Script=function NodeScript(e){return this instanceof Script?(this.code=e,void 0):new Script(e)};Script.prototype.runInContext=function(e){if(!(e instanceof Context))throw new TypeError("needs a 'context' argument.");var t=document.createElement("iframe");t.style||(t.style={}),t.style.display="none",document.body.appendChild(t);var n=t.contentWindow,i=n.eval,r=n.execScript;!i&&r&&(r.call(n,"null"),i=n.eval),forEach(Object_keys(e),function(t){n[t]=e[t]}),forEach(globals,function(t){e[t]&&(n[t]=e[t])});var o=Object_keys(n),s=i.call(n,this.code);return forEach(Object_keys(n),function(t){(t in e||-1===indexOf(o,t))&&(e[t]=n[t])}),forEach(globals,function(t){t in e||defineProp(e,t,n[t])}),document.body.removeChild(t),s},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(e){var t=Script.createContext(e),n=this.runInContext(t);return forEach(Object_keys(t),function(n){e[n]=t[n]}),n},forEach(Object_keys(Script.prototype),function(e){exports[e]=Script[e]=function(t){var n=Script(t);return n[e].apply(n,[].slice.call(arguments,1))}}),exports.createScript=function(e){return exports.Script(e)},exports.createContext=Script.createContext=function(e){var t=new Context;return"object"==typeof e&&forEach(Object_keys(e),function(n){t[n]=e[n]}),t}},{indexof:17}]},{},[1])(1)}),"undefined"!=typeof CoffeeScript&&(root.CoffeeScript=CoffeeScript)})(this); \ No newline at end of file diff --git a/extras/iced-coffee-script-108.0.10.js b/extras/iced-coffee-script-108.0.10.js new file mode 100644 index 0000000000..e75ecb28a3 --- /dev/null +++ b/extras/iced-coffee-script-108.0.10.js @@ -0,0 +1,8887 @@ +/** + * IcedCoffeeScript Compiler v108.0.10 + * http://iced-coffee-script.github.io/iced-coffee-script + * + * Copyright 2011, Jeremy Ashkenas, Maxwell Krohn + * Released under the MIT License + */ +(function(root){ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.CoffeeScript=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { + _results.push(s); + } + } + return _results; + })(); + index = 0; + execute = function() { + var param; + param = coffees[index]; + if (param instanceof Array) { + CoffeeScript.run.apply(CoffeeScript, param); + index++; + return execute(); + } + }; + _fn = function(script, i) { + var options; + options = { + literate: script.type === coffeetypes[1] + }; + if (script.src) { + return CoffeeScript.load(script.src, function(param) { + coffees[i] = param; + return execute(); + }, options, true); + } else { + options.sourceFiles = ['embedded']; + return coffees[i] = [script.innerHTML, options]; + } + }; + for (i = _i = 0, _len = coffees.length; _i < _len; i = ++_i) { + script = coffees[i]; + _fn(script, i); + } + return execute(); + }; + + if (window.addEventListener) { + window.addEventListener('DOMContentLoaded', runScripts, false); + } else { + window.attachEvent('onload', runScripts); + } + + window.iced = CoffeeScript.iced; + + module.exports = CoffeeScript; + +}).call(this); + +},{"./coffee-script":2}],2:[function(_dereq_,module,exports){ +(function (process,global){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var Lexer, SourceMap, compile, ext, formatSourcePosition, fs, getSourceMap, helpers, iced_runtime, iced_transform, lexer, parser, path, sourceMaps, vm, withPrettyErrors, _base, _i, _len, _ref, + __hasProp = {}.hasOwnProperty, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + fs = _dereq_('fs'); + + vm = _dereq_('vm'); + + path = _dereq_('path'); + + Lexer = _dereq_('./lexer').Lexer; + + parser = _dereq_('./parser').parser; + + helpers = _dereq_('./helpers'); + + SourceMap = _dereq_('./sourcemap').SourceMap; + + iced_transform = _dereq_('./iced').transform; + + iced_runtime = _dereq_('iced-runtime'); + + exports.VERSION = '108.0.10'; + + exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md', '.iced', '.liticed', '.iced.md']; + + exports.helpers = helpers; + + withPrettyErrors = function(fn) { + return function(code, options) { + var err; + if (options == null) { + options = {}; + } + try { + return fn.call(this, code, options); + } catch (_error) { + err = _error; + throw helpers.updateSyntaxError(err, code, options.filename); + } + }; + }; + + exports.compile = compile = withPrettyErrors(function(code, options) { + var answer, currentColumn, currentLine, extend, fragment, fragments, header, js, map, merge, newLines, _i, _len; + merge = helpers.merge, extend = helpers.extend; + options = extend({}, options); + if (options.sourceMap) { + map = new SourceMap; + } + fragments = (iced_transform(parser.parse(lexer.tokenize(code, options)), options)).compileToFragments(options); + currentLine = 0; + if (options.header) { + currentLine += 1; + } + if (options.shiftLine) { + currentLine += 1; + } + currentColumn = 0; + js = ""; + for (_i = 0, _len = fragments.length; _i < _len; _i++) { + fragment = fragments[_i]; + if (options.sourceMap) { + if (fragment.locationData) { + map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], { + noReplace: true + }); + } + newLines = helpers.count(fragment.code, "\n"); + currentLine += newLines; + if (newLines) { + currentColumn = fragment.code.length - (fragment.code.lastIndexOf("\n") + 1); + } else { + currentColumn += fragment.code.length; + } + } + js += fragment.code; + } + if (options.header) { + header = "Generated by IcedCoffeeScript " + this.VERSION; + js = "// " + header + "\n" + js; + } + if (options.sourceMap) { + answer = { + js: js + }; + answer.sourceMap = map; + answer.v3SourceMap = map.generate(options, code); + return answer; + } else { + return js; + } + }); + + exports.tokens = withPrettyErrors(function(code, options) { + return lexer.tokenize(code, options); + }); + + exports.nodes = withPrettyErrors(function(source, options) { + var ast; + if (typeof source === 'string') { + ast = parser.parse(lexer.tokenize(source, options)); + } else { + ast = parser.parse(source); + } + if (!options.noIcedTransform) { + ast = iced_transform(ast, options); + } + return ast; + }); + + exports.run = function(code, options) { + var answer, dir, mainModule, _ref; + if (options == null) { + options = {}; + } + mainModule = _dereq_.main; + mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; + mainModule.moduleCache && (mainModule.moduleCache = {}); + dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); + mainModule.paths = _dereq_('module')._nodeModulePaths(dir); + if (!helpers.isCoffee(mainModule.filename) || _dereq_.extensions) { + options.runtime = "interp"; + answer = compile(code, options); + code = (_ref = answer.js) != null ? _ref : answer; + } + return mainModule._compile(code, mainModule.filename); + }; + + exports["eval"] = function(code, options) { + var Module, Script, createContext, isContext, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _ref2, _ref3, _require; + if (options == null) { + options = {}; + } + if (!(code = code.trim())) { + return; + } + Script = vm.Script; + if (Script) { + createContext = (_ref = vm.Script.createContext) != null ? _ref : vm.createContext; + isContext = (_ref1 = vm.isContext) != null ? _ref1 : function(ctx) { + return options.sandbox instanceof createContext().constructor; + }; + if (options.sandbox != null) { + if (isContext(options.sandbox)) { + sandbox = options.sandbox; + } else { + sandbox = createContext(); + _ref2 = options.sandbox; + for (k in _ref2) { + if (!__hasProp.call(_ref2, k)) continue; + v = _ref2[k]; + sandbox[k] = v; + } + } + sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox; + } else { + sandbox = global; + } + sandbox.__filename = options.filename || 'eval'; + sandbox.__dirname = path.dirname(sandbox.__filename); + if (!(sandbox !== global || sandbox.module || sandbox.require)) { + Module = _dereq_('module'); + sandbox.module = _module = new Module(options.modulename || 'eval'); + sandbox.require = _require = function(path) { + return Module._load(path, _module, true); + }; + _module.filename = sandbox.__filename; + _ref3 = Object.getOwnPropertyNames(_dereq_); + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + r = _ref3[_i]; + if (r !== 'paths') { + _require[r] = _dereq_[r]; + } + } + _require.paths = _module.paths = Module._nodeModulePaths(process.cwd()); + _require.resolve = function(request) { + return Module._resolveFilename(request, _module); + }; + } + } + o = {}; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + o[k] = v; + } + o.bare = true; + js = compile(code, o); + if (sandbox === global) { + return vm.runInThisContext(js); + } else { + return vm.runInContext(js, sandbox); + } + }; + + exports.register = function() { + return _dereq_('./register'); + }; + + if (_dereq_.extensions) { + _ref = this.FILE_EXTENSIONS; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + ext = _ref[_i]; + if ((_base = _dereq_.extensions)[ext] == null) { + _base[ext] = function() { + throw new Error("Use CoffeeScript.register() or require the coffee-script/register module to require " + ext + " files."); + }; + } + } + } + + exports._compileFile = function(filename, sourceMap, opts_passed) { + var answer, err, k, opts, raw, stripped, v; + if (sourceMap == null) { + sourceMap = false; + } + if (opts_passed == null) { + opts_passed = {}; + } + raw = fs.readFileSync(filename, 'utf8'); + stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw; + opts = { + filename: filename, + sourceMap: sourceMap, + literate: helpers.isLiterate(filename) + }; + for (k in opts_passed) { + v = opts_passed[k]; + opts[k] = v; + } + try { + answer = compile(stripped, opts); + } catch (_error) { + err = _error; + throw helpers.updateSyntaxError(err, stripped, filename); + } + return answer; + }; + + lexer = new Lexer; + + parser.lexer = { + lex: function() { + var tag, token; + token = this.tokens[this.pos++]; + if (token) { + tag = token[0], this.yytext = token[1], this.yylloc = token[2]; + this.errorToken = token.origin || token; + this.yylineno = this.yylloc.first_line; + } else { + tag = ''; + } + return tag; + }, + setInput: function(tokens) { + this.tokens = tokens; + return this.pos = 0; + }, + upcomingInput: function() { + return ""; + } + }; + + parser.yy = _dereq_('./nodes'); + + exports.iced = iced_runtime; + + parser.yy.parseError = function(message, _arg) { + var errorLoc, errorTag, errorText, errorToken, token, tokens, _ref1; + token = _arg.token; + _ref1 = parser.lexer, errorToken = _ref1.errorToken, tokens = _ref1.tokens; + errorTag = errorToken[0], errorText = errorToken[1], errorLoc = errorToken[2]; + errorText = errorToken === tokens[tokens.length - 1] ? 'end of input' : errorTag === 'INDENT' || errorTag === 'OUTDENT' ? 'indentation' : helpers.nameWhitespaceCharacter(errorText); + return helpers.throwSyntaxError("unexpected " + errorText, errorLoc); + }; + + formatSourcePosition = function(frame, getSourceMapping) { + var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; + fileName = void 0; + fileLocation = ''; + if (frame.isNative()) { + fileLocation = "native"; + } else { + if (frame.isEval()) { + fileName = frame.getScriptNameOrSourceURL(); + if (!fileName) { + fileLocation = "" + (frame.getEvalOrigin()) + ", "; + } + } else { + fileName = frame.getFileName(); + } + fileName || (fileName = ""); + line = frame.getLineNumber(); + column = frame.getColumnNumber(); + source = getSourceMapping(fileName, line, column); + fileLocation = source ? "" + fileName + ":" + source[0] + ":" + source[1] : "" + fileName + ":" + line + ":" + column; + } + functionName = frame.getFunctionName(); + isConstructor = frame.isConstructor(); + isMethodCall = !(frame.isToplevel() || isConstructor); + if (isMethodCall) { + methodName = frame.getMethodName(); + typeName = frame.getTypeName(); + if (functionName) { + tp = as = ''; + if (typeName && functionName.indexOf(typeName)) { + tp = "" + typeName + "."; + } + if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) { + as = " [as " + methodName + "]"; + } + return "" + tp + functionName + as + " (" + fileLocation + ")"; + } else { + return "" + typeName + "." + (methodName || '') + " (" + fileLocation + ")"; + } + } else if (isConstructor) { + return "new " + (functionName || '') + " (" + fileLocation + ")"; + } else if (functionName) { + return "" + functionName + " (" + fileLocation + ")"; + } else { + return fileLocation; + } + }; + + sourceMaps = {}; + + getSourceMap = function(filename) { + var answer, _ref1; + if (sourceMaps[filename]) { + return sourceMaps[filename]; + } + if (_ref1 = path != null ? path.extname(filename) : void 0, __indexOf.call(exports.FILE_EXTENSIONS, _ref1) < 0) { + return; + } + answer = exports._compileFile(filename, true); + return sourceMaps[filename] = answer.sourceMap; + }; + + Error.prepareStackTrace = function(err, stack) { + var frame, frames, getSourceMapping; + getSourceMapping = function(filename, line, column) { + var answer, sourceMap; + sourceMap = getSourceMap(filename); + if (sourceMap) { + answer = sourceMap.sourceLocation([line - 1, column - 1]); + } + if (answer) { + return [answer[0] + 1, answer[1] + 1]; + } else { + return null; + } + }; + frames = (function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = stack.length; _j < _len1; _j++) { + frame = stack[_j]; + if (frame.getFunction() === exports.run) { + break; + } + _results.push(" at " + (formatSourcePosition(frame, getSourceMapping))); + } + return _results; + })(); + return "" + (err.toString()) + "\n" + (frames.join('\n')) + "\n"; + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./helpers":3,"./iced":4,"./lexer":5,"./nodes":6,"./parser":7,"./register":8,"./sourcemap":11,"fs":12,"g5I+bs":19,"iced-runtime":15,"module":12,"path":18,"vm":20}],3:[function(_dereq_,module,exports){ +(function (process){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var buildLocationData, extend, flatten, last, repeat, syntaxErrorToString, _ref; + + exports.starts = function(string, literal, start) { + return literal === string.substr(start, literal.length); + }; + + exports.ends = function(string, literal, back) { + var len; + len = literal.length; + return literal === string.substr(string.length - len - (back || 0), len); + }; + + exports.repeat = repeat = function(str, n) { + var res; + res = ''; + while (n > 0) { + if (n & 1) { + res += str; + } + n >>>= 1; + str += str; + } + return res; + }; + + exports.compact = function(array) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + item = array[_i]; + if (item) { + _results.push(item); + } + } + return _results; + }; + + exports.count = function(string, substr) { + var num, pos; + num = pos = 0; + if (!substr.length) { + return 1 / 0; + } + while (pos = 1 + string.indexOf(substr, pos)) { + num++; + } + return num; + }; + + exports.merge = function(options, overrides) { + return extend(extend({}, options), overrides); + }; + + extend = exports.extend = function(object, properties) { + var key, val; + for (key in properties) { + val = properties[key]; + object[key] = val; + } + return object; + }; + + exports.flatten = flatten = function(array) { + var element, flattened, _i, _len; + flattened = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + element = array[_i]; + if (element instanceof Array) { + flattened = flattened.concat(flatten(element)); + } else { + flattened.push(element); + } + } + return flattened; + }; + + exports.del = function(obj, key) { + var val; + val = obj[key]; + delete obj[key]; + return val; + }; + + exports.last = last = function(array, back) { + return array[array.length - (back || 0) - 1]; + }; + + exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) { + var e, _i, _len; + for (_i = 0, _len = this.length; _i < _len; _i++) { + e = this[_i]; + if (fn(e)) { + return true; + } + } + return false; + }; + + exports.invertLiterate = function(code) { + var line, lines, maybe_code; + maybe_code = true; + lines = (function() { + var _i, _len, _ref1, _results; + _ref1 = code.split('\n'); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + line = _ref1[_i]; + if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) { + _results.push(line); + } else if (maybe_code = /^\s*$/.test(line)) { + _results.push(line); + } else { + _results.push('# ' + line); + } + } + return _results; + })(); + return lines.join('\n'); + }; + + buildLocationData = function(first, last) { + if (!last) { + return first; + } else { + return { + first_line: first.first_line, + first_column: first.first_column, + last_line: last.last_line, + last_column: last.last_column + }; + } + }; + + exports.addLocationDataFn = function(first, last) { + return function(obj) { + if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) { + obj.updateLocationDataIfMissing(buildLocationData(first, last)); + } + return obj; + }; + }; + + exports.locationDataToString = function(obj) { + var locationData; + if (("2" in obj) && ("first_line" in obj[2])) { + locationData = obj[2]; + } else if ("first_line" in obj) { + locationData = obj; + } + if (locationData) { + return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1)); + } else { + return "No location data"; + } + }; + + exports.baseFileName = function(file, stripExt, useWinPathSep) { + var parts, pathSep; + if (stripExt == null) { + stripExt = false; + } + if (useWinPathSep == null) { + useWinPathSep = false; + } + pathSep = useWinPathSep ? /\\|\// : /\//; + parts = file.split(pathSep); + file = parts[parts.length - 1]; + if (!(stripExt && file.indexOf('.') >= 0)) { + return file; + } + parts = file.split('.'); + parts.pop(); + if (parts[parts.length - 1] === 'coffee' && parts.length > 1) { + parts.pop(); + } + return parts.join('.'); + }; + + exports.isCoffee = function(file) { + return /\.((lit)?coffee|coffee\.md|iced|liticed|iced\.md)$/.test(file); + }; + + exports.isLiterate = function(file) { + return /\.(litcoffee|coffee\.md|liticed|iced\.md)$/.test(file); + }; + + exports.throwSyntaxError = function(message, location) { + var error; + error = new SyntaxError(message); + error.location = location; + error.toString = syntaxErrorToString; + error.stack = error.toString(); + throw error; + }; + + exports.updateSyntaxError = function(error, code, filename) { + if (error.toString === syntaxErrorToString) { + error.code || (error.code = code); + error.filename || (error.filename = filename); + error.stack = error.toString(); + } + return error; + }; + + syntaxErrorToString = function() { + var codeLine, colorize, colorsEnabled, end, filename, first_column, first_line, last_column, last_line, marker, start, _ref1, _ref2; + if (!(this.code && this.location)) { + return Error.prototype.toString.call(this); + } + _ref1 = this.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column; + if (last_line == null) { + last_line = first_line; + } + if (last_column == null) { + last_column = first_column; + } + filename = this.filename || '[stdin]'; + codeLine = this.code.split('\n')[first_line]; + start = first_column; + end = first_line === last_line ? last_column + 1 : codeLine.length; + marker = codeLine.slice(0, start).replace(/[^\s]/g, ' ') + repeat('^', end - start); + if ((typeof process !== "undefined" && process !== null ? process.stdout : void 0) != null) { + colorsEnabled = process.stdout.isTTY && !process.env.NODE_DISABLE_COLORS; + } + if ((_ref2 = this.colorful) != null ? _ref2 : colorsEnabled) { + colorize = function(str) { + return "\x1B[1;31m" + str + "\x1B[0m"; + }; + codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end); + marker = colorize(marker); + } + return "" + filename + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + this.message + "\n" + codeLine + "\n" + marker; + }; + + exports.nameWhitespaceCharacter = function(string) { + switch (string) { + case ' ': + return 'space'; + case '\n': + return 'newline'; + case '\r': + return 'carriage return'; + case '\t': + return 'tab'; + default: + return string; + } + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs")) +},{"g5I+bs":19}],4:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + exports.transform = function(x, options) { + return x.icedTransform(options); + }; + + exports.runtime = _dereq_('iced-runtime'); + +}).call(this); + +},{"iced-runtime":15}],5:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, UNARY_MATH, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + _ref = _dereq_('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES; + + _ref1 = _dereq_('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; + + exports.Lexer = Lexer = (function() { + function Lexer() {} + + Lexer.prototype.tokenize = function(code, opts) { + var consumed, i, tag, _ref2; + if (opts == null) { + opts = {}; + } + this.literate = opts.literate; + this.indent = 0; + this.baseIndent = 0; + this.indebt = 0; + this.outdebt = 0; + this.indents = []; + this.ends = []; + this.tokens = []; + this.chunkLine = opts.line || 0; + this.chunkColumn = opts.column || 0; + code = this.clean(code); + i = 0; + while (this.chunk = code.slice(i)) { + consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); + _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1]; + i += consumed; + } + this.closeIndentation(); + if (tag = this.ends.pop()) { + this.error("missing " + tag); + } + if (opts.rewrite === false) { + return this.tokens; + } + return (new Rewriter).rewrite(this.tokens); + }; + + Lexer.prototype.clean = function(code) { + if (code.charCodeAt(0) === BOM) { + code = code.slice(1); + } + code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); + if (WHITESPACE.test(code)) { + code = "\n" + code; + this.chunkLine--; + } + if (this.literate) { + code = invertLiterate(code); + } + return code; + }; + + Lexer.prototype.identifierToken = function() { + var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4; + if (!(match = IDENTIFIER.exec(this.chunk))) { + return 0; + } + input = match[0], id = match[1], colon = match[2]; + idLength = id.length; + poppedToken = void 0; + if (id === 'own' && this.tag() === 'FOR') { + this.token('OWN', id); + return id.length; + } + if (id === 'from' && this.tag() === 'YIELD') { + this.token('FROM', id); + return id.length; + } + forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@') && id !== 'defer'; + tag = 'IDENTIFIER'; + if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { + tag = id.toUpperCase(); + if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) { + tag = 'LEADING_WHEN'; + } else if (tag === 'FOR') { + this.seenFor = true; + } else if (tag === 'UNLESS') { + tag = 'IF'; + } else if (__indexOf.call(UNARY, tag) >= 0) { + tag = 'UNARY'; + } else if (__indexOf.call(RELATION, tag) >= 0) { + if (tag !== 'INSTANCEOF' && this.seenFor) { + tag = 'FOR' + tag; + this.seenFor = false; + } else { + tag = 'RELATION'; + if (this.value() === '!') { + poppedToken = this.tokens.pop(); + id = '!' + id; + } + } + } + } + if (__indexOf.call(JS_FORBIDDEN, id) >= 0) { + if (forcedIdentifier) { + tag = 'IDENTIFIER'; + id = new String(id); + id.reserved = true; + } else if (__indexOf.call(RESERVED, id) >= 0) { + this.error("reserved word \"" + id + "\""); + } + } + if (!forcedIdentifier) { + if (__indexOf.call(COFFEE_ALIASES, id) >= 0) { + id = COFFEE_ALIAS_MAP[id]; + } + tag = (function() { + switch (id) { + case '!': + return 'UNARY'; + case '==': + case '!=': + return 'COMPARE'; + case '&&': + case '||': + return 'LOGIC'; + case 'true': + case 'false': + return 'BOOL'; + case 'break': + case 'continue': + return 'STATEMENT'; + default: + return tag; + } + })(); + } + tagToken = this.token(tag, id, 0, idLength); + if (poppedToken) { + _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1]; + } + if (colon) { + colonOffset = input.lastIndexOf(':'); + this.token(':', ':', colonOffset, colon.length); + } + return input.length; + }; + + Lexer.prototype.numberToken = function() { + var binaryLiteral, lexedLength, match, number, octalLiteral; + if (!(match = NUMBER.exec(this.chunk))) { + return 0; + } + number = match[0]; + if (/^0[BOX]/.test(number)) { + this.error("radix prefix '" + number + "' must be lowercase"); + } else if (/E/.test(number) && !/^0x/.test(number)) { + this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'"); + } else if (/^0\d*[89]/.test(number)) { + this.error("decimal literal '" + number + "' must not be prefixed with '0'"); + } else if (/^0\d+/.test(number)) { + this.error("octal literal '" + number + "' must be prefixed with '0o'"); + } + lexedLength = number.length; + if (octalLiteral = /^0o([0-7]+)/.exec(number)) { + number = '0x' + parseInt(octalLiteral[1], 8).toString(16); + } + if (binaryLiteral = /^0b([01]+)/.exec(number)) { + number = '0x' + parseInt(binaryLiteral[1], 2).toString(16); + } + this.token('NUMBER', number, 0, lexedLength); + return lexedLength; + }; + + Lexer.prototype.stringToken = function() { + var inner, innerLen, numBreak, octalEsc, pos, quote, string, trimmed; + switch (quote = this.chunk.charAt(0)) { + case "'": + string = (SIMPLESTR.exec(this.chunk) || [])[0]; + break; + case '"': + string = this.balancedString(this.chunk, '"'); + } + if (!string) { + return 0; + } + inner = string.slice(1, -1); + trimmed = this.removeNewlines(inner); + if (quote === '"' && 0 < string.indexOf('#{', 1)) { + numBreak = pos = 0; + innerLen = inner.length; + while (inner.charAt(pos++) === '\n' && pos < innerLen) { + numBreak++; + } + this.interpolateString(trimmed, { + strOffset: 1 + numBreak, + lexedLength: string.length + }); + } else { + this.token('STRING', quote + this.escapeLines(trimmed) + quote, 0, string.length); + } + if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) { + this.error("octal escape sequences " + string + " are not allowed"); + } + return string.length; + }; + + Lexer.prototype.heredocToken = function() { + var doc, heredoc, match, quote, strOffset; + if (!(match = HEREDOC.exec(this.chunk))) { + return 0; + } + heredoc = match[0]; + quote = heredoc.charAt(0); + doc = this.sanitizeHeredoc(match[2], { + quote: quote, + indent: null + }); + if (quote === '"' && 0 <= doc.indexOf('#{')) { + strOffset = match[2].charAt(0) === '\n' ? 4 : 3; + this.interpolateString(doc, { + heredoc: true, + strOffset: strOffset, + lexedLength: heredoc.length + }); + } else { + this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length); + } + return heredoc.length; + }; + + Lexer.prototype.commentToken = function() { + var comment, here, match; + if (!(match = this.chunk.match(COMMENT))) { + return 0; + } + comment = match[0], here = match[1]; + if (here) { + this.token('HERECOMMENT', this.sanitizeHeredoc(here, { + herecomment: true, + indent: repeat(' ', this.indent) + }), 0, comment.length); + } + return comment.length; + }; + + Lexer.prototype.jsToken = function() { + var match, script; + if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) { + return 0; + } + this.token('JS', (script = match[0]).slice(1, -1), 0, script.length); + return script.length; + }; + + Lexer.prototype.regexToken = function() { + var flags, length, match, prev, regex, _ref2, _ref3; + if (this.chunk.charAt(0) !== '/') { + return 0; + } + if (length = this.heregexToken()) { + return length; + } + prev = last(this.tokens); + if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) { + return 0; + } + if (!(match = REGEX.exec(this.chunk))) { + return 0; + } + _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2]; + if (regex === '//') { + return 0; + } + if (regex.slice(0, 2) === '/*') { + this.error('regular expressions cannot begin with `*`'); + } + this.token('REGEX', "" + regex + flags, 0, match.length); + return match.length; + }; + + Lexer.prototype.heregexToken = function() { + var body, flags, flagsOffset, heregex, match, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; + if (!(match = HEREGEX.exec(this.chunk))) { + return 0; + } + heregex = match[0], body = match[1], flags = match[2]; + if (0 > body.indexOf('#{')) { + re = this.escapeLines(body.replace(HEREGEX_OMIT, '$1$2').replace(/\//g, '\\/'), true); + if (re.match(/^\*/)) { + this.error('regular expressions cannot begin with `*`'); + } + this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length); + return heregex.length; + } + this.token('IDENTIFIER', 'RegExp', 0, 0); + this.token('CALL_START', '(', 0, 0); + tokens = []; + _ref2 = this.interpolateString(body, { + regex: true, + strOffset: 3 + }); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + token = _ref2[_i]; + tag = token[0], value = token[1]; + if (tag === 'TOKENS') { + tokens.push.apply(tokens, value); + } else if (tag === 'NEOSTRING') { + if (!(value = value.replace(HEREGEX_OMIT, '$1$2'))) { + continue; + } + value = value.replace(/\\/g, '\\\\'); + token[0] = 'STRING'; + token[1] = this.makeString(value, '"', true); + tokens.push(token); + } else { + this.error("Unexpected " + tag); + } + prev = last(this.tokens); + plusToken = ['+', '+']; + plusToken[2] = prev[2]; + tokens.push(plusToken); + } + tokens.pop(); + if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') { + this.token('STRING', '""', 0, 0); + this.token('+', '+', 0, 0); + } + (_ref4 = this.tokens).push.apply(_ref4, tokens); + if (flags) { + flagsOffset = heregex.lastIndexOf(flags); + this.token(',', ',', flagsOffset, 0); + this.token('STRING', '"' + flags + '"', flagsOffset, flags.length); + } + this.token(')', ')', heregex.length - 1, 0); + return heregex.length; + }; + + Lexer.prototype.lineToken = function() { + var diff, indent, match, noNewlines, size; + if (!(match = MULTI_DENT.exec(this.chunk))) { + return 0; + } + indent = match[0]; + this.seenFor = false; + size = indent.length - 1 - indent.lastIndexOf('\n'); + noNewlines = this.unfinished(); + if (size - this.indebt === this.indent) { + if (noNewlines) { + this.suppressNewlines(); + } else { + this.newlineToken(0); + } + return indent.length; + } + if (size > this.indent) { + if (noNewlines) { + this.indebt = size - this.indent; + this.suppressNewlines(); + return indent.length; + } + if (!this.tokens.length) { + this.baseIndent = this.indent = size; + return indent.length; + } + diff = size - this.indent + this.outdebt; + this.token('INDENT', diff, indent.length - size, size); + this.indents.push(diff); + this.ends.push('OUTDENT'); + this.outdebt = this.indebt = 0; + this.indent = size; + } else if (size < this.baseIndent) { + this.error('missing indentation', indent.length); + } else { + this.indebt = 0; + this.outdentToken(this.indent - size, noNewlines, indent.length); + } + return indent.length; + }; + + Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) { + var decreasedIndent, dent, lastIndent, _ref2; + decreasedIndent = this.indent - moveOut; + while (moveOut > 0) { + lastIndent = this.indents[this.indents.length - 1]; + if (!lastIndent) { + moveOut = 0; + } else if (lastIndent === this.outdebt) { + moveOut -= this.outdebt; + this.outdebt = 0; + } else if (lastIndent < this.outdebt) { + this.outdebt -= lastIndent; + moveOut -= lastIndent; + } else { + dent = this.indents.pop() + this.outdebt; + if (outdentLength && (_ref2 = this.chunk[outdentLength], __indexOf.call(INDENTABLE_CLOSERS, _ref2) >= 0)) { + decreasedIndent -= dent - moveOut; + moveOut = dent; + } + this.outdebt = 0; + this.pair('OUTDENT'); + this.token('OUTDENT', moveOut, 0, outdentLength); + moveOut -= dent; + } + } + if (dent) { + this.outdebt -= moveOut; + } + while (this.value() === ';') { + this.tokens.pop(); + } + if (!(this.tag() === 'TERMINATOR' || noNewlines)) { + this.token('TERMINATOR', '\n', outdentLength, 0); + } + this.indent = decreasedIndent; + return this; + }; + + Lexer.prototype.whitespaceToken = function() { + var match, nline, prev; + if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { + return 0; + } + prev = last(this.tokens); + if (prev) { + prev[match ? 'spaced' : 'newLine'] = true; + } + if (match) { + return match[0].length; + } else { + return 0; + } + }; + + Lexer.prototype.newlineToken = function(offset) { + while (this.value() === ';') { + this.tokens.pop(); + } + if (this.tag() !== 'TERMINATOR') { + this.token('TERMINATOR', '\n', offset, 0); + } + return this; + }; + + Lexer.prototype.suppressNewlines = function() { + if (this.value() === '\\') { + this.tokens.pop(); + } + return this; + }; + + Lexer.prototype.literalToken = function() { + var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5; + if (match = OPERATOR.exec(this.chunk)) { + value = match[0]; + if (CODE.test(value)) { + this.tagParameters(); + } + } else { + value = this.chunk.charAt(0); + } + tag = value; + prev = last(this.tokens); + if (value === '=' && prev) { + if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) { + this.error("reserved word \"" + (this.value()) + "\" can't be assigned"); + } + if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') { + prev[0] = 'COMPOUND_ASSIGN'; + prev[1] += '='; + return value.length; + } + } + if (value === ';') { + this.seenFor = false; + tag = 'TERMINATOR'; + } else if (__indexOf.call(MATH, value) >= 0) { + tag = 'MATH'; + } else if (__indexOf.call(COMPARE, value) >= 0) { + tag = 'COMPARE'; + } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) { + tag = 'COMPOUND_ASSIGN'; + } else if (__indexOf.call(UNARY, value) >= 0) { + tag = 'UNARY'; + } else if (__indexOf.call(UNARY_MATH, value) >= 0) { + tag = 'UNARY_MATH'; + } else if (__indexOf.call(SHIFT, value) >= 0) { + tag = 'SHIFT'; + } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { + tag = 'LOGIC'; + } else if (prev && !prev.spaced) { + if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) { + if (prev[0] === '?') { + prev[0] = 'FUNC_EXIST'; + } + tag = 'CALL_START'; + } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) { + tag = 'INDEX_START'; + switch (prev[0]) { + case '?': + prev[0] = 'INDEX_SOAK'; + } + } + } + switch (value) { + case '(': + case '{': + case '[': + this.ends.push(INVERSES[value]); + break; + case ')': + case '}': + case ']': + this.pair(value); + } + this.token(tag, value); + return value.length; + }; + + Lexer.prototype.sanitizeHeredoc = function(doc, options) { + var attempt, herecomment, indent, match, _ref2; + indent = options.indent, herecomment = options.herecomment; + if (herecomment) { + if (HEREDOC_ILLEGAL.test(doc)) { + this.error("block comment cannot contain \"*/\", starting"); + } + if (doc.indexOf('\n') < 0) { + return doc; + } + } else { + while (match = HEREDOC_INDENT.exec(doc)) { + attempt = match[1]; + if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) { + indent = attempt; + } + } + } + if (indent) { + doc = doc.replace(RegExp("\\n" + indent, "g"), '\n'); + } + if (!herecomment) { + doc = doc.replace(/^\n/, ''); + } + return doc; + }; + + Lexer.prototype.tagParameters = function() { + var i, stack, tok, tokens; + if (this.tag() !== ')') { + return this; + } + stack = []; + tokens = this.tokens; + i = tokens.length; + tokens[--i][0] = 'PARAM_END'; + while (tok = tokens[--i]) { + switch (tok[0]) { + case ')': + stack.push(tok); + break; + case '(': + case 'CALL_START': + if (stack.length) { + stack.pop(); + } else if (tok[0] === '(') { + tok[0] = 'PARAM_START'; + return this; + } else { + return this; + } + } + } + return this; + }; + + Lexer.prototype.closeIndentation = function() { + return this.outdentToken(this.indent); + }; + + Lexer.prototype.balancedString = function(str, end) { + var continueCount, i, letter, match, prev, stack, _i, _ref2; + continueCount = 0; + stack = [end]; + for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) { + if (continueCount) { + --continueCount; + continue; + } + switch (letter = str.charAt(i)) { + case '\\': + ++continueCount; + continue; + case end: + stack.pop(); + if (!stack.length) { + return str.slice(0, +i + 1 || 9e9); + } + end = stack[stack.length - 1]; + continue; + } + if (end === '}' && (letter === '"' || letter === "'")) { + stack.push(end = letter); + } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) { + continueCount += match[0].length - 1; + } else if (end === '}' && letter === '{') { + stack.push(end = '}'); + } else if (end === '"' && prev === '#' && letter === '{') { + stack.push(end = '}'); + } + prev = letter; + } + return this.error("missing " + (stack.pop()) + ", starting"); + }; + + Lexer.prototype.interpolateString = function(str, options) { + var column, errorToken, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; + if (options == null) { + options = {}; + } + heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength; + offsetInChunk || (offsetInChunk = 0); + strOffset || (strOffset = 0); + lexedLength || (lexedLength = str.length); + tokens = []; + pi = 0; + i = -1; + while (letter = str.charAt(i += 1)) { + if (letter === '\\') { + i += 1; + continue; + } + if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) { + continue; + } + if (pi < i) { + tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi)); + } + if (!errorToken) { + errorToken = this.makeToken('', 'string interpolation', offsetInChunk + i + 1, 2); + } + inner = expr.slice(1, -1); + if (inner.length) { + _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 2), line = _ref2[0], column = _ref2[1]; + nested = new Lexer().tokenize(inner, { + line: line, + column: column, + rewrite: false + }); + popped = nested.pop(); + if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') { + popped = nested.shift(); + } + if (len = nested.length) { + if (len > 1) { + nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0)); + nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0)); + } + tokens.push(['TOKENS', nested]); + } + } + i += expr.length; + pi = i + 1; + } + if ((i > pi && pi < str.length)) { + tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi)); + } + if (regex) { + return tokens; + } + if (!tokens.length) { + return this.token('STRING', '""', offsetInChunk, lexedLength); + } + if (tokens[0][0] !== 'NEOSTRING') { + tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk)); + } + if (interpolated = tokens.length > 1) { + this.token('(', '(', offsetInChunk, 0, errorToken); + } + for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { + token = tokens[i]; + tag = token[0], value = token[1]; + if (i) { + if (i) { + plusToken = this.token('+', '+'); + } + locationToken = tag === 'TOKENS' ? value[0] : token; + plusToken[2] = { + first_line: locationToken[2].first_line, + first_column: locationToken[2].first_column, + last_line: locationToken[2].first_line, + last_column: locationToken[2].first_column + }; + } + if (tag === 'TOKENS') { + (_ref4 = this.tokens).push.apply(_ref4, value); + } else if (tag === 'NEOSTRING') { + token[0] = 'STRING'; + token[1] = this.makeString(value, '"', heredoc); + this.tokens.push(token); + } else { + this.error("Unexpected " + tag); + } + } + if (interpolated) { + rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0); + rparen.stringEnd = true; + this.tokens.push(rparen); + } + return tokens; + }; + + Lexer.prototype.pair = function(tag) { + var wanted; + if (tag !== (wanted = last(this.ends))) { + if ('OUTDENT' !== wanted) { + this.error("unmatched " + tag); + } + this.outdentToken(last(this.indents), true); + return this.pair(tag); + } + return this.ends.pop(); + }; + + Lexer.prototype.getLineAndColumnFromChunk = function(offset) { + var column, lineCount, lines, string; + if (offset === 0) { + return [this.chunkLine, this.chunkColumn]; + } + if (offset >= this.chunk.length) { + string = this.chunk; + } else { + string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9); + } + lineCount = count(string, '\n'); + column = this.chunkColumn; + if (lineCount > 0) { + lines = string.split('\n'); + column = last(lines).length; + } else { + column += string.length; + } + return [this.chunkLine + lineCount, column]; + }; + + Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) { + var lastCharacter, locationData, token, _ref2, _ref3; + if (offsetInChunk == null) { + offsetInChunk = 0; + } + if (length == null) { + length = value.length; + } + locationData = {}; + _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1]; + lastCharacter = Math.max(0, length - 1); + _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1]; + token = [tag, value, locationData]; + return token; + }; + + Lexer.prototype.token = function(tag, value, offsetInChunk, length, origin) { + var token; + token = this.makeToken(tag, value, offsetInChunk, length); + if (origin) { + token.origin = origin; + } + this.tokens.push(token); + return token; + }; + + Lexer.prototype.tag = function(index, tag) { + var tok; + return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]); + }; + + Lexer.prototype.value = function(index, val) { + var tok; + return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]); + }; + + Lexer.prototype.unfinished = function() { + var _ref2; + return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === 'UNARY_MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'YIELD' || _ref2 === '**' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); + }; + + Lexer.prototype.removeNewlines = function(str) { + return str.replace(/^\s*\n\s*/, '').replace(/([^\\]|\\\\)\s*\n\s*$/, '$1'); + }; + + Lexer.prototype.escapeLines = function(str, heredoc) { + str = str.replace(/\\[^\S\n]*(\n|\\)\s*/g, function(escaped, character) { + if (character === '\n') { + return ''; + } else { + return escaped; + } + }); + if (heredoc) { + return str.replace(MULTILINER, '\\n'); + } else { + return str.replace(/\s*\n\s*/g, ' '); + } + }; + + Lexer.prototype.makeString = function(body, quote, heredoc) { + if (!body) { + return quote + quote; + } + body = body.replace(RegExp("\\\\(" + quote + "|\\\\)", "g"), function(match, contents) { + if (contents === quote) { + return contents; + } else { + return match; + } + }); + body = body.replace(RegExp("" + quote, "g"), '\\$&'); + return quote + this.escapeLines(body, heredoc) + quote; + }; + + Lexer.prototype.error = function(message, offset) { + var first_column, first_line, _ref2; + if (offset == null) { + offset = 0; + } + _ref2 = this.getLineAndColumnFromChunk(offset), first_line = _ref2[0], first_column = _ref2[1]; + return throwSyntaxError(message, { + first_line: first_line, + first_column: first_column + }); + }; + + return Lexer; + + })(); + + JS_KEYWORDS = ['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']; + + COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; + + COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(['await', 'defer']); + + COFFEE_ALIAS_MAP = { + and: '&&', + or: '||', + is: '==', + isnt: '!=', + not: '!', + yes: 'true', + no: 'false', + on: 'true', + off: 'false' + }; + + COFFEE_ALIASES = (function() { + var _results; + _results = []; + for (key in COFFEE_ALIAS_MAP) { + _results.push(key); + } + return _results; + })(); + + COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); + + RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; + + STRICT_PROSCRIBED = ['arguments', 'eval', 'yield*']; + + JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); + + exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED); + + exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; + + BOM = 65279; + + IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/; + + NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; + + HEREDOC = /^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/; + + OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/; + + WHITESPACE = /^[^\n\S]+/; + + COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/; + + CODE = /^[-=]>/; + + MULTI_DENT = /^(?:\n[^\n\S]*)+/; + + SIMPLESTR = /^'[^\\']*(?:\\[\s\S][^\\']*)*'/; + + JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/; + + REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/; + + HEREGEX = /^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/; + + HEREGEX_OMIT = /((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g; + + MULTILINER = /\n/g; + + HEREDOC_INDENT = /\n+([^\n\S]*)/g; + + HEREDOC_ILLEGAL = /\*\//; + + LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; + + TRAILING_SPACES = /\s+$/; + + COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '**=', '//=', '%%=']; + + UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO']; + + UNARY_MATH = ['!', '~']; + + LOGIC = ['&&', '||', '&', '|', '^']; + + SHIFT = ['<<', '>>', '>>>']; + + COMPARE = ['==', '!=', '<', '>', '<=', '>=']; + + MATH = ['*', '/', '%', '//', '%%']; + + RELATION = ['IN', 'OF', 'INSTANCEOF']; + + BOOL = ['TRUE', 'FALSE']; + + NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--']; + + NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']'); + + CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER']; + + INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED'); + + LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; + + INDENTABLE_CLOSERS = [')', '}', ']']; + + CALLABLE.push('DEFER'); + +}).call(this); + +},{"./helpers":3,"./rewriter":9}],6:[function(_dereq_,module,exports){ +(function (__dirname){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var Access, Arr, Assign, Await, Base, Block, Call, Class, Closure, Code, CodeFragment, Comment, CpsCascade, Defer, Existence, Expansion, Extends, For, HEXNUM, IDENTIFIER, IDENTIFIER_STR, IS_REGEX, IS_STRING, IcedReturnValue, IcedRuntime, IcedTailCall, If, In, Index, InlineRuntime, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, NULL, NUMBER, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Slot, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, iced, isLiteralArguments, isLiteralThis, last, locationDataToString, merge, multident, parseNum, pathmod, quote_funcname_for_debug, quote_path_for_emission, require_top_dir, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.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; }, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + __slice = [].slice; + + Error.stackTraceLimit = Infinity; + + Scope = _dereq_('./scope').Scope; + + _ref = _dereq_('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED; + + iced = _dereq_('iced-runtime'); + + pathmod = _dereq_('path'); + + _ref1 = _dereq_('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; + + exports.extend = extend; + + exports.addLocationDataFn = addLocationDataFn; + + YES = function() { + return true; + }; + + NO = function() { + return false; + }; + + THIS = function() { + return this; + }; + + NEGATE = function() { + this.negated = !this.negated; + return this; + }; + + NULL = function() { + return new Value(new Literal('null')); + }; + + exports.CodeFragment = CodeFragment = (function() { + function CodeFragment(parent, code) { + var _ref2; + this.code = "" + code; + this.locationData = parent != null ? parent.locationData : void 0; + this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown'; + } + + CodeFragment.prototype.toString = function() { + return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : ''); + }; + + return CodeFragment; + + })(); + + fragmentsToText = function(fragments) { + var fragment; + return ((function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = fragments.length; _i < _len; _i++) { + fragment = fragments[_i]; + _results.push(fragment.code); + } + return _results; + })()).join(''); + }; + + exports.Base = Base = (function() { + function Base() { + this.icedContinuationBlock = null; + this.icedLoopFlag = false; + this.icedNodeFlag = false; + this.icedGotCpsSplitFlag = false; + this.icedCpsPivotFlag = false; + this.icedHasAutocbFlag = false; + this.icedFoundArguments = false; + this.icedParentAwait = null; + this.icedCallContinuationFlag = false; + } + + Base.prototype.compile = function(o, lvl) { + return fragmentsToText(this.compileToFragments(o, lvl)); + }; + + Base.prototype.compileToFragments = function(o, lvl) { + var node; + o = extend({}, o); + if (lvl) { + o.level = lvl; + } + node = this.unfoldSoak(o) || this; + node.tab = o.indent; + if (node.icedHasContinuation() && !node.icedGotCpsSplitFlag) { + return node.icedCompileCps(o); + } else if (o.level === LEVEL_TOP || !node.isStatement(o)) { + return node.compileNode(o); + } else { + return node.compileClosure(o); + } + }; + + Base.prototype.compileClosure = function(o) { + var args, argumentsNode, func, jumpNode, meth; + if (jumpNode = this.jumps()) { + jumpNode.error('cannot use a pure statement in an expression'); + } + o.sharedScope = true; + this.icedClearAutocbFlags(); + func = new Code([], Block.wrap([this])); + args = []; + if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { + args = [new Literal('this')]; + if (argumentsNode) { + meth = 'apply'; + args.push(new Literal('arguments')); + } else { + meth = 'call'; + } + func = new Value(func, [new Access(new Literal(meth))]); + } + return (new Call(func, args)).compileNode(o); + }; + + Base.prototype.cache = function(o, level, reused) { + var ref, sub; + if (!this.isComplex()) { + ref = level ? this.compileToFragments(o, level) : this; + return [ref, ref]; + } else { + ref = new Literal(reused || o.scope.freeVariable('ref')); + sub = new Assign(ref, this); + if (level) { + return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]]; + } else { + return [sub, ref]; + } + } + }; + + Base.prototype.cacheToCodeFragments = function(cacheValues) { + return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])]; + }; + + Base.prototype.makeReturn = function(res) { + var me; + me = this.unwrapAll(); + if (res) { + return new Call(new Literal("" + res + ".push"), [me]); + } else { + return new Return(me, this.icedHasAutocbFlag); + } + }; + + Base.prototype.contains = function(pred) { + var node; + node = void 0; + this.traverseChildren(false, function(n) { + if (pred(n)) { + node = n; + return false; + } + }); + return node; + }; + + Base.prototype.lastNonComment = function(list) { + var i; + i = list.length; + while (i--) { + if (!(list[i] instanceof Comment)) { + return list[i]; + } + } + return null; + }; + + Base.prototype.toString = function(idt, name) { + var extras, tree; + if (idt == null) { + idt = ''; + } + if (name == null) { + name = this.constructor.name; + } + extras = []; + if (this.icedNodeFlag) { + extras.push("A"); + } + if (this.icedLoopFlag) { + extras.push("L"); + } + if (this.icedCpsPivotFlag) { + extras.push("P"); + } + if (this.icedIsAutocbCode) { + extras.push("B"); + } + if (this.icedHasAutocbFlag) { + extras.push("C"); + } + if (this.icedParentAwait) { + extras.push("D"); + } + if (this.icedFoundArguments) { + extras.push("G"); + } + if (extras.length) { + extras = " (" + extras.join('') + ")"; + } + tree = '\n' + idt + name; + tree = '\n' + idt + name; + if (this.soak) { + tree += '?'; + } + tree += extras; + this.eachChild(function(node) { + return tree += node.toString(idt + TAB); + }); + if (this.icedContinuationBlock) { + idt += TAB; + tree += '\n' + idt + "Continuation"; + tree += this.icedContinuationBlock.toString(idt + TAB); + } + return tree; + }; + + Base.prototype.eachChild = function(func) { + var attr, child, _i, _j, _len, _len1, _ref2, _ref3; + if (!this.children) { + return this; + } + _ref2 = this.children; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + attr = _ref2[_i]; + if (this[attr]) { + _ref3 = flatten([this[attr]]); + for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { + child = _ref3[_j]; + if (func(child) === false) { + return this; + } + } + } + } + return this; + }; + + Base.prototype.traverseChildren = function(crossScope, func) { + return this.eachChild(function(child) { + var recur; + recur = func(child); + if (recur !== false) { + return child.traverseChildren(crossScope, func); + } + }); + }; + + Base.prototype.invert = function() { + return new Op('!', this); + }; + + Base.prototype.unwrapAll = function() { + var node; + node = this; + while (node !== (node = node.unwrap())) { + continue; + } + return node; + }; + + Base.prototype.flattenChildren = function() { + var attr, child, out, _i, _j, _len, _len1, _ref2, _ref3; + out = []; + _ref2 = this.children; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + attr = _ref2[_i]; + if (this[attr]) { + _ref3 = flatten([this[attr]]); + for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { + child = _ref3[_j]; + out.push(child); + } + } + } + return out; + }; + + Base.prototype.icedCompileCps = function(o) { + var code; + this.icedGotCpsSplitFlag = true; + code = CpsCascade.wrap(this, this.icedContinuationBlock, null, o); + o.sharedScope = true; + return code.compileNode(o); + }; + + Base.prototype.icedWalkAst = function(p, o) { + var child, _i, _len, _ref2; + this.icedParentAwait = p; + this.icedHasAutocbFlag = o.foundAutocb; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkAst(p, o)) { + this.icedNodeFlag = true; + } + } + return this.icedNodeFlag; + }; + + Base.prototype.icedWalkAstLoops = function(flood) { + var child, _i, _len, _ref2; + if (this.isLoop() && this.icedNodeFlag) { + flood = true; + } + if (this.isLoop() && !this.icedNodeFlag) { + flood = false; + } + this.icedLoopFlag = flood; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkAstLoops(flood)) { + this.icedLoopFlag = true; + } + } + return this.icedLoopFlag; + }; + + Base.prototype.icedWalkCpsPivots = function() { + var child, _i, _len, _ref2; + if (this.icedNodeFlag || (this.icedLoopFlag && this.icedIsJump())) { + this.icedCpsPivotFlag = true; + } + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkCpsPivots()) { + this.icedCpsPivotFlag = true; + } + } + return this.icedCpsPivotFlag; + }; + + Base.prototype.icedClearAutocbFlags = function() { + this.icedHasAutocbFlag = false; + return this.traverseChildren(false, function(node) { + node.icedHasAutocbFlag = false; + return true; + }); + }; + + Base.prototype.icedCpsRotate = function() { + var child, _i, _len, _ref2; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + child.icedCpsRotate(); + } + return this; + }; + + Base.prototype.icedIsCpsPivot = function() { + return this.icedCpsPivotFlag; + }; + + Base.prototype.icedNestContinuationBlock = function(b) { + return this.icedContinuationBlock = b; + }; + + Base.prototype.icedHasContinuation = function() { + return !!this.icedContinuationBlock; + }; + + Base.prototype.icedCallContinuation = function() { + return this.icedCallContinuationFlag = true; + }; + + Base.prototype.icedWrapContinuation = NO; + + Base.prototype.icedIsJump = NO; + + Base.prototype.icedUnwrap = function(e) { + if (e.icedHasContinuation() && this.icedHasContinuation()) { + return this; + } else { + if (this.icedHasContinuation()) { + e.icedContinuationBlock = this.icedContinuationBlock; + } + return e; + } + }; + + Base.prototype.icedStatementAssertion = function() { + if (this.icedIsCpsPivot()) { + return this.error("await'ed statements can't act as expressions"); + } + }; + + Base.prototype.children = []; + + Base.prototype.isStatement = NO; + + Base.prototype.jumps = NO; + + Base.prototype.isComplex = YES; + + Base.prototype.isChainable = NO; + + Base.prototype.isAssignable = NO; + + Base.prototype.isLoop = NO; + + Base.prototype.unwrap = THIS; + + Base.prototype.unfoldSoak = NO; + + Base.prototype.assigns = NO; + + Base.prototype.updateLocationDataIfMissing = function(locationData) { + if (this.locationData) { + return this; + } + this.locationData = locationData; + return this.eachChild(function(child) { + return child.updateLocationDataIfMissing(locationData); + }); + }; + + Base.prototype.error = function(message) { + return throwSyntaxError(message, this.locationData); + }; + + Base.prototype.makeCode = function(code) { + return new CodeFragment(this, code); + }; + + Base.prototype.wrapInBraces = function(fragments) { + return [].concat(this.makeCode('('), fragments, this.makeCode(')')); + }; + + Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) { + var answer, fragments, i, _i, _len; + answer = []; + for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) { + fragments = fragmentsList[i]; + if (i) { + answer.push(this.makeCode(joinStr)); + } + answer = answer.concat(fragments); + } + return answer; + }; + + return Base; + + })(); + + exports.Block = Block = (function(_super) { + __extends(Block, _super); + + function Block(nodes) { + Block.__super__.constructor.call(this); + this.expressions = compact(flatten(nodes || [])); + } + + Block.prototype.children = ['expressions']; + + Block.prototype.push = function(node) { + this.expressions.push(node); + return this; + }; + + Block.prototype.pop = function() { + return this.expressions.pop(); + }; + + Block.prototype.unshift = function(node) { + this.expressions.unshift(node); + return this; + }; + + Block.prototype.unwrap = function() { + if (this.expressions.length === 1) { + return this.icedUnwrap(this.expressions[0]); + } else { + return this; + } + }; + + Block.prototype.isEmpty = function() { + return !this.expressions.length; + }; + + Block.prototype.isStatement = function(o) { + var exp, _i, _len, _ref2; + _ref2 = this.expressions; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + exp = _ref2[_i]; + if (exp.isStatement(o)) { + return true; + } + } + return false; + }; + + Block.prototype.jumps = function(o) { + var exp, jumpNode, _i, _len, _ref2; + _ref2 = this.expressions; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + exp = _ref2[_i]; + if (jumpNode = exp.jumps(o)) { + return jumpNode; + } + } + }; + + Block.prototype.makeReturn = function(res) { + var expr, foundReturn, len; + len = this.expressions.length; + foundReturn = false; + while (len--) { + expr = this.expressions[len]; + if (!(expr instanceof Comment)) { + this.expressions[len] = expr.makeReturn(res); + if (expr instanceof Return && !expr.expression && !expr.icedHasAutocbFlag) { + this.expressions.splice(len, 1); + foundReturn = true; + } else if (!(expr instanceof If) || expr.elseBody) { + foundReturn = true; + } + break; + } + } + if (this.icedHasAutocbFlag && !this.icedNodeFlag && !foundReturn) { + this.expressions.push(new Return(null, true)); + } + return this; + }; + + Block.prototype.compileToFragments = function(o, level) { + if (o == null) { + o = {}; + } + if (o.scope) { + return Block.__super__.compileToFragments.call(this, o, level); + } else { + return this.compileRoot(o); + } + }; + + Block.prototype.compileNode = function(o) { + var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2; + this.tab = o.indent; + top = o.level === LEVEL_TOP; + compiledNodes = []; + _ref2 = this.expressions; + for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) { + node = _ref2[index]; + node = node.unwrapAll(); + node = node.unfoldSoak(o) || node; + if (node instanceof Block) { + compiledNodes.push(node.compileNode(o)); + } else if (top) { + node.front = true; + fragments = node.compileToFragments(o); + if (!node.isStatement(o)) { + fragments.unshift(this.makeCode("" + this.tab)); + fragments.push(this.makeCode(";")); + } + compiledNodes.push(fragments); + } else { + compiledNodes.push(node.compileToFragments(o, LEVEL_LIST)); + } + } + if (top) { + if (this.spaced) { + return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n")); + } else { + return this.joinFragmentArrays(compiledNodes, '\n'); + } + } + if (compiledNodes.length) { + answer = this.joinFragmentArrays(compiledNodes, ', '); + } else { + answer = [this.makeCode("void 0")]; + } + if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Block.prototype.compileRoot = function(o) { + var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2; + o.indent = o.bare ? '' : TAB; + o.level = LEVEL_TOP; + this.spaced = true; + o.scope = new Scope(null, this, null); + _ref2 = o.locals || []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + name = _ref2[_i]; + o.scope.parameter(name); + } + prelude = []; + if (!o.bare) { + preludeExps = (function() { + var _j, _len1, _ref3, _results; + _ref3 = this.expressions; + _results = []; + for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) { + exp = _ref3[i]; + if (!(exp.unwrap() instanceof Comment)) { + break; + } + _results.push(exp); + } + return _results; + }).call(this); + rest = this.expressions.slice(preludeExps.length); + this.expressions = preludeExps; + if (preludeExps.length) { + prelude = this.compileNode(merge(o, { + indent: '' + })); + prelude.push(this.makeCode("\n")); + } + this.expressions = rest; + } + fragments = this.compileWithDeclarations(o); + if (o.bare) { + return fragments; + } + return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n")); + }; + + Block.prototype.compileWithDeclarations = function(o) { + var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4; + fragments = []; + post = []; + _ref2 = this.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + exp = _ref2[i]; + exp = exp.unwrap(); + if (!(exp instanceof Comment || exp instanceof Literal)) { + break; + } + } + o = merge(o, { + level: LEVEL_TOP + }); + if (i) { + rest = this.expressions.splice(i, 9e9); + _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1]; + _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1]; + this.expressions = rest; + } + post = this.compileNode(o); + scope = o.scope; + if (scope.expressions === this) { + declars = o.scope.hasDeclarations(); + assigns = scope.hasAssignments; + if (declars || assigns) { + if (i) { + fragments.push(this.makeCode('\n')); + } + fragments.push(this.makeCode("" + this.tab + "var ")); + if (declars) { + fragments.push(this.makeCode(scope.declaredVariables().join(', '))); + } + if (assigns) { + if (declars) { + fragments.push(this.makeCode(",\n" + (this.tab + TAB))); + } + fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB)))); + } + fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : ''))); + } else if (fragments.length && post.length) { + fragments.push(this.makeCode("\n")); + } + } + return fragments.concat(post); + }; + + Block.wrap = function(nodes) { + if (nodes.length === 1 && nodes[0] instanceof Block) { + return nodes[0]; + } + return new Block(nodes); + }; + + Block.prototype.icedThreadReturn = function(call) { + var expr, len; + call = call || new IcedTailCall; + len = this.expressions.length; + while (len--) { + expr = this.expressions[len]; + if (expr.isStatement()) { + break; + } + if (!(expr instanceof Comment) && !(expr instanceof Return)) { + call.assignValue(expr); + this.expressions[len] = call; + return; + } + } + return this.expressions.push(call); + }; + + Block.prototype.icedCompileCps = function(o) { + this.icedGotCpsSplitFlag = true; + if (this.expressions.length > 1) { + return Block.__super__.icedCompileCps.call(this, o); + } else { + return this.compileNode(o); + } + }; + + Block.prototype.icedCpsRotate = function() { + var child, e, i, pivot, rest, _i, _j, _len, _len1, _ref2; + pivot = null; + _ref2 = this.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + e = _ref2[i]; + if (e.icedIsCpsPivot()) { + pivot = e; + pivot.icedCallContinuation(); + } + e.icedCpsRotate(); + if (pivot) { + break; + } + } + if (!pivot) { + return this; + } + if (pivot.icedContinuationBlock) { + throw SyntaxError("unexpected continuation block in node"); + } + rest = this.expressions.slice(i + 1); + this.expressions = this.expressions.slice(0, i + 1); + if (rest.length) { + child = new Block(rest); + pivot.icedNestContinuationBlock(child); + for (_j = 0, _len1 = rest.length; _j < _len1; _j++) { + e = rest[_j]; + if (e.icedNodeFlag) { + child.icedNodeFlag = true; + } + if (e.icedLoopFlag) { + child.icedLoopFlag = true; + } + if (e.icedCpsPivotFlag) { + child.icedCpsPivotFlag = true; + } + if (e.icedHasAutocbFlag) { + child.icedHasAutocbFlag = true; + } + } + child.icedCpsRotate(); + } + return this; + }; + + Block.prototype.icedAddRuntime = function(foundDefer, foundAwait) { + var index, node; + index = 0; + while ((node = this.expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { + index++; + } + return this.expressions.splice(index, 0, new IcedRuntime(foundDefer, foundAwait)); + }; + + Block.prototype.icedTransform = function(opts) { + var obj; + obj = {}; + this.icedWalkAst(null, obj); + if (!(opts != null ? opts.repl : void 0) && (obj.foundDefer || obj.foundAwait || opts.runforce)) { + this.icedAddRuntime(obj.foundDefer, obj.foundAwait); + } + if (obj.foundAwait) { + this.icedWalkAstLoops(false); + this.icedWalkCpsPivots(); + this.icedCpsRotate(); + } + return this; + }; + + Block.prototype.icedGetSingle = function() { + if (this.expressions.length === 1) { + return this.expressions[0]; + } else { + return null; + } + }; + + return Block; + + })(Base); + + exports.Literal = Literal = (function(_super) { + __extends(Literal, _super); + + function Literal(value) { + this.value = value; + if (this.value == null) { + throw new Error("whoops!"); + } + Literal.__super__.constructor.call(this); + } + + Literal.prototype.makeReturn = function() { + if (this.isStatement()) { + return this; + } else { + return Literal.__super__.makeReturn.apply(this, arguments); + } + }; + + Literal.prototype.isAssignable = function() { + return IDENTIFIER.test(this.value); + }; + + Literal.prototype.isStatement = function() { + var _ref2; + return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger'; + }; + + Literal.prototype.isComplex = NO; + + Literal.prototype.assigns = function(name) { + return name === this.value; + }; + + Literal.prototype.jumps = function(o) { + if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { + return this; + } + if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { + return this; + } + }; + + Literal.prototype.compileNode = function(o) { + var answer, code, _ref2; + if (this.icedLoopFlag && this.icedIsJump()) { + return this.icedCompileIced(o); + } + code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value; + answer = this.isStatement() ? "" + this.tab + code + ";" : code; + return [this.makeCode(answer)]; + }; + + Literal.prototype.toString = function() { + return ' "' + this.value + '"'; + }; + + Literal.prototype.icedWalkAst = function(parent, o) { + if (this.value === 'arguments' && o.foundAwaitFunc) { + o.foundArguments = true; + this.value = "_arguments"; + } + return false; + }; + + Literal.prototype.icedIsJump = function() { + var _ref2; + return (_ref2 = this.value) === 'break' || _ref2 === 'continue'; + }; + + Literal.prototype.icedCompileIced = function(o) { + var call, d, func, l; + d = { + 'continue': iced["const"].c_while, + 'break': iced["const"].b_while + }; + l = d[this.value]; + func = new Value(new Literal(l)); + call = new Call(func, []); + return call.compileNode(o); + }; + + return Literal; + + })(Base); + + exports.Undefined = (function(_super) { + __extends(Undefined, _super); + + function Undefined() { + return Undefined.__super__.constructor.apply(this, arguments); + } + + Undefined.prototype.isAssignable = NO; + + Undefined.prototype.isComplex = NO; + + Undefined.prototype.compileNode = function(o) { + return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')]; + }; + + return Undefined; + + })(Base); + + exports.Null = (function(_super) { + __extends(Null, _super); + + function Null() { + return Null.__super__.constructor.apply(this, arguments); + } + + Null.prototype.isAssignable = NO; + + Null.prototype.isComplex = NO; + + Null.prototype.compileNode = function() { + return [this.makeCode("null")]; + }; + + return Null; + + })(Base); + + exports.Bool = (function(_super) { + __extends(Bool, _super); + + Bool.prototype.isAssignable = NO; + + Bool.prototype.isComplex = NO; + + Bool.prototype.compileNode = function() { + return [this.makeCode(this.val)]; + }; + + function Bool(val) { + this.val = val; + } + + return Bool; + + })(Base); + + exports.Return = Return = (function(_super) { + __extends(Return, _super); + + function Return(expression, auto) { + this.expression = expression; + Return.__super__.constructor.call(this); + this.icedHasAutocbFlag = auto; + } + + Return.prototype.children = ['expression']; + + Return.prototype.isStatement = YES; + + Return.prototype.makeReturn = THIS; + + Return.prototype.jumps = THIS; + + Return.prototype.compileToFragments = function(o, level) { + var expr, _ref2; + expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0; + if (expr && !(expr instanceof Return)) { + return expr.compileToFragments(o, level); + } else { + return Return.__super__.compileToFragments.call(this, o, level); + } + }; + + Return.prototype.compileNode = function(o) { + var answer; + if (this.icedHasAutocbFlag) { + return this.icedCompileIced(o); + } + answer = []; + answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : "")))); + if (this.expression) { + answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN)); + } + answer.push(this.makeCode(";")); + return answer; + }; + + Return.prototype.icedCompileIced = function(o) { + var args, block, call, cb, ret; + cb = new Value(new Literal(iced["const"].autocb)); + args = this.expression ? [this.expression] : []; + call = new Call(cb, args); + ret = new Literal("return"); + block = new Block([call, ret]); + return block.compileNode(o); + }; + + return Return; + + })(Base); + + exports.Value = Value = (function(_super) { + __extends(Value, _super); + + function Value(base, props, tag) { + Value.__super__.constructor.call(this); + if (!props && base instanceof Value) { + return base; + } + this.base = base; + this.properties = props || []; + if (tag) { + this[tag] = true; + } + return this; + } + + Value.prototype.children = ['base', 'properties']; + + Value.prototype.copy = function() { + return new Value(this.base, this.properties); + }; + + Value.prototype.add = function(props) { + this.properties = this.properties.concat(props); + return this; + }; + + Value.prototype.hasProperties = function() { + return !!this.properties.length; + }; + + Value.prototype.bareLiteral = function(type) { + return !this.properties.length && this.base instanceof type; + }; + + Value.prototype.isArray = function() { + return this.bareLiteral(Arr); + }; + + Value.prototype.isRange = function() { + return this.bareLiteral(Range); + }; + + Value.prototype.isComplex = function() { + return this.hasProperties() || this.base.isComplex(); + }; + + Value.prototype.isAssignable = function() { + return this.hasProperties() || this.base.isAssignable(); + }; + + Value.prototype.isSimpleNumber = function() { + return this.bareLiteral(Literal) && SIMPLENUM.test(this.base.value); + }; + + Value.prototype.isString = function() { + return this.bareLiteral(Literal) && IS_STRING.test(this.base.value); + }; + + Value.prototype.isRegex = function() { + return this.bareLiteral(Literal) && IS_REGEX.test(this.base.value); + }; + + Value.prototype.isAtomic = function() { + var node, _i, _len, _ref2; + _ref2 = this.properties.concat(this.base); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + node = _ref2[_i]; + if (node.soak || node instanceof Call) { + return false; + } + } + return true; + }; + + Value.prototype.isNotCallable = function() { + return this.isSimpleNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject(); + }; + + Value.prototype.isStatement = function(o) { + return !this.properties.length && this.base.isStatement(o); + }; + + Value.prototype.assigns = function(name) { + return !this.properties.length && this.base.assigns(name); + }; + + Value.prototype.jumps = function(o) { + return !this.properties.length && this.base.jumps(o); + }; + + Value.prototype.isObject = function(onlyGenerated) { + if (this.properties.length) { + return false; + } + return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); + }; + + Value.prototype.isSplice = function() { + return last(this.properties) instanceof Slice; + }; + + Value.prototype.looksStatic = function(className) { + var _ref2; + return this.base.value === className && this.properties.length && ((_ref2 = this.properties[0].name) != null ? _ref2.value : void 0) !== 'prototype'; + }; + + Value.prototype.unwrap = function() { + if (this.properties.length) { + return this; + } else { + return this.base; + } + }; + + Value.prototype.cacheReference = function(o) { + var base, bref, name, nref; + name = last(this.properties); + if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) { + return [this, this]; + } + base = new Value(this.base, this.properties.slice(0, -1)); + if (base.isComplex()) { + bref = new Literal(o.scope.freeVariable('base')); + base = new Value(new Parens(new Assign(bref, base))); + } + if (!name) { + return [base, bref]; + } + if (name.isComplex()) { + nref = new Literal(o.scope.freeVariable('name')); + name = new Index(new Assign(nref, name.index)); + nref = new Index(nref); + } + return [base.add(name), new Value(bref || base.base, [nref || name])]; + }; + + Value.prototype.compileNode = function(o) { + var fragments, prop, props, _i, _len; + this.base.front = this.front; + props = this.properties; + fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null)); + if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) { + fragments.push(this.makeCode('.')); + } + for (_i = 0, _len = props.length; _i < _len; _i++) { + prop = props[_i]; + fragments.push.apply(fragments, prop.compileToFragments(o)); + } + return fragments; + }; + + Value.prototype.unfoldSoak = function(o) { + return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function(_this) { + return function() { + var fst, i, ifn, prop, ref, snd, _i, _len, _ref2, _ref3; + if (ifn = _this.base.unfoldSoak(o)) { + (_ref2 = ifn.body.properties).push.apply(_ref2, _this.properties); + return ifn; + } + _ref3 = _this.properties; + for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) { + prop = _ref3[i]; + if (!prop.soak) { + continue; + } + prop.soak = false; + fst = new Value(_this.base, _this.properties.slice(0, i)); + snd = new Value(_this.base, _this.properties.slice(i)); + if (fst.isComplex()) { + ref = new Literal(o.scope.freeVariable('ref')); + fst = new Parens(new Assign(ref, fst)); + snd.base = ref; + } + return new If(new Existence(fst), snd, { + soak: true + }); + } + return false; + }; + })(this)(); + }; + + Value.prototype.icedToSlot = function(i) { + var suffix; + if (this.base instanceof Obj) { + return this.base.icedToSlot(i); + } + suffix = null; + if (this.properties && this.properties.length) { + suffix = this.properties.pop(); + } + return new Slot(i, this, suffix); + }; + + Value.prototype.icedToSlotAccess = function() { + if (this["this"]) { + return this.properties[0]; + } else { + return new Access(this); + } + }; + + return Value; + + })(Base); + + exports.Comment = Comment = (function(_super) { + __extends(Comment, _super); + + function Comment(comment) { + this.comment = comment; + Comment.__super__.constructor.call(this); + } + + Comment.prototype.isStatement = YES; + + Comment.prototype.makeReturn = THIS; + + Comment.prototype.compileNode = function(o, level) { + var code, comment; + comment = this.comment.replace(/^(\s*)# /gm, "$1 * "); + code = "/*" + (multident(comment, this.tab)) + (__indexOf.call(comment, '\n') >= 0 ? "\n" + this.tab : '') + " */"; + if ((level || o.level) === LEVEL_TOP) { + code = o.indent + code; + } + return [this.makeCode("\n"), this.makeCode(code)]; + }; + + return Comment; + + })(Base); + + exports.Call = Call = (function(_super) { + __extends(Call, _super); + + function Call(variable, args, soak) { + this.args = args != null ? args : []; + this.soak = soak; + Call.__super__.constructor.call(this); + this.isNew = false; + this.isSuper = variable === 'super'; + this.variable = this.isSuper ? null : variable; + if (variable instanceof Value && variable.isNotCallable()) { + variable.error("literal is not a function"); + } + } + + Call.prototype.children = ['variable', 'args']; + + Call.prototype.newInstance = function() { + var base, _ref2; + base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable; + if (base instanceof Call && !base.isNew) { + base.newInstance(); + } else { + this.isNew = true; + } + return this; + }; + + Call.prototype.superReference = function(o) { + var accesses, method; + method = o.scope.namedMethod(); + if (method != null ? method.klass : void 0) { + accesses = [new Access(new Literal('__super__'))]; + if (method["static"]) { + accesses.push(new Access(new Literal('constructor'))); + } + accesses.push(new Access(new Literal(method.name))); + return (new Value(new Literal(method.klass), accesses)).compile(o); + } else if (method != null ? method.ctor : void 0) { + return "" + method.name + ".__super__.constructor"; + } else { + return this.error('cannot call super outside of an instance method.'); + } + }; + + Call.prototype.superThis = function(o) { + var method; + if (o.scope.icedgen) { + return "_this"; + } else { + method = o.scope.method; + return (method && !method.klass && method.context) || "this"; + } + }; + + Call.prototype.unfoldSoak = function(o) { + var call, ifn, left, list, rite, _i, _len, _ref2, _ref3; + if (this.soak) { + if (this.variable) { + if (ifn = unfoldSoak(o, this, 'variable')) { + return ifn; + } + _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1]; + } else { + left = new Literal(this.superReference(o)); + rite = new Value(left); + } + rite = new Call(rite, this.args); + rite.isNew = this.isNew; + left = new Literal("typeof " + (left.compile(o)) + " === \"function\""); + return new If(left, new Value(rite), { + soak: true + }); + } + call = this; + list = []; + while (true) { + if (call.variable instanceof Call) { + list.push(call); + call = call.variable; + continue; + } + if (!(call.variable instanceof Value)) { + break; + } + list.push(call); + if (!((call = call.variable.base) instanceof Call)) { + break; + } + } + _ref3 = list.reverse(); + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + call = _ref3[_i]; + if (ifn) { + if (call.variable instanceof Call) { + call.variable = ifn; + } else { + call.variable.base = ifn; + } + } + ifn = unfoldSoak(o, call, 'variable'); + } + return ifn; + }; + + Call.prototype.compileNode = function(o) { + var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref2, _ref3; + if ((_ref2 = this.variable) != null) { + _ref2.front = this.front; + } + compiledArray = Splat.compileSplattedArray(o, this.args, true); + if (compiledArray.length) { + return this.compileSplat(o, compiledArray); + } + compiledArgs = []; + _ref3 = this.args; + for (argIndex = _i = 0, _len = _ref3.length; _i < _len; argIndex = ++_i) { + arg = _ref3[argIndex]; + arg.icedStatementAssertion(); + if (argIndex) { + compiledArgs.push(this.makeCode(", ")); + } + compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST)); + } + fragments = []; + if (this.isSuper) { + preface = this.superReference(o) + (".call(" + (this.superThis(o))); + if (compiledArgs.length) { + preface += ", "; + } + fragments.push(this.makeCode(preface)); + } else { + if (this.isNew) { + fragments.push(this.makeCode('new ')); + } + fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS)); + fragments.push(this.makeCode("(")); + } + fragments.push.apply(fragments, compiledArgs); + fragments.push(this.makeCode(")")); + return fragments; + }; + + Call.prototype.compileSplat = function(o, splatArgs) { + var answer, base, fun, idt, name, ref; + if (this.isSuper) { + return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")")); + } + if (this.isNew) { + idt = this.tab + TAB; + return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})")); + } + answer = []; + base = new Value(this.variable); + if ((name = base.properties.pop()) && base.isComplex()) { + ref = o.scope.freeVariable('ref'); + answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o)); + } else { + fun = base.compileToFragments(o, LEVEL_ACCESS); + if (SIMPLENUM.test(fragmentsToText(fun))) { + fun = this.wrapInBraces(fun); + } + if (name) { + ref = fragmentsToText(fun); + fun.push.apply(fun, name.compileToFragments(o)); + } else { + ref = 'null'; + } + answer = answer.concat(fun); + } + return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")")); + }; + + Call.prototype.icedToSlot = function() { + return this.error("function call cannot be a slot for defer"); + }; + + return Call; + + })(Base); + + exports.Extends = Extends = (function(_super) { + __extends(Extends, _super); + + function Extends(child, parent) { + this.child = child; + this.parent = parent; + Extends.__super__.constructor.call(this); + } + + Extends.prototype.children = ['child', 'parent']; + + Extends.prototype.compileToFragments = function(o) { + return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o); + }; + + return Extends; + + })(Base); + + exports.Access = Access = (function(_super) { + __extends(Access, _super); + + function Access(name, tag) { + this.name = name; + Access.__super__.constructor.call(this); + this.name.asKey = true; + this.soak = tag === 'soak'; + } + + Access.prototype.children = ['name']; + + Access.prototype.compileToFragments = function(o) { + var name; + name = this.name.compileToFragments(o); + if ((IDENTIFIER.test(fragmentsToText(name))) || this.name instanceof Defer) { + name.unshift(this.makeCode(".")); + } else { + name.unshift(this.makeCode("[")); + name.push(this.makeCode("]")); + } + return name; + }; + + Access.prototype.isComplex = NO; + + return Access; + + })(Base); + + exports.Index = Index = (function(_super) { + __extends(Index, _super); + + function Index(index) { + this.index = index; + Index.__super__.constructor.call(this); + } + + Index.prototype.children = ['index']; + + Index.prototype.compileToFragments = function(o) { + return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]")); + }; + + Index.prototype.isComplex = function() { + return this.index.isComplex(); + }; + + return Index; + + })(Base); + + exports.Range = Range = (function(_super) { + __extends(Range, _super); + + Range.prototype.children = ['from', 'to']; + + function Range(from, to, tag) { + this.from = from; + this.to = to; + Range.__super__.constructor.call(this); + this.exclusive = tag === 'exclusive'; + this.equals = this.exclusive ? '' : '='; + } + + Range.prototype.compileVariables = function(o) { + var step, _ref2, _ref3, _ref4, _ref5; + o = merge(o, { + top: true + }); + _ref2 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref2[0], this.fromVar = _ref2[1]; + _ref3 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref3[0], this.toVar = _ref3[1]; + if (step = del(o, 'step')) { + _ref4 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref4[0], this.stepVar = _ref4[1]; + } + _ref5 = [this.fromVar.match(NUMBER), this.toVar.match(NUMBER)], this.fromNum = _ref5[0], this.toNum = _ref5[1]; + if (this.stepVar) { + return this.stepNum = this.stepVar.match(NUMBER); + } + }; + + Range.prototype.compileNode = function(o) { + var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3; + if (!this.fromVar) { + this.compileVariables(o); + } + if (!o.index) { + return this.compileArray(o); + } + known = this.fromNum && this.toNum; + idx = del(o, 'index'); + idxName = del(o, 'name'); + namedIndex = idxName && idxName !== idx; + varPart = "" + idx + " = " + this.fromC; + if (this.toC !== this.toVar) { + varPart += ", " + this.toC; + } + if (this.step !== this.stepVar) { + varPart += ", " + this.step; + } + _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1]; + condPart = this.stepNum ? parseNum(this.stepNum[0]) > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [parseNum(this.fromNum[0]), parseNum(this.toNum[0])], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); + stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--"; + if (namedIndex) { + varPart = "" + idxName + " = " + varPart; + } + if (namedIndex) { + stepPart = "" + idxName + " = " + stepPart; + } + return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)]; + }; + + Range.prototype.compileArray = function(o) { + var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results; + if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { + range = (function() { + _results = []; + for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); } + return _results; + }).apply(this); + if (this.exclusive) { + range.pop(); + } + return [this.makeCode("[" + (range.join(', ')) + "]")]; + } + idt = this.tab + TAB; + i = o.scope.freeVariable('i'); + result = o.scope.freeVariable('results'); + pre = "\n" + idt + result + " = [];"; + if (this.fromNum && this.toNum) { + o.index = i; + body = fragmentsToText(this.compileNode(o)); + } else { + vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : ''); + cond = "" + this.fromVar + " <= " + this.toVar; + body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--"; + } + post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent; + hasArgs = function(node) { + return node != null ? node.contains(isLiteralArguments) : void 0; + }; + if (hasArgs(this.from) || hasArgs(this.to)) { + args = ', arguments'; + } + return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")]; + }; + + return Range; + + })(Base); + + exports.Slice = Slice = (function(_super) { + __extends(Slice, _super); + + Slice.prototype.children = ['range']; + + function Slice(range) { + this.range = range; + Slice.__super__.constructor.call(this); + } + + Slice.prototype.compileNode = function(o) { + var compiled, compiledText, from, fromCompiled, to, toStr, _ref2; + _ref2 = this.range, to = _ref2.to, from = _ref2.from; + fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')]; + if (to) { + compiled = to.compileToFragments(o, LEVEL_PAREN); + compiledText = fragmentsToText(compiled); + if (!(!this.range.exclusive && +compiledText === -1)) { + toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9")); + } + } + return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")]; + }; + + return Slice; + + })(Base); + + exports.Obj = Obj = (function(_super) { + __extends(Obj, _super); + + function Obj(props, generated) { + this.generated = generated != null ? generated : false; + this.objects = this.properties = props || []; + Obj.__super__.constructor.call(this); + } + + Obj.prototype.children = ['properties']; + + Obj.prototype.compileNode = function(o) { + var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1; + props = this.properties; + if (!props.length) { + return [this.makeCode(this.front ? '({})' : '{}')]; + } + if (this.generated) { + for (_i = 0, _len = props.length; _i < _len; _i++) { + node = props[_i]; + if (node instanceof Value) { + node.error('cannot have an implicit value in an implicit object'); + } + } + } + idt = o.indent += TAB; + lastNoncom = this.lastNonComment(this.properties); + answer = []; + for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) { + prop = props[i]; + join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; + indent = prop instanceof Comment ? '' : idt; + if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) { + prop.variable.error('Invalid object key'); + } + if (prop instanceof Value && prop["this"]) { + prop = new Assign(prop.properties[0].name, prop, 'object'); + } + if (!(prop instanceof Comment)) { + if (!(prop instanceof Assign)) { + prop = new Assign(prop, prop, 'object'); + } + (prop.variable.base || prop.variable).asKey = true; + } + if (indent) { + answer.push(this.makeCode(indent)); + } + answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP)); + if (join) { + answer.push(this.makeCode(join)); + } + } + answer.unshift(this.makeCode("{" + (props.length && '\n'))); + answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}")); + if (this.front) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Obj.prototype.assigns = function(name) { + var prop, _i, _len, _ref2; + _ref2 = this.properties; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + prop = _ref2[_i]; + if (prop.assigns(name)) { + return true; + } + } + return false; + }; + + Obj.prototype.icedToSlot = function(i) { + var access, prop, _i, _len, _ref2, _results; + _ref2 = this.properties; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + prop = _ref2[_i]; + if (prop instanceof Assign) { + _results.push((prop.value.icedToSlot(i)).addAccess(prop.variable.icedToSlotAccess())); + } else if (prop instanceof Value) { + access = prop.icedToSlotAccess(); + _results.push((prop.icedToSlot(i)).addAccess(access)); + } else { + _results.push(void 0); + } + } + return _results; + }; + + return Obj; + + })(Base); + + exports.Arr = Arr = (function(_super) { + __extends(Arr, _super); + + function Arr(objs) { + this.objects = objs || []; + Arr.__super__.constructor.call(this); + } + + Arr.prototype.children = ['objects']; + + Arr.prototype.compileNode = function(o) { + var answer, compiledObjs, fragments, index, obj, _i, _len; + if (!this.objects.length) { + return [this.makeCode('[]')]; + } + o.indent += TAB; + answer = Splat.compileSplattedArray(o, this.objects); + if (answer.length) { + return answer; + } + answer = []; + compiledObjs = (function() { + var _i, _len, _ref2, _results; + _ref2 = this.objects; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + _results.push(obj.compileToFragments(o, LEVEL_LIST)); + } + return _results; + }).call(this); + for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) { + fragments = compiledObjs[index]; + if (index) { + answer.push(this.makeCode(", ")); + } + answer.push.apply(answer, fragments); + } + if (fragmentsToText(answer).indexOf('\n') >= 0) { + answer.unshift(this.makeCode("[\n" + o.indent)); + answer.push(this.makeCode("\n" + this.tab + "]")); + } else { + answer.unshift(this.makeCode("[")); + answer.push(this.makeCode("]")); + } + return answer; + }; + + Arr.prototype.assigns = function(name) { + var obj, _i, _len, _ref2; + _ref2 = this.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (obj.assigns(name)) { + return true; + } + } + return false; + }; + + return Arr; + + })(Base); + + exports.Class = Class = (function(_super) { + __extends(Class, _super); + + function Class(variable, parent, body) { + this.variable = variable; + this.parent = parent; + this.body = body != null ? body : new Block; + Class.__super__.constructor.call(this); + this.boundFuncs = []; + this.body.classBody = true; + } + + Class.prototype.children = ['variable', 'parent', 'body']; + + Class.prototype.determineName = function() { + var decl, tail; + if (!this.variable) { + return null; + } + decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value; + if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) { + this.variable.error("class variable name may not be " + decl); + } + return decl && (decl = IDENTIFIER.test(decl) && decl); + }; + + Class.prototype.setContext = function(name) { + return this.body.traverseChildren(false, function(node) { + if (node.classBody) { + return false; + } + if (node instanceof Literal && node.value === 'this') { + return node.value = name; + } else if (node instanceof Code) { + node.klass = name; + if (node.bound) { + return node.context = name; + } + } + }); + }; + + Class.prototype.addBoundFunctions = function(o) { + var bvar, lhs, _i, _len, _ref2; + _ref2 = this.boundFuncs; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + bvar = _ref2[_i]; + lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); + this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)")); + } + }; + + Class.prototype.addProperties = function(node, name, o) { + var assign, base, exprs, func, props; + props = node.base.properties.slice(0); + exprs = (function() { + var _results; + _results = []; + while (assign = props.shift()) { + if (assign instanceof Assign) { + base = assign.variable.base; + delete assign.context; + func = assign.value; + if (base.value === 'constructor') { + if (this.ctor) { + assign.error('cannot define more than one constructor in a class'); + } + if (func.bound) { + assign.error('cannot define a constructor as a bound function'); + } + if (func instanceof Code) { + assign = this.ctor = func; + } else { + this.externalCtor = o.classScope.freeVariable('class'); + assign = new Assign(new Literal(this.externalCtor), func); + } + } else { + if (assign.variable["this"]) { + func["static"] = true; + } else { + assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]); + if (func instanceof Code && func.bound) { + this.boundFuncs.push(base); + func.bound = false; + } + } + } + } + _results.push(assign); + } + return _results; + }).call(this); + return compact(exprs); + }; + + Class.prototype.walkBody = function(name, o) { + return this.traverseChildren(false, (function(_this) { + return function(child) { + var cont, exps, i, node, _i, _len, _ref2; + cont = true; + if (child instanceof Class) { + return false; + } + if (child instanceof Block) { + _ref2 = exps = child.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + node = _ref2[i]; + if (node instanceof Assign && node.variable.looksStatic(name)) { + node.value["static"] = true; + } else if (node instanceof Value && node.isObject(true)) { + cont = false; + exps[i] = _this.addProperties(node, name, o); + } + } + child.expressions = exps = flatten(exps); + } + return cont && !(child instanceof Class); + }; + })(this)); + }; + + Class.prototype.hoistDirectivePrologue = function() { + var expressions, index, node; + index = 0; + expressions = this.body.expressions; + while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { + ++index; + } + return this.directives = expressions.splice(0, index); + }; + + Class.prototype.ensureConstructor = function(name) { + if (!this.ctor) { + this.ctor = new Code; + if (this.externalCtor) { + this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)")); + } else if (this.parent) { + this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)")); + } + this.ctor.body.makeReturn(); + this.body.expressions.unshift(this.ctor); + } + this.ctor.ctor = this.ctor.name = name; + this.ctor.klass = null; + return this.ctor.noReturn = true; + }; + + Class.prototype.compileNode = function(o) { + var args, argumentsNode, func, jumpNode, klass, lname, name, superClass, _ref2; + if (jumpNode = this.body.jumps()) { + jumpNode.error('Class bodies cannot contain pure statements'); + } + if (argumentsNode = this.body.contains(isLiteralArguments)) { + argumentsNode.error("Class bodies shouldn't reference arguments"); + } + name = this.determineName() || '_Class'; + if (name.reserved) { + name = "_" + name; + } + lname = new Literal(name); + func = new Code([], Block.wrap([this.body])); + args = []; + o.classScope = func.makeScope(o.scope); + this.hoistDirectivePrologue(); + this.setContext(name); + this.walkBody(name, o); + this.ensureConstructor(name); + this.addBoundFunctions(o); + this.body.spaced = true; + this.body.expressions.push(lname); + if (this.parent) { + superClass = new Literal(o.classScope.freeVariable('super', false)); + this.body.expressions.unshift(new Extends(lname, superClass)); + func.params.push(new Param(superClass)); + args.push(this.parent); + } + (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives); + klass = new Parens(new Call(func, args)); + if (this.variable) { + klass = new Assign(this.variable, klass); + } + return klass.compileToFragments(o); + }; + + return Class; + + })(Base); + + exports.Assign = Assign = (function(_super) { + __extends(Assign, _super); + + function Assign(variable, value, context, options) { + var forbidden, name, _ref2; + this.variable = variable; + this.value = value; + this.context = context; + Assign.__super__.constructor.call(this); + this.param = options && options.param; + this.subpattern = options && options.subpattern; + forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0); + if (forbidden && this.context !== 'object') { + this.variable.error("variable name may not be \"" + name + "\""); + } + this.icedlocal = options && options.icedlocal; + } + + Assign.prototype.children = ['variable', 'value']; + + Assign.prototype.isStatement = function(o) { + return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0; + }; + + Assign.prototype.assigns = function(name) { + return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); + }; + + Assign.prototype.unfoldSoak = function(o) { + return unfoldSoak(o, this, 'variable'); + }; + + Assign.prototype.compileNode = function(o) { + var answer, compiledName, isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5; + this.value.icedStatementAssertion(); + if (isValue = this.variable instanceof Value) { + if (this.variable.isArray() || this.variable.isObject()) { + return this.compilePatternMatch(o); + } + if (this.variable.isSplice()) { + return this.compileSplice(o); + } + if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') { + return this.compileConditional(o); + } + if ((_ref3 = this.context) === '**=' || _ref3 === '//=' || _ref3 === '%%=') { + return this.compileSpecialMath(o); + } + } + compiledName = this.variable.compileToFragments(o, LEVEL_LIST); + name = fragmentsToText(compiledName); + if (!this.context) { + varBase = this.variable.unwrapAll(); + if (!varBase.isAssignable()) { + this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned"); + } + if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) { + if (this.param || this.icedlocal) { + o.scope.add(name, 'var', this.icedlocal); + } else { + o.scope.find(name); + } + } + } + if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) { + if (match[2]) { + this.value.klass = match[1]; + } + this.value.name = (_ref4 = (_ref5 = match[3]) != null ? _ref5 : match[4]) != null ? _ref4 : match[5]; + } + val = this.value.compileToFragments(o, LEVEL_LIST); + if (this.context === 'object') { + return compiledName.concat(this.makeCode(": "), val); + } + answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val); + if (o.level <= LEVEL_LIST) { + return answer; + } else { + return this.wrapInBraces(answer); + } + }; + + Assign.prototype.compilePatternMatch = function(o) { + var acc, assigns, code, expandedIdx, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, top, val, value, vvar, vvarText, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + top = o.level === LEVEL_TOP; + value = this.value; + objects = this.variable.base.objects; + if (!(olen = objects.length)) { + code = value.compileToFragments(o); + if (o.level >= LEVEL_OP) { + return this.wrapInBraces(code); + } else { + return code; + } + } + isObject = this.variable.isObject(); + if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) { + if (obj instanceof Assign) { + _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value; + } else { + idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); + } + acc = IDENTIFIER.test(idx.unwrap().value || 0); + value = new Value(value); + value.properties.push(new (acc ? Access : Index)(idx)); + if (_ref4 = obj.unwrap().value, __indexOf.call(RESERVED, _ref4) >= 0) { + obj.error("assignment to a reserved word: " + (obj.compile(o))); + } + return new Assign(obj, value, null, { + param: this.param + }).compileToFragments(o, LEVEL_TOP); + } + vvar = value.compileToFragments(o, LEVEL_LIST); + vvarText = fragmentsToText(vvar); + assigns = []; + expandedIdx = false; + if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) { + assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar))); + vvar = [this.makeCode(ref)]; + vvarText = ref; + } + for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) { + obj = objects[i]; + idx = i; + if (isObject) { + if (obj instanceof Assign) { + _ref5 = obj, (_ref6 = _ref5.variable, idx = _ref6.base), obj = _ref5.value; + } else { + if (obj.base instanceof Parens) { + _ref7 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref7[0], idx = _ref7[1]; + } else { + idx = obj["this"] ? obj.properties[0].name : obj; + } + } + } + if (!expandedIdx && obj instanceof Splat) { + name = obj.name.unwrap().value; + obj = obj.unwrap(); + val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i; + if (rest = olen - i - 1) { + ivar = o.scope.freeVariable('i'); + val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])"; + } else { + val += ") : []"; + } + val = new Literal(val); + expandedIdx = "" + ivar + "++"; + } else if (!expandedIdx && obj instanceof Expansion) { + if (rest = olen - i - 1) { + if (rest === 1) { + expandedIdx = "" + vvarText + ".length - 1"; + } else { + ivar = o.scope.freeVariable('i'); + val = new Literal("" + ivar + " = " + vvarText + ".length - " + rest); + expandedIdx = "" + ivar + "++"; + assigns.push(val.compileToFragments(o, LEVEL_LIST)); + } + } + continue; + } else { + name = obj.unwrap().value; + if (obj instanceof Splat || obj instanceof Expansion) { + obj.error("multiple splats/expansions are disallowed in an assignment"); + } + if (typeof idx === 'number') { + idx = new Literal(expandedIdx || idx); + acc = false; + } else { + acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0); + } + val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]); + } + if ((name != null) && __indexOf.call(RESERVED, name) >= 0) { + obj.error("assignment to a reserved word: " + (obj.compile(o))); + } + assigns.push(new Assign(obj, val, null, { + param: this.param, + subpattern: true + }).compileToFragments(o, LEVEL_LIST)); + } + if (!(top || this.subpattern)) { + assigns.push(vvar); + } + fragments = this.joinFragmentArrays(assigns, ', '); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + Assign.prototype.compileConditional = function(o) { + var fragments, left, right, _ref2; + _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; + if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { + this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before"); + } + if (__indexOf.call(this.context, "?") >= 0) { + o.isExistentialEquals = true; + return new If(new Existence(left), right, { + type: 'if' + }).addElse(new Assign(right, this.value, '=')).compileToFragments(o); + } else { + fragments = new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o); + if (o.level <= LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + } + }; + + Assign.prototype.compileSpecialMath = function(o) { + var left, right, _ref2; + _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; + return new Assign(left, new Op(this.context.slice(0, -1), right, this.value)).compileToFragments(o); + }; + + Assign.prototype.compileSplice = function(o) { + var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4; + _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive; + name = this.variable.compile(o); + if (from) { + _ref3 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref3[0], fromRef = _ref3[1]; + } else { + fromDecl = fromRef = '0'; + } + if (to) { + if (from instanceof Value && from.isSimpleNumber() && to instanceof Value && to.isSimpleNumber()) { + to = to.compile(o) - fromRef; + if (!exclusive) { + to += 1; + } + } else { + to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; + if (!exclusive) { + to += ' + 1'; + } + } + } else { + to = "9e9"; + } + _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1]; + answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef); + if (o.level > LEVEL_TOP) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + return Assign; + + })(Base); + + exports.Code = Code = (function(_super) { + __extends(Code, _super); + + function Code(params, body, tag) { + Code.__super__.constructor.call(this); + this.params = params || []; + this.body = body || new Block; + this.icedgen = tag === 'icedgen'; + this.icedPassedDeferral = null; + this.bound = tag === 'boundfunc' || this.icedgen; + this.isGenerator = this.body.contains(function(node) { + var _ref2; + return node instanceof Op && ((_ref2 = node.operator) === 'yield' || _ref2 === 'yield*'); + }); + } + + Code.prototype.children = ['params', 'body']; + + Code.prototype.isStatement = function() { + return !!this.ctor; + }; + + Code.prototype.jumps = NO; + + Code.prototype.makeScope = function(parentScope) { + return new Scope(parentScope, this.body, this); + }; + + Code.prototype.compileNode = function(o) { + var answer, boundfunc, code, exprs, i, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, wrapper, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + if (this.bound && ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0)) { + this.context = o.scope.method.context; + } + if (this.bound && !this.context) { + this.context = '_this'; + wrapper = new Code([new Param(new Literal(this.context))], new Block([this])); + boundfunc = new Call(wrapper, [new Literal('this')]); + boundfunc.updateLocationDataIfMissing(this.locationData); + return boundfunc.compileNode(o); + } + o.scope = del(o, 'classScope') || this.makeScope(o.scope); + o.scope.shared = del(o, 'sharedScope') || this.icedgen; + o.scope.icedgen = this.icedgen; + o.indent += TAB; + delete o.bare; + delete o.isExistentialEquals; + params = []; + exprs = []; + _ref3 = this.params; + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + param = _ref3[_i]; + if (!(param instanceof Expansion)) { + o.scope.parameter(param.asReference(o)); + } + } + _ref4 = this.params; + for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { + param = _ref4[_j]; + if (!(param.splat || param instanceof Expansion)) { + continue; + } + _ref5 = this.params; + for (_k = 0, _len2 = _ref5.length; _k < _len2; _k++) { + p = _ref5[_k].name; + if (!(!(param instanceof Expansion))) { + continue; + } + if (p["this"]) { + p = p.properties[0].name; + } + if (p.value) { + o.scope.add(p.value, 'var', true); + } + } + splats = new Assign(new Value(new Arr((function() { + var _l, _len3, _ref6, _results; + _ref6 = this.params; + _results = []; + for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) { + p = _ref6[_l]; + _results.push(p.asReference(o)); + } + return _results; + }).call(this))), new Value(new Literal('arguments'))); + break; + } + _ref6 = this.params; + for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) { + param = _ref6[_l]; + if (param.isComplex()) { + val = ref = param.asReference(o); + if (param.value) { + val = new Op('?', ref, param.value); + } + exprs.push(new Assign(new Value(param.name), val, '=', { + param: true + })); + } else { + ref = param; + if (param.value) { + lit = new Literal(ref.name.value + ' == null'); + val = new Assign(new Value(param.name), param.value, '='); + exprs.push(new If(lit, val)); + } + } + if (!splats) { + params.push(ref); + } + } + wasEmpty = this.body.isEmpty(); + if (splats) { + exprs.unshift(splats); + } + if (exprs.length) { + (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs); + } + for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) { + p = params[i]; + params[i] = p.compileToFragments(o); + o.scope.parameter(fragmentsToText(params[i])); + } + uniqs = []; + this.eachParamName(function(name, node) { + if (__indexOf.call(uniqs, name) >= 0) { + node.error("multiple parameters named '" + name + "'"); + } + return uniqs.push(name); + }); + if (this.icedIsAutocbCode) { + wasEmpty = false; + } + if (!(wasEmpty || this.noReturn)) { + this.body.makeReturn(); + } + code = 'function'; + if (this.isGenerator) { + code += '*'; + } + if (this.ctor) { + code += ' ' + this.name; + } + code += '('; + answer = [this.makeCode(code)]; + for (i = _n = 0, _len5 = params.length; _n < _len5; i = ++_n) { + p = params[i]; + if (i) { + answer.push(this.makeCode(", ")); + } + answer.push.apply(answer, p); + } + answer.push(this.makeCode(') {')); + this.icedPatchBody(o); + if (!this.body.isEmpty()) { + answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab)); + } + answer.push(this.makeCode('}')); + if (this.ctor) { + return [this.makeCode(this.tab)].concat(__slice.call(answer)); + } + if (this.front || (o.level >= LEVEL_ACCESS)) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Code.prototype.eachParamName = function(iterator) { + var param, _i, _len, _ref2, _results; + _ref2 = this.params; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + _results.push(param.eachName(iterator)); + } + return _results; + }; + + Code.prototype.traverseChildren = function(crossScope, func) { + if (crossScope) { + return Code.__super__.traverseChildren.call(this, crossScope, func); + } + }; + + Code.prototype.icedPatchBody = function(o) { + var f, lhs, r, rhs; + if (this.icedFoundArguments && this.icedNodeFlag) { + o.scope.assign('_arguments', 'arguments'); + } + if (this.icedNodeFlag && !this.icedgen) { + this.icedPassedDeferral = o.scope.freeVariable(iced["const"].passed_deferral); + lhs = new Value(new Literal(this.icedPassedDeferral)); + f = new Value(new Literal(iced["const"].ns)); + f.add(new Access(new Value(new Literal(iced["const"].findDeferral)))); + rhs = new Call(f, [new Value(new Literal('arguments'))]); + this.body.unshift(new Assign(lhs, rhs)); + } + if (this.icedNodeFlag && !this.icedgen) { + r = this.icedIsAutocbCode ? iced["const"].autocb : iced["const"].k_noop; + rhs = new Value(new Literal(r)); + lhs = new Value(new Literal(iced["const"].k)); + return this.body.unshift(new Assign(lhs, rhs, null, { + icedlocal: true + })); + } + }; + + Code.prototype.icedWalkAst = function(parent, o) { + var cf_prev, fa_prev, faf_prev, fg_prev, param, _i, _len, _ref2; + this.icedParentAwait = parent; + fa_prev = o.foundAutocb; + cf_prev = o.currFunc; + fg_prev = o.foundArguments; + faf_prev = o.foundAwaitFunc; + o.foundAutocb = false; + o.foundArguments = false; + o.foundAwaitFunc = false; + o.currFunc = this; + _ref2 = this.params; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + if (param.name instanceof Literal && param.name.value === iced["const"].autocb) { + o.foundAutocb = true; + break; + } + } + Code.__super__.icedWalkAst.call(this, parent, o); + this.icedHasAutocbFlag = fa_prev; + this.icedIsAutocbCode = o.foundAutocb; + this.icedFoundArguments = o.foundArguments; + o.foundAwaitFunc = faf_prev; + o.foundArguments = fg_prev; + o.foundAutocb = fa_prev; + o.currFunc = cf_prev; + return false; + }; + + Code.prototype.icedWalkAstLoops = function(flood) { + if (Code.__super__.icedWalkAstLoops.call(this, false)) { + this.icedLoopFlag = true; + } + return false; + }; + + Code.prototype.icedWalkCpsPivots = function() { + Code.__super__.icedWalkCpsPivots.call(this); + return this.icedCpsPivotFlag = false; + }; + + Code.prototype.icedTraceName = function() { + var parts; + parts = []; + if (this.klass) { + parts.push(this.klass); + } + if (this.name) { + parts.push(this.name); + } + return parts.join('.'); + }; + + return Code; + + })(Base); + + exports.Param = Param = (function(_super) { + __extends(Param, _super); + + function Param(name, value, splat) { + var _ref2; + this.name = name; + this.value = value; + this.splat = splat; + Param.__super__.constructor.call(this); + if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { + this.name.error("parameter name \"" + name + "\" is not allowed"); + } + } + + Param.prototype.children = ['name', 'value']; + + Param.prototype.compileToFragments = function(o) { + return this.name.compileToFragments(o, LEVEL_LIST); + }; + + Param.prototype.asReference = function(o) { + var node; + if (this.reference) { + return this.reference; + } + node = this.name; + if (node["this"]) { + node = node.properties[0].name; + if (node.value.reserved) { + node = new Literal(o.scope.freeVariable(node.value)); + } + } else if (node.isComplex()) { + node = new Literal(o.scope.freeVariable('arg')); + } + node = new Value(node); + if (this.splat) { + node = new Splat(node); + } + node.updateLocationDataIfMissing(this.locationData); + return this.reference = node; + }; + + Param.prototype.isComplex = function() { + return this.name.isComplex(); + }; + + Param.prototype.eachName = function(iterator, name) { + var atParam, node, obj, _i, _len, _ref2; + if (name == null) { + name = this.name; + } + atParam = function(obj) { + var node; + node = obj.properties[0].name; + if (!node.value.reserved) { + return iterator(node.value, node); + } + }; + if (name instanceof Literal) { + return iterator(name.value, name); + } + if (name instanceof Value) { + return atParam(name); + } + _ref2 = name.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (obj instanceof Assign) { + this.eachName(iterator, obj.value.unwrap()); + } else if (obj instanceof Splat) { + node = obj.name.unwrap(); + iterator(node.value, node); + } else if (obj instanceof Value) { + if (obj.isArray() || obj.isObject()) { + this.eachName(iterator, obj.base); + } else if (obj["this"]) { + atParam(obj); + } else { + iterator(obj.base.value, obj.base); + } + } else if (!(obj instanceof Expansion)) { + obj.error("illegal parameter " + (obj.compile())); + } + } + }; + + return Param; + + })(Base); + + exports.Splat = Splat = (function(_super) { + __extends(Splat, _super); + + Splat.prototype.children = ['name']; + + Splat.prototype.isAssignable = YES; + + function Splat(name) { + Splat.__super__.constructor.call(this); + this.name = name.compile ? name : new Literal(name); + } + + Splat.prototype.assigns = function(name) { + return this.name.assigns(name); + }; + + Splat.prototype.compileToFragments = function(o) { + return this.name.compileToFragments(o); + }; + + Splat.prototype.unwrap = function() { + return this.name; + }; + + Splat.compileSplattedArray = function(o, list, apply) { + var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len; + index = -1; + while ((node = list[++index]) && !(node instanceof Splat)) { + continue; + } + if (index >= list.length) { + return []; + } + if (list.length === 1) { + node = list[0]; + fragments = node.compileToFragments(o, LEVEL_LIST); + if (apply) { + return fragments; + } + return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")")); + } + args = list.slice(index); + for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { + node = args[i]; + compiledNode = node.compileToFragments(o, LEVEL_LIST); + args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]")); + } + if (index === 0) { + node = list[0]; + concatPart = node.joinFragmentArrays(args.slice(1), ', '); + return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")")); + } + base = (function() { + var _j, _len1, _ref2, _results; + _ref2 = list.slice(0, index); + _results = []; + for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { + node = _ref2[_j]; + _results.push(node.compileToFragments(o, LEVEL_LIST)); + } + return _results; + })(); + base = list[0].joinFragmentArrays(base, ', '); + concatPart = list[index].joinFragmentArrays(args, ', '); + return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")")); + }; + + Splat.prototype.icedToSlot = function(i) { + return new Slot(i, new Value(this.name), null, true); + }; + + return Splat; + + })(Base); + + exports.Expansion = Expansion = (function(_super) { + __extends(Expansion, _super); + + function Expansion() { + return Expansion.__super__.constructor.apply(this, arguments); + } + + Expansion.prototype.isComplex = NO; + + Expansion.prototype.compileNode = function(o) { + return this.error('Expansion must be used inside a destructuring assignment or parameter list'); + }; + + Expansion.prototype.asReference = function(o) { + return this; + }; + + Expansion.prototype.eachName = function(iterator) {}; + + return Expansion; + + })(Base); + + exports.While = While = (function(_super) { + __extends(While, _super); + + function While(condition, options) { + this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; + this.guard = options != null ? options.guard : void 0; + } + + While.prototype.children = ['condition', 'guard', 'body']; + + While.prototype.isStatement = YES; + + While.prototype.isLoop = YES; + + While.prototype.makeReturn = function(res) { + if (res) { + return While.__super__.makeReturn.apply(this, arguments); + } else { + this.returns = !this.jumps({ + loop: true + }); + return this; + } + }; + + While.prototype.addBody = function(body) { + this.body = body; + return this; + }; + + While.prototype.jumps = function() { + var expressions, jumpNode, node, _i, _len; + expressions = this.body.expressions; + if (!expressions.length) { + return false; + } + for (_i = 0, _len = expressions.length; _i < _len; _i++) { + node = expressions[_i]; + if (jumpNode = node.jumps({ + loop: true + })) { + return jumpNode; + } + } + return false; + }; + + While.prototype.compileNode = function(o) { + var answer, body, rvar, set; + this.condition.icedStatementAssertion(); + if (this.icedNodeFlag) { + return this.icedCompileIced(o); + } + o.indent += TAB; + set = ''; + body = this.body; + if (body.isEmpty()) { + body = this.makeCode(''); + } else { + if (this.returns) { + body.makeReturn(rvar = o.scope.freeVariable('results')); + set = "" + this.tab + rvar + " = [];\n"; + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab)); + } + answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}")); + if (this.returns) { + if (this.icedHasAutocbFlag) { + answer.push(this.makeCode("\n" + this.tab + iced["const"].autocb + "(" + rvar + ");")); + answer.push(this.makeCode("\n" + this.tab + "return;")); + } else { + answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";")); + } + } + return answer; + }; + + While.prototype.icedWrap = function(d) { + var body, break_assign, break_id, cond, condition, continue_assign, continue_block, continue_block_inner, continue_body, continue_fn, continue_id, guard_if, k_id, k_param, next_assign, next_id, outStatements, top_assign, top_block, top_body, top_call, top_func, top_id, top_statements, tramp; + condition = d.condition; + body = d.body; + outStatements = []; + top_id = new Value(new Literal(iced["const"].t_while)); + k_id = new Value(new Literal(iced["const"].k)); + k_param = new Param(new Literal(iced["const"].k)); + break_id = new Value(new Literal(iced["const"].b_while)); + break_assign = new Assign(break_id, k_id, null, { + icedlocal: true + }); + continue_id = new Value(new Literal(iced["const"].c_while)); + continue_block_inner = new Block([new Call(top_id, [k_id])]); + if (d.step) { + continue_block_inner.unshift(d.step); + } + continue_fn = new Code([], continue_block_inner); + tramp = new Value(new Literal(iced["const"].ns)); + tramp.add(new Access(new Value(new Literal(iced["const"].trampoline)))); + continue_block = new Block([new Call(tramp, [continue_fn])]); + continue_body = new Code([], continue_block, 'icedgen'); + continue_assign = new Assign(continue_id, continue_body, null, { + icedlocal: true + }); + next_id = new Value(new Literal(iced["const"].n_while)); + next_assign = new Assign(next_id, continue_id, null, { + icedlocal: true + }); + cond = new If(condition.invert(), new Block([new Call(break_id, [])])); + if (d.guard) { + continue_block = new Block([new Call(continue_id, [])]); + guard_if = new If(d.guard, body); + guard_if.addElse(continue_block); + cond.addElse(new Block([d.pre_body, guard_if])); + } else { + cond.addElse(new Block([d.pre_body, body])); + } + top_body = new Block([break_assign, continue_assign, next_assign, cond]); + top_func = new Code([k_param], top_body, 'icedgen'); + top_assign = new Assign(top_id, top_func, null, { + icedlocal: true + }); + top_call = new Call(top_id, [k_id]); + top_statements = []; + if (d.init) { + top_statements = top_statements.concat(d.init); + } + top_statements = top_statements.concat([top_assign, top_call]); + return top_block = new Block(top_statements); + }; + + While.prototype.icedCallContinuation = function() { + return this.body.icedThreadReturn(new IcedTailCall(iced["const"].n_while)); + }; + + While.prototype.icedCompileIced = function(o) { + var b, opts; + opts = { + condition: this.condition, + body: this.body, + guard: this.guard + }; + b = this.icedWrap(opts); + return b.compileNode(o); + }; + + return While; + + })(Base); + + exports.Op = Op = (function(_super) { + var CONVERSIONS, INVERSIONS; + + __extends(Op, _super); + + function Op(op, first, second, flip) { + Op.__super__.constructor.call(this); + if (op === 'in') { + return new In(first, second); + } + if (op === 'do') { + return this.generateDo(first); + } + if (op === 'new') { + if (first instanceof Call && !first["do"] && !first.isNew) { + return first.newInstance(); + } + if (first instanceof Code && first.bound || first["do"]) { + first = new Parens(first); + } + } + this.operator = CONVERSIONS[op] || op; + this.first = first; + this.second = second; + this.flip = !!flip; + return this; + } + + CONVERSIONS = { + '==': '===', + '!=': '!==', + 'of': 'in', + 'yieldfrom': 'yield*' + }; + + INVERSIONS = { + '!==': '===', + '===': '!==' + }; + + Op.prototype.children = ['first', 'second']; + + Op.prototype.isSimpleNumber = NO; + + Op.prototype.isYield = function() { + var _ref2; + return (_ref2 = this.operator) === 'yield' || _ref2 === 'yield*'; + }; + + Op.prototype.isUnary = function() { + return !this.second; + }; + + Op.prototype.isComplex = function() { + var _ref2; + return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex(); + }; + + Op.prototype.isChainable = function() { + var _ref2; + return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!=='; + }; + + Op.prototype.invert = function() { + var allInvertable, curr, fst, op, _ref2; + if (this.isChainable() && this.first.isChainable()) { + allInvertable = true; + curr = this; + while (curr && curr.operator) { + allInvertable && (allInvertable = curr.operator in INVERSIONS); + curr = curr.first; + } + if (!allInvertable) { + return new Parens(this).invert(); + } + curr = this; + while (curr && curr.operator) { + curr.invert = !curr.invert; + curr.operator = INVERSIONS[curr.operator]; + curr = curr.first; + } + return this; + } else if (op = INVERSIONS[this.operator]) { + this.operator = op; + if (this.first.unwrap() instanceof Op) { + this.first.invert(); + } + return this; + } else if (this.second) { + return new Parens(this).invert(); + } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) { + return fst; + } else { + return new Op('!', this); + } + }; + + Op.prototype.unfoldSoak = function(o) { + var _ref2; + return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first'); + }; + + Op.prototype.generateDo = function(exp) { + var call, func, param, passedParams, ref, _i, _len, _ref2; + passedParams = []; + func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; + _ref2 = func.params || []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + if (param.value) { + passedParams.push(param.value); + delete param.value; + } else { + passedParams.push(param); + } + } + call = new Call(exp, passedParams); + call["do"] = true; + return call; + }; + + Op.prototype.compileNode = function(o) { + var answer, isChain, lhs, rhs, _ref2, _ref3; + isChain = this.isChainable() && this.first.isChainable(); + if (!isChain) { + this.first.front = this.front; + } + if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { + this.error('delete operand may not be argument or var'); + } + if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) { + this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\""); + } + if (this.isYield()) { + return this.compileYield(o); + } + if (this.isUnary()) { + return this.compileUnary(o); + } + if (isChain) { + return this.compileChain(o); + } + switch (this.operator) { + case '?': + return this.compileExistence(o); + case '**': + return this.compilePower(o); + case '//': + return this.compileFloorDivision(o); + case '%%': + return this.compileModulo(o); + default: + lhs = this.first.compileToFragments(o, LEVEL_OP); + rhs = this.second.compileToFragments(o, LEVEL_OP); + answer = [].concat(lhs, this.makeCode(" " + this.operator + " "), rhs); + if (o.level <= LEVEL_OP) { + return answer; + } else { + return this.wrapInBraces(answer); + } + } + }; + + Op.prototype.compileChain = function(o) { + var fragments, fst, shared, _ref2; + _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1]; + fst = this.first.compileToFragments(o, LEVEL_OP); + fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP)); + return this.wrapInBraces(fragments); + }; + + Op.prototype.compileExistence = function(o) { + var fst, ref; + if (this.first.isComplex()) { + ref = new Literal(o.scope.freeVariable('ref')); + fst = new Parens(new Assign(ref, this.first)); + } else { + fst = this.first; + ref = fst; + } + return new If(new Existence(fst), ref, { + type: 'if' + }).addElse(this.second).compileToFragments(o); + }; + + Op.prototype.compileUnary = function(o) { + var op, parts, plusMinus; + parts = []; + op = this.operator; + parts.push([this.makeCode(op)]); + if (op === '!' && this.first instanceof Existence) { + this.first.negated = !this.first.negated; + return this.first.compileToFragments(o); + } + if (o.level >= LEVEL_ACCESS) { + return (new Parens(this)).compileToFragments(o); + } + plusMinus = op === '+' || op === '-'; + if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { + parts.push([this.makeCode(' ')]); + } + if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { + this.first = new Parens(this.first); + } + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + if (this.flip) { + parts.reverse(); + } + return this.joinFragmentArrays(parts, ''); + }; + + Op.prototype.compileYield = function(o) { + var op, parts; + parts = []; + op = this.operator; + if (o.scope.parent == null) { + this.error('yield statements must occur within a function generator.'); + } + if (__indexOf.call(Object.keys(this.first), 'expression') >= 0) { + if (this.first.expression != null) { + parts.push(this.first.expression.compileToFragments(o, LEVEL_OP)); + } + } else { + parts.push([this.makeCode("(" + op + " ")]); + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + parts.push([this.makeCode(")")]); + } + return this.joinFragmentArrays(parts, ''); + }; + + Op.prototype.compilePower = function(o) { + var pow; + pow = new Value(new Literal('Math'), [new Access(new Literal('pow'))]); + return new Call(pow, [this.first, this.second]).compileToFragments(o); + }; + + Op.prototype.compileFloorDivision = function(o) { + var div, floor; + floor = new Value(new Literal('Math'), [new Access(new Literal('floor'))]); + div = new Op('/', this.first, this.second); + return new Call(floor, [div]).compileToFragments(o); + }; + + Op.prototype.compileModulo = function(o) { + var mod; + mod = new Value(new Literal(utility('modulo'))); + return new Call(mod, [this.first, this.second]).compileToFragments(o); + }; + + Op.prototype.toString = function(idt) { + return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator); + }; + + Op.prototype.icedWrapContinuation = function() { + return this.icedCallContinuationFlag; + }; + + return Op; + + })(Base); + + exports.In = In = (function(_super) { + __extends(In, _super); + + function In(object, array) { + this.object = object; + this.array = array; + In.__super__.constructor.call(this); + } + + In.prototype.children = ['object', 'array']; + + In.prototype.invert = NEGATE; + + In.prototype.compileNode = function(o) { + var hasSplat, obj, _i, _len, _ref2; + if (this.array instanceof Value && this.array.isArray() && this.array.base.objects.length) { + _ref2 = this.array.base.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (!(obj instanceof Splat)) { + continue; + } + hasSplat = true; + break; + } + if (!hasSplat) { + return this.compileOrTest(o); + } + } + return this.compileLoopTest(o); + }; + + In.prototype.compileOrTest = function(o) { + var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref2, _ref3, _ref4; + _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1]; + _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1]; + tests = []; + _ref4 = this.array.base.objects; + for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { + item = _ref4[i]; + if (i) { + tests.push(this.makeCode(cnj)); + } + tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS)); + } + if (o.level < LEVEL_OP) { + return tests; + } else { + return this.wrapInBraces(tests); + } + }; + + In.prototype.compileLoopTest = function(o) { + var fragments, ref, sub, _ref2; + _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1]; + fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0'))); + if (fragmentsToText(sub) === fragmentsToText(ref)) { + return fragments; + } + fragments = sub.concat(this.makeCode(', '), fragments); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + In.prototype.toString = function(idt) { + return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : '')); + }; + + return In; + + })(Base); + + exports.Slot = Slot = (function(_super) { + __extends(Slot, _super); + + function Slot(index, value, suffix, splat) { + Slot.__super__.constructor.call(this); + this.index = index; + this.value = value; + this.suffix = suffix; + this.splat = splat; + this.access = null; + } + + Slot.prototype.addAccess = function(a) { + this.access = a; + return this; + }; + + Slot.prototype.children = ['value', 'suffix']; + + return Slot; + + })(Base); + + exports.Defer = Defer = (function(_super) { + __extends(Defer, _super); + + function Defer(args, lineno) { + var a, i; + this.lineno = lineno; + Defer.__super__.constructor.call(this); + this.slots = flatten((function() { + var _i, _len, _results; + _results = []; + for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { + a = args[i]; + _results.push(a.icedToSlot(i)); + } + return _results; + })()); + this.params = []; + this.vars = []; + this.custom = false; + } + + Defer.prototype.children = ['slots']; + + Defer.prototype.setCustom = function() { + this.custom = true; + return this; + }; + + Defer.prototype.newParam = function() { + var l; + l = "" + iced["const"].slot + "_" + (this.params.length + 1); + this.params.push(new Param(new Literal(l))); + return new Value(new Literal(l)); + }; + + Defer.prototype.makeAssignFn = function(o) { + var a, args, assign, assignments, block, call, func, i, i_lit, inner_fn, lit, outer_block, outer_fn, prop, s, slot, _i, _len, _ref2; + if (this.slots.length === 0) { + return null; + } + assignments = []; + args = []; + i = 0; + _ref2 = this.slots; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + s = _ref2[_i]; + i = s.index; + a = new Value(new Literal("arguments")); + i_lit = new Value(new Literal(i)); + if (s.splat) { + func = new Value(new Literal(utility('slice'))); + func.add(new Access(new Value(new Literal('call')))); + call = new Call(func, [a, i_lit]); + slot = s.value; + this.vars.push(slot); + assign = new Assign(slot, call); + } else { + a.add(new Index(i_lit)); + if (s.access) { + a.add(s.access); + } + if (!s.suffix) { + lit = s.value.compile(o, LEVEL_TOP); + if (lit === "_") { + slot = new Value(new Literal(iced["const"].deferrals)); + slot.add(new Access(new Value(new Literal(iced["const"].retslot)))); + } else { + slot = s.value; + this.vars.push(slot); + } + } else { + args.push(s.value); + slot = this.newParam(); + if (s.suffix instanceof Index) { + prop = new Index(this.newParam()); + args.push(s.suffix.index); + } else { + prop = s.suffix; + } + slot.add(prop); + } + assign = new Assign(slot, a); + } + assignments.push(assign); + } + block = new Block(assignments); + inner_fn = new Code([], block, 'icedgen'); + outer_block = new Block([new Return(inner_fn)]); + outer_fn = new Code(this.params, outer_block, 'icedgen'); + return call = new Call(outer_fn, args); + }; + + Defer.prototype.transform = function(o) { + var assign_fn, assignments, context_assign, context_lhs, context_rhs, fn, ln_assign, ln_lhs, ln_rhs, meth; + meth = new Value(new Literal(iced["const"].defer_method)); + if (this.custom) { + fn = meth; + } else { + fn = new Value(new Literal(iced["const"].deferrals)); + fn.add(new Access(meth)); + } + assignments = []; + if ((assign_fn = this.makeAssignFn(o))) { + assignments.push(new Assign(new Value(new Literal(iced["const"].assign_fn)), assign_fn, "object")); + } + ln_lhs = new Value(new Literal(iced["const"].lineno)); + ln_rhs = new Value(new Literal(this.lineno)); + ln_assign = new Assign(ln_lhs, ln_rhs, "object"); + assignments.push(ln_assign); + if (this.custom) { + context_lhs = new Value(new Literal(iced["const"].context)); + context_rhs = new Value(new Literal(iced["const"].deferrals)); + context_assign = new Assign(context_lhs, context_rhs, "object"); + assignments.push(context_assign); + } + o = new Obj(assignments); + return new Call(fn, [new Value(o)]); + }; + + Defer.prototype.compileNode = function(o) { + var call, name, scope, v, _i, _len, _ref2; + call = this.transform(o); + _ref2 = this.vars; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + v = _ref2[_i]; + name = v.compile(o, LEVEL_LIST); + scope = o.scope; + scope.find(name, 'var'); + } + return call.compileNode(o); + }; + + Defer.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + o.foundDefer = true; + this.parentFunc = o.currFunc; + return Defer.__super__.icedWalkAst.call(this, p, o); + }; + + return Defer; + + })(Base); + + quote_path_for_emission = function(n) { + return '"' + n.replace(/\\/g, '\\\\') + '"'; + }; + + quote_funcname_for_debug = function(n) { + return '"' + n.replace(/["']/g, '') + '"'; + }; + + require_top_dir = function() { + return quote_path_for_emission(pathmod.join(__dirname, "..", "..")); + }; + + exports.Await = Await = (function(_super) { + __extends(Await, _super); + + function Await(body) { + this.body = body; + Await.__super__.constructor.call(this); + } + + Await.prototype.transform = function(o) { + var assign, assignments, body, call, cb_assignment, cb_lhs, cb_rhs, cls, fn_assignment, fn_lhs, fn_rhs, func_assignment, func_lhs, func_rhs, lhs, meth, n, name, rhs, trace, _ref2, _ref3; + body = this.body; + name = iced["const"].deferrals; + o.scope.add(name, 'var'); + lhs = new Value(new Literal(name)); + cls = new Value(new Literal(iced["const"].ns)); + cls.add(new Access(new Value(new Literal(iced["const"].Deferrals)))); + assignments = []; + if (n = (_ref2 = this.parentFunc) != null ? _ref2.icedPassedDeferral : void 0) { + cb_lhs = new Value(new Literal(iced["const"].parent)); + cb_rhs = new Value(new Literal(n)); + cb_assignment = new Assign(cb_lhs, cb_rhs, "object"); + assignments.push(cb_assignment); + } + if (o.filename != null) { + fn_lhs = new Value(new Literal(iced["const"].filename)); + fn_rhs = new Value(new Literal(quote_path_for_emission(o.filename))); + fn_assignment = new Assign(fn_lhs, fn_rhs, "object"); + assignments.push(fn_assignment); + } + if (n = (_ref3 = this.parentFunc) != null ? _ref3.icedTraceName() : void 0) { + func_lhs = new Value(new Literal(iced["const"].funcname)); + func_rhs = new Value(new Literal(quote_funcname_for_debug(n))); + func_assignment = new Assign(func_lhs, func_rhs, "object"); + assignments.push(func_assignment); + } + trace = new Obj(assignments, true); + call = new Call(cls, [new Value(new Literal(iced["const"].k)), trace]); + rhs = new Op("new", call); + assign = new Assign(lhs, rhs); + body.unshift(assign); + meth = lhs.copy().add(new Access(new Value(new Literal(iced["const"].fulfill)))); + call = new Call(meth, []); + body.push(call); + return this.body = body; + }; + + Await.prototype.children = ['body']; + + Await.prototype.isStatement = function() { + return YES; + }; + + Await.prototype.makeReturn = THIS; + + Await.prototype.compileNode = function(o) { + this.transform(o); + return this.body.compileNode(o); + }; + + Await.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + this.parentFunc = o.currFunc; + p = p || this; + this.icedParentAwait = p; + Await.__super__.icedWalkAst.call(this, p, o); + return this.icedNodeFlag = o.foundAwaitFunc = o.foundAwait = true; + }; + + return Await; + + })(Base); + + IcedRuntime = (function(_super) { + __extends(IcedRuntime, _super); + + function IcedRuntime(foundDefer, foundAwait) { + this.foundDefer = foundDefer; + this.foundAwait = foundAwait; + IcedRuntime.__super__.constructor.call(this); + } + + IcedRuntime.prototype.compileNode = function(o, level) { + var access, accessname, assign, call, callv, file, inc, interp, k, klass, lhs_vec, ns, qmodname, req, rhs, v, val, window_mode, window_val, _i, _j, _len, _len1, _ref2; + this.expressions = []; + v = o.runtime ? o.runtime : o.bare ? "none" : this.foundDefer ? "node" : "none"; + if (o.runtime && !this.foundDefer && !o.runforce) { + v = "none"; + } + window_mode = false; + window_val = null; + inc = null; + inc = (function() { + switch (v) { + case "inline": + case "window": + if (v === "window") { + window_mode = true; + } + if (window_mode) { + window_val = new Value(new Literal(v)); + } + return InlineRuntime.generate(window_val ? window_val.copy() : null); + case "node": + case "browserify": + case "interp": + interp = v === "interp"; + qmodname = interp ? require_top_dir() : "'iced-runtime'"; + accessname = iced["const"].ns; + file = new Literal(qmodname); + access = new Access(new Literal(accessname)); + req = new Value(new Literal("require")); + call = new Call(req, [file]); + callv = new Value(call); + if (interp) { + callv.add(access); + } + ns = new Value(new Literal(iced["const"].ns)); + return new Assign(ns, callv); + case "none": + return null; + default: + throw SyntaxError("unexpected flag IcedRuntime " + v); + } + })(); + if (inc) { + this.push(inc); + } + if (this.foundAwait) { + rhs = new Code([], new Block([])); + lhs_vec = []; + _ref2 = [iced["const"].k_noop, iced["const"].k]; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + k = _ref2[_i]; + val = new Value(new Literal(k)); + if (window_val) { + klass = window_val.copy(); + klass.add(new Access(val)); + val = klass; + } + lhs_vec.push(val); + } + assign = rhs; + for (_j = 0, _len1 = lhs_vec.length; _j < _len1; _j++) { + v = lhs_vec[_j]; + assign = new Assign(v, assign); + } + this.push(assign); + } + if (this.isEmpty()) { + return []; + } else { + return IcedRuntime.__super__.compileNode.call(this, o); + } + }; + + IcedRuntime.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + return IcedRuntime.__super__.icedWalkAst.call(this, p, o); + }; + + return IcedRuntime; + + })(Block); + + exports.Try = Try = (function(_super) { + __extends(Try, _super); + + function Try(attempt, errorVariable, recovery, ensure) { + this.attempt = attempt; + this.errorVariable = errorVariable; + this.recovery = recovery; + this.ensure = ensure; + } + + Try.prototype.children = ['attempt', 'recovery', 'ensure']; + + Try.prototype.isStatement = YES; + + Try.prototype.jumps = function(o) { + var _ref2; + return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0); + }; + + Try.prototype.makeReturn = function(res) { + if (this.attempt) { + this.attempt = this.attempt.makeReturn(res); + } + if (this.recovery) { + this.recovery = this.recovery.makeReturn(res); + } + return this; + }; + + Try.prototype.compileNode = function(o) { + var catchPart, ensurePart, placeholder, tryPart; + o.indent += TAB; + tryPart = this.attempt.compileToFragments(o, LEVEL_TOP); + catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : []; + ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : []; + return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart); + }; + + return Try; + + })(Base); + + exports.Throw = Throw = (function(_super) { + __extends(Throw, _super); + + function Throw(expression) { + this.expression = expression; + Throw.__super__.constructor.call(this); + } + + Throw.prototype.children = ['expression']; + + Throw.prototype.isStatement = YES; + + Throw.prototype.jumps = NO; + + Throw.prototype.makeReturn = THIS; + + Throw.prototype.compileNode = function(o) { + return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";")); + }; + + return Throw; + + })(Base); + + exports.Existence = Existence = (function(_super) { + __extends(Existence, _super); + + function Existence(expression) { + this.expression = expression; + Existence.__super__.constructor.call(this); + } + + Existence.prototype.children = ['expression']; + + Existence.prototype.invert = NEGATE; + + Existence.prototype.compileNode = function(o) { + var cmp, cnj, code, _ref2; + this.expression.front = this.front; + code = this.expression.compile(o, LEVEL_OP); + if (IDENTIFIER.test(code) && !o.scope.check(code)) { + _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1]; + code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; + } else { + code = "" + code + " " + (this.negated ? '==' : '!=') + " null"; + } + return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")]; + }; + + return Existence; + + })(Base); + + exports.Parens = Parens = (function(_super) { + __extends(Parens, _super); + + function Parens(body) { + this.body = body; + Parens.__super__.constructor.call(this); + } + + Parens.prototype.children = ['body']; + + Parens.prototype.unwrap = function() { + return this.body; + }; + + Parens.prototype.isComplex = function() { + return this.body.isComplex(); + }; + + Parens.prototype.compileNode = function(o) { + var bare, expr, fragments; + expr = this.body.unwrap(); + if (expr instanceof Value && expr.isAtomic()) { + expr.front = this.front; + return expr.compileToFragments(o); + } + fragments = expr.compileToFragments(o, LEVEL_PAREN); + bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); + if (bare) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + return Parens; + + })(Base); + + exports.For = For = (function(_super) { + __extends(For, _super); + + function For(body, source) { + var _ref2; + For.__super__.constructor.call(this); + this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index; + this.body = Block.wrap([body]); + this.own = !!source.own; + this.object = !!source.object; + if (this.object) { + _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1]; + } + if (this.index instanceof Value) { + this.index.error('index cannot be a pattern matching expression'); + } + this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length; + this.pattern = this.name instanceof Value; + if (this.range && this.index) { + this.index.error('indexes do not apply to range loops'); + } + if (this.range && this.pattern) { + this.name.error('cannot pattern match over range loops'); + } + if (this.own && !this.object) { + this.name.error('cannot use own with for-in'); + } + this.returns = false; + } + + For.prototype.children = ['body', 'source', 'guard', 'step']; + + For.prototype.compileNode = function(o) { + var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref2, _ref3; + body = Block.wrap([this.body]); + lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0; + if (lastJumps && lastJumps instanceof Return) { + this.returns = false; + } + source = this.range ? this.source.base : this.source; + scope = o.scope; + if (!this.pattern) { + name = this.name && (this.name.compile(o, LEVEL_LIST)); + } + index = this.index && (this.index.compile(o, LEVEL_LIST)); + if (name && !this.pattern) { + scope.find(name); + } + if (index) { + scope.find(index); + } + if (this.returns) { + rvar = scope.freeVariable('results'); + } + ivar = (this.object && index) || scope.freeVariable('i'); + kvar = (this.range && name) || index || ivar; + kvarAssign = kvar !== ivar ? "" + kvar + " = " : ""; + if (this.step && !this.range) { + _ref3 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref3[0], stepVar = _ref3[1]; + stepNum = stepVar.match(NUMBER); + } + if (this.pattern) { + name = ivar; + } + varPart = ''; + guardPart = ''; + defPart = ''; + idt1 = this.tab + TAB; + source.icedStatementAssertion(); + if (this.icedNodeFlag) { + return this.icedCompileIced(o, { + stepVar: stepVar, + body: body, + kvar: kvar, + guard: this.guard + }); + } + if (this.range) { + forPartFragments = source.compileToFragments(merge(o, { + index: ivar, + name: name, + step: this.step + })); + } else { + svar = this.source.compile(o, LEVEL_LIST); + if ((name || this.own) && !IDENTIFIER.test(svar)) { + defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; + svar = ref; + } + if (name && !this.pattern) { + namePart = "" + name + " = " + svar + "[" + kvar + "]"; + } + if (!this.object) { + if (step !== stepVar) { + defPart += "" + this.tab + step + ";\n"; + } + if (!(this.step && stepNum && (down = parseNum(stepNum[0]) < 0))) { + lvar = scope.freeVariable('len'); + } + declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; + declareDown = "" + kvarAssign + ivar + " = " + svar + ".length - 1"; + compare = "" + ivar + " < " + lvar; + compareDown = "" + ivar + " >= 0"; + if (this.step) { + if (stepNum) { + if (down) { + compare = compareDown; + declare = declareDown; + } + } else { + compare = "" + stepVar + " > 0 ? " + compare + " : " + compareDown; + declare = "(" + stepVar + " > 0 ? (" + declare + ") : " + declareDown + ")"; + } + increment = "" + ivar + " += " + stepVar; + } else { + increment = "" + (kvar !== ivar ? "++" + ivar : "" + ivar + "++"); + } + forPartFragments = [this.makeCode("" + declare + "; " + compare + "; " + kvarAssign + increment)]; + } + } + if (this.returns) { + resultPart = "" + this.tab + rvar + " = [];\n"; + returnResult = this.icedHasAutocbFlag ? "\n" + this.tab + iced["const"].autocb + "(" + rvar + "); return;" : "\n" + this.tab + "return " + rvar + ";"; + body.makeReturn(rvar); + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + if (this.pattern) { + body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]"))); + } + defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body)); + if (namePart) { + varPart = "\n" + idt1 + namePart + ";"; + } + if (this.object) { + forPartFragments = [this.makeCode("" + kvar + " in " + svar)]; + if (this.own) { + guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;"; + } + } + bodyFragments = body.compileToFragments(merge(o, { + indent: idt1 + }), LEVEL_TOP); + if (bodyFragments && (bodyFragments.length > 0)) { + bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n")); + } + return [].concat(defPartFragments, this.makeCode("" + (resultPart || '') + this.tab + "for ("), forPartFragments, this.makeCode(") {" + guardPart + varPart), bodyFragments, this.makeCode("" + this.tab + "}" + (returnResult || ''))); + }; + + For.prototype.pluckDirectCall = function(o, body) { + var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; + defs = []; + _ref2 = body.expressions; + for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) { + expr = _ref2[idx]; + expr = expr.unwrapAll(); + if (!(expr instanceof Call)) { + continue; + } + val = (_ref3 = expr.variable) != null ? _ref3.unwrapAll() : void 0; + if (!((val instanceof Code) || (val instanceof Value && ((_ref4 = val.base) != null ? _ref4.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref5 = (_ref6 = val.properties[0].name) != null ? _ref6.value : void 0) === 'call' || _ref5 === 'apply')))) { + continue; + } + fn = ((_ref7 = val.base) != null ? _ref7.unwrapAll() : void 0) || val; + ref = new Literal(o.scope.freeVariable('fn')); + base = new Value(ref); + if (val.base) { + _ref8 = [base, val], val.base = _ref8[0], base = _ref8[1]; + } + body.expressions[idx] = new Call(base, expr.args); + defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n')); + } + return defs; + }; + + For.prototype.icedCompileIced = function(o, d) { + var a1, a2, a3, a4, a5, a_positive, a_stepVal, b, begin, body, condition, down, empty_arr, end, excl, guard, iname, init, init_step, is_positive, is_step_positive, ival, key, key_lit, key_val, keys, keys_access, keys_len, keys_val, kval, len, len_rhs, len_val, loop_body, loop_keys, loop_source, neg, pos, positive, pre_body, ref, ref_val, ref_val_copy, scope, source_access, start_rhs, step, stepNum, stepVal, stepVar, step_var, step_var_val, _, _ref2; + body = d.body; + condition = null; + init = []; + step = null; + scope = o.scope; + pre_body = new Block([]); + if (this.object) { + ref = scope.freeVariable('ref'); + ref_val = new Value(new Literal(ref)); + a1 = new Assign(ref_val, this.source); + keys = scope.freeVariable('keys'); + keys_val = new Value(new Literal(keys)); + key = scope.freeVariable('k'); + key_lit = new Literal(key); + key_val = new Value(key_lit); + empty_arr = new Value(new Arr); + loop_body = new Block([key_val]); + loop_source = { + object: true, + name: key_lit, + source: ref_val + }; + loop_keys = new For(loop_body, loop_source); + a2 = new Assign(keys_val, loop_keys); + iname = scope.freeVariable('i'); + ival = new Value(new Literal(iname)); + a3 = new Assign(ival, new Value(new Literal(0))); + init = [a1, a2, a3]; + keys_len = keys_val.copy(); + keys_len.add(new Access(new Value(new Literal("length")))); + condition = new Op('<', ival, keys_len); + step = new Op('++', ival); + if (this.name) { + source_access = ref_val.copy(); + source_access.add(new Index(this.index)); + a5 = new Assign(this.name, source_access); + pre_body.unshift(a5); + } + keys_access = keys_val.copy(); + keys_access.add(new Index(ival)); + a4 = new Assign(this.index, keys_access); + pre_body.unshift(a4); + } else if (this.range) { + if (!this.name) { + this.name = new Literal(d.kvar); + } + begin = new Value(new Literal(o.scope.freeVariable("begin"))); + end = new Value(new Literal(o.scope.freeVariable("end"))); + positive = new Value(new Literal(o.scope.freeVariable("positive"))); + stepVal = new Value(new Literal(o.scope.freeVariable("step"))); + if (this.step) { + a_stepVal = new Assign(stepVal, this.step); + a_positive = new Assign(positive, new Op(">", stepVal, new Literal(0)), null, { + icedlocal: true + }); + } else { + is_positive = new Op(">", end, begin); + a_stepVal = new If(is_positive, new Assign(stepVal, new Literal(1))); + a_stepVal.addElse(new Assign(stepVal, new Literal(-1))); + a_positive = new Assign(positive, is_positive, null, { + icedlocal: true + }); + } + step = new Op('+=', this.name, stepVal); + excl = this.source.base.exclusive ? "=" : ''; + pos = new Op("&&", new Op("===", positive, new Literal(true)), new Op(">" + excl, this.name, this.source.base.to)); + neg = new Op("&&", new Op("===", positive, new Literal(false)), new Op("<" + excl, this.name, this.source.base.to)); + condition = new Op("||", new Parens(pos), new Parens(neg)); + condition = condition.invert(); + init = [ + new Assign(this.name, this.source.base.from), new Assign(begin, this.source.base.from, null, { + icedlocal: true + }), new Assign(end, this.source.base.to, null, { + icedlocal: true + }), a_stepVal, a_positive + ]; + } else if (!this.range && this.name) { + kval = new Value(new Literal(d.kvar)); + len = scope.freeVariable('len'); + ref = scope.freeVariable('ref'); + ref_val = new Value(new Literal(ref)); + len_val = new Value(new Literal(len)); + a1 = new Assign(ref_val, this.source); + len_rhs = ref_val.copy().add(new Access(new Value(new Literal("length")))); + a2 = new Assign(len_val, len_rhs); + init = [a1, a2]; + if (!this.step) { + a3 = new Assign(kval, new Literal(0)); + step = new Op('++', kval); + condition = new Op('<', kval, len_val); + init.push(a3); + } else { + _ref2 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), _ = _ref2[0], stepVar = _ref2[1]; + stepNum = stepVar.match(NUMBER); + if (stepNum) { + step = new Assign(kval, new Op('+', kval, this.step)); + down = parseNum(stepNum[0]) < 0; + if (down) { + a3 = new Assign(kval, new Op('-', len_val, new Literal(1))); + condition = new Op('>=', kval, new Literal(0)); + } else { + a3 = new Assign(kval, new Literal(0)); + condition = new Op('<', kval, len_val); + } + init.push(a3); + } else { + step_var = scope.freeVariable('step'); + step_var_val = new Value(new Literal(step_var)); + init_step = new Assign(step_var_val, new Value(this.step)); + is_step_positive = new Op('>', step_var_val, new Literal(0)); + start_rhs = new If(is_step_positive, new Value(new Literal(0))); + start_rhs.addElse(new Op('-', len_val, new Literal(1))); + step = new Assign(kval, new Op('+', kval, step_var_val)); + a3 = new Assign(kval, start_rhs); + condition = new Op('&&', new Op('>=', kval, new Literal(0)), new Op('<', kval, len_val)); + init.push(init_step, a3); + } + } + ref_val_copy = ref_val.copy(); + ref_val_copy.add(new Index(kval)); + a4 = new Assign(this.name, ref_val_copy); + pre_body.unshift(a4); + } + guard = d.guard; + b = this.icedWrap({ + condition: condition, + body: body, + init: init, + step: step, + guard: guard, + pre_body: pre_body + }); + return b.compileNode(o); + }; + + return For; + + })(While); + + exports.Switch = Switch = (function(_super) { + __extends(Switch, _super); + + function Switch(subject, cases, otherwise) { + this.subject = subject; + this.cases = cases; + this.otherwise = otherwise; + Switch.__super__.constructor.call(this); + } + + Switch.prototype.children = ['subject', 'cases', 'otherwise']; + + Switch.prototype.isStatement = YES; + + Switch.prototype.jumps = function(o) { + var block, conds, jumpNode, _i, _len, _ref2, _ref3, _ref4; + if (o == null) { + o = { + block: true + }; + } + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1]; + if (jumpNode = block.jumps(o)) { + return jumpNode; + } + } + return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0; + }; + + Switch.prototype.makeReturn = function(res) { + var pair, _i, _len, _ref2, _ref3; + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + pair = _ref2[_i]; + pair[1].makeReturn(res); + } + if (res) { + this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); + } + if ((_ref3 = this.otherwise) != null) { + _ref3.makeReturn(res); + } + return this; + }; + + Switch.prototype.compileNode = function(o) { + var block, body, cond, conditions, expr, fragments, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4; + if (this.subject) { + this.subject.icedStatementAssertion(); + } + idt1 = o.indent + TAB; + idt2 = o.indent = idt1 + TAB; + fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n")); + _ref2 = this.cases; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + _ref3 = _ref2[i], conditions = _ref3[0], block = _ref3[1]; + _ref4 = flatten([conditions]); + for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { + cond = _ref4[_j]; + if (!this.subject) { + cond = cond.invert(); + } + fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n")); + } + if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) { + fragments = fragments.concat(body, this.makeCode('\n')); + } + if (i === this.cases.length - 1 && !this.otherwise) { + break; + } + expr = this.lastNonComment(block.expressions); + if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { + continue; + } + fragments.push(cond.makeCode(idt2 + 'break;\n')); + } + if (this.otherwise && this.otherwise.expressions.length) { + fragments.push.apply(fragments, [this.makeCode(idt1 + "default:\n")].concat(__slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode("\n")])); + } + fragments.push(this.makeCode(this.tab + '}')); + return fragments; + }; + + Switch.prototype.icedCallContinuation = function() { + var block, condition, _i, _len, _ref2, _ref3; + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + _ref3 = _ref2[_i], condition = _ref3[0], block = _ref3[1]; + block.icedThreadReturn(); + } + if (this.otherwise != null) { + return this.otherwise.icedThreadReturn(); + } else { + return this.otherwise = new Block([new IcedTailCall]); + } + }; + + return Switch; + + })(Base); + + exports.If = If = (function(_super) { + __extends(If, _super); + + function If(condition, body, options) { + this.body = body; + if (options == null) { + options = {}; + } + If.__super__.constructor.call(this); + this.condition = options.type === 'unless' ? condition.invert() : condition; + this.elseBody = null; + this.isChain = false; + this.soak = options.soak; + } + + If.prototype.children = ['condition', 'body', 'elseBody']; + + If.prototype.bodyNode = function() { + var _ref2; + return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0; + }; + + If.prototype.elseBodyNode = function() { + var _ref2; + return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0; + }; + + If.prototype.addElse = function(elseBody) { + if (this.isChain) { + this.elseBodyNode().addElse(elseBody); + } else { + this.isChain = elseBody instanceof If; + this.elseBody = this.ensureBlock(elseBody); + this.elseBody.updateLocationDataIfMissing(elseBody.locationData); + } + return this; + }; + + If.prototype.isStatement = function(o) { + var _ref2; + return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0); + }; + + If.prototype.jumps = function(o) { + var _ref2; + return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0); + }; + + If.prototype.compileNode = function(o) { + this.condition.icedStatementAssertion(); + if (this.isStatement(o || this.icedIsCpsPivot())) { + return this.compileStatement(o); + } else { + return this.compileExpression(o); + } + }; + + If.prototype.makeReturn = function(res) { + if (res) { + this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); + } + this.body && (this.body = new Block([this.body.makeReturn(res)])); + this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); + return this; + }; + + If.prototype.ensureBlock = function(node) { + if (node instanceof Block) { + return node; + } else { + return new Block([node]); + } + }; + + If.prototype.compileStatement = function(o) { + var answer, body, child, cond, exeq, ifPart, indent; + child = del(o, 'chainChild'); + exeq = del(o, 'isExistentialEquals'); + if (exeq) { + return new If(this.condition.invert(), this.elseBodyNode(), { + type: 'if' + }).compileToFragments(o); + } + indent = o.indent + TAB; + cond = this.condition.compileToFragments(o, LEVEL_PAREN); + body = this.ensureBlock(this.body).compileToFragments(merge(o, { + indent: indent + })); + ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode("\n" + this.tab + "}")); + if (!child) { + ifPart.unshift(this.makeCode(this.tab)); + } + if (!this.elseBody) { + return ifPart; + } + answer = ifPart.concat(this.makeCode(' else ')); + if (this.isChain) { + o.chainChild = true; + answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP)); + } else { + answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, { + indent: indent + }), LEVEL_TOP), this.makeCode("\n" + this.tab + "}")); + } + return answer; + }; + + If.prototype.compileExpression = function(o) { + var alt, body, cond, fragments; + cond = this.condition.compileToFragments(o, LEVEL_COND); + body = this.bodyNode().compileToFragments(o, LEVEL_LIST); + alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')]; + fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt); + if (o.level >= LEVEL_COND) { + return this.wrapInBraces(fragments); + } else { + return fragments; + } + }; + + If.prototype.unfoldSoak = function() { + return this.soak && this; + }; + + If.prototype.icedCallContinuation = function() { + if (this.elseBody) { + this.elseBody.icedThreadReturn(); + this.isChain = false; + } else { + this.addElse(new IcedTailCall); + } + return this.body.icedThreadReturn(); + }; + + return If; + + })(Base); + + Closure = { + wrap: function(expressions, statement, noReturn) { + var args, argumentsNode, call, func, meth; + if (expressions.jumps()) { + return expressions; + } + func = new Code([], Block.wrap([expressions])); + args = []; + argumentsNode = expressions.contains(this.isLiteralArguments); + if (argumentsNode && expressions.classBody) { + argumentsNode.error("Class bodies shouldn't reference arguments"); + } + if (argumentsNode || expressions.contains(this.isLiteralThis)) { + meth = new Literal(argumentsNode ? 'apply' : 'call'); + args = [new Literal('this')]; + if (argumentsNode) { + args.push(new Literal('arguments')); + } + func = new Value(func, [new Access(meth)]); + } + func.noReturn = noReturn; + call = new Call(func, args); + if (statement) { + return Block.wrap([call]); + } else { + return call; + } + }, + isLiteralArguments: function(node) { + return node instanceof Literal && node.value === 'arguments' && !node.asKey; + }, + isLiteralThis: function(node) { + return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); + } + }; + + unfoldSoak = function(o, parent, name) { + var ifn; + if (!(ifn = parent[name].unfoldSoak(o))) { + return; + } + parent[name] = ifn.body; + ifn.body = new Value(parent); + return ifn; + }; + + CpsCascade = { + wrap: function(statement, rest, returnValue, o) { + var args, block, call, cont, e, func; + func = new Code([new Param(new Literal(iced["const"].k))], Block.wrap([statement]), 'icedgen'); + args = []; + if (returnValue) { + returnValue.bindName(o); + args.push(returnValue); + } + block = Block.wrap([rest]); + if ((e = block.icedGetSingle()) && e instanceof IcedTailCall && e.canInline()) { + cont = e.extractFunc(); + } else { + cont = new Code(args, block, 'icedgen'); + } + call = new Call(func, [cont]); + return new Block([call]); + } + }; + + IcedTailCall = (function(_super) { + __extends(IcedTailCall, _super); + + function IcedTailCall(func, val) { + this.func = func; + if (val == null) { + val = null; + } + IcedTailCall.__super__.constructor.call(this); + if (!this.func) { + this.func = iced["const"].k; + } + this.value = val; + } + + IcedTailCall.prototype.children = ['value']; + + IcedTailCall.prototype.assignValue = function(v) { + return this.value = v; + }; + + IcedTailCall.prototype.canInline = function() { + return !this.value || this.value instanceof IcedReturnValue; + }; + + IcedTailCall.prototype.literalFunc = function() { + return new Literal(this.func); + }; + + IcedTailCall.prototype.extractFunc = function() { + return new Value(this.literalFunc()); + }; + + IcedTailCall.prototype.compileNode = function(o) { + var args, f, out; + f = this.literalFunc(); + out = o.level === LEVEL_TOP ? this.value ? new Block([this.value, new Call(f)]) : new Call(f) : (args = this.value ? [this.value] : [], new Call(f, args)); + return out.compileNode(o); + }; + + return IcedTailCall; + + })(Base); + + IcedReturnValue = (function(_super) { + __extends(IcedReturnValue, _super); + + IcedReturnValue.counter = 0; + + function IcedReturnValue() { + IcedReturnValue.__super__.constructor.call(this, null, null, false); + } + + IcedReturnValue.prototype.bindName = function(o) { + var l; + l = "" + (o.scope.freeVariable(iced["const"].param, false)) + "_" + (IcedReturnValue.counter++); + return this.name = new Literal(l); + }; + + IcedReturnValue.prototype.compile = function(o) { + if (!this.name) { + this.bindName(o); + } + return IcedReturnValue.__super__.compile.call(this, o); + }; + + return IcedReturnValue; + + })(Param); + + InlineRuntime = { + generate: function(ns_window) { + var a1, a2, af, apply_call, assignments, body, call_meth, cn, cnt, cnt_member, constructor_assign, constructor_body, constructor_code, constructor_name, constructor_params, decr, defer_assign, defer_body, defer_code, defer_name, defer_params, dp, dp_value, fn, fn_assign, fn_code, fn_name, if_body, if_cond, if_expr, inc, inner_body, inner_code, inner_params, ip, k, k_member, klass, klass_assign, my_apply, my_if, my_null, ns, ns_obj, ns_val, obj, outer_block, p1, ret_member, tr_assign, tr_block, tr_code, tr_name, tr_params, _fulfill_assign, _fulfill_body, _fulfill_call, _fulfill_code, _fulfill_method, _fulfill_name; + k = new Literal("continuation"); + cnt = new Literal("count"); + cn = new Value(new Literal(iced["const"].Deferrals)); + ns = new Value(new Literal(iced["const"].ns)); + if (ns_window) { + ns_window.add(new Access(ns)); + ns = ns_window; + } + k_member = new Value(new Literal("this")); + k_member.add(new Access(k)); + p1 = new Param(k_member); + cnt_member = new Value(new Literal("this")); + cnt_member.add(new Access(cnt)); + ret_member = new Value(new Literal("this")); + ret_member.add(new Access(new Value(new Literal(iced["const"].retslot)))); + a1 = new Assign(cnt_member, new Value(new Literal(1))); + a2 = new Assign(ret_member, NULL()); + constructor_params = [p1]; + constructor_body = new Block([a1, a2]); + constructor_code = new Code(constructor_params, constructor_body); + constructor_name = new Value(new Literal("constructor")); + constructor_assign = new Assign(constructor_name, constructor_code); + if_expr = new Call(k_member, [ret_member]); + if_body = new Block([if_expr]); + decr = new Op('--', cnt_member); + if_cond = new Op('!', decr); + my_if = new If(if_cond, if_body); + _fulfill_body = new Block([my_if]); + _fulfill_code = new Code([], _fulfill_body); + _fulfill_name = new Value(new Literal(iced["const"].fulfill)); + _fulfill_assign = new Assign(_fulfill_name, _fulfill_code); + inc = new Op("++", cnt_member); + ip = new Literal("inner_params"); + dp = new Literal("defer_params"); + dp_value = new Value(dp); + call_meth = new Value(dp); + af = new Literal(iced["const"].assign_fn); + call_meth.add(new Access(af, "soak")); + my_apply = new Literal("apply"); + call_meth.add(new Access(my_apply, "soak")); + my_null = NULL(); + apply_call = new Call(call_meth, [my_null, new Value(ip)]); + _fulfill_method = new Value(new Literal("this")); + _fulfill_method.add(new Access(new Literal(iced["const"].fulfill))); + _fulfill_call = new Call(_fulfill_method, []); + inner_body = new Block([apply_call, _fulfill_call]); + inner_params = [new Param(ip, null, true)]; + inner_code = new Code(inner_params, inner_body, "boundfunc"); + defer_body = new Block([inc, inner_code]); + defer_params = [new Param(dp)]; + defer_code = new Code(defer_params, defer_body); + defer_name = new Value(new Literal(iced["const"].defer_method)); + defer_assign = new Assign(defer_name, defer_code); + assignments = [constructor_assign, _fulfill_assign, defer_assign]; + obj = new Obj(assignments, true); + body = new Block([new Value(obj)]); + klass = new Class(null, null, body); + klass_assign = new Assign(cn, klass, "object"); + outer_block = new Block([NULL()]); + fn_code = new Code([], outer_block); + fn_name = new Value(new Literal(iced["const"].findDeferral)); + fn_assign = new Assign(fn_name, fn_code, "object"); + fn = new Literal("_fn"); + tr_block = new Block([new Call(new Value(fn), [])]); + tr_params = [new Param(fn)]; + tr_code = new Code(tr_params, tr_block); + tr_name = new Value(new Literal(iced["const"].trampoline)); + tr_assign = new Assign(tr_name, tr_code, "object"); + ns_obj = new Obj([klass_assign, fn_assign, tr_assign], true); + ns_val = new Value(ns_obj); + return new Assign(ns, ns_val); + } + }; + + UTILITIES = { + "extends": function() { + return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".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'; + } + }; + + LEVEL_TOP = 1; + + LEVEL_PAREN = 2; + + LEVEL_LIST = 3; + + LEVEL_COND = 4; + + LEVEL_OP = 5; + + LEVEL_ACCESS = 6; + + TAB = ' '; + + IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; + + IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$"); + + SIMPLENUM = /^[+-]?\d+$/; + + HEXNUM = /^[+-]?0x[\da-f]+/i; + + NUMBER = /^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i; + + METHOD_DEF = RegExp("^(" + IDENTIFIER_STR + ")(\\.prototype)?(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$"); + + IS_STRING = /^['"]/; + + IS_REGEX = /^\//; + + utility = function(name) { + var ref; + ref = "__" + name; + Scope.root.assign(ref, UTILITIES[name]()); + return ref; + }; + + multident = function(code, tab) { + code = code.replace(/\n/g, '$&' + tab); + return code.replace(/\s+$/, ''); + }; + + parseNum = function(x) { + if (x == null) { + return 0; + } else if (x.match(HEXNUM)) { + return parseInt(x, 16); + } else { + return parseFloat(x); + } + }; + + isLiteralArguments = function(node) { + return node instanceof Literal && node.value === 'arguments' && !node.asKey; + }; + + isLiteralThis = function(node) { + return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); + }; + + unfoldSoak = function(o, parent, name) { + var ifn; + if (!(ifn = parent[name].unfoldSoak(o))) { + return; + } + parent[name] = ifn.body; + ifn.body = new Value(parent); + return ifn; + }; + +}).call(this); + +}).call(this,"/") +},{"./helpers":3,"./lexer":5,"./scope":10,"iced-runtime":15,"path":18}],7:[function(_dereq_,module,exports){ +(function (process){ +/* parser generated by jison 0.4.13 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Await":12,"AWAIT":13,"Block":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,"Defer":27,"INDENT":28,"OUTDENT":29,"Identifier":30,"IDENTIFIER":31,"AlphaNumeric":32,"NUMBER":33,"STRING":34,"Literal":35,"JS":36,"REGEX":37,"DEBUGGER":38,"UNDEFINED":39,"NULL":40,"BOOL":41,"Assignable":42,"=":43,"AssignObj":44,"ObjAssignable":45,":":46,"ThisProperty":47,"RETURN":48,"HERECOMMENT":49,"PARAM_START":50,"ParamList":51,"PARAM_END":52,"FuncGlyph":53,"->":54,"=>":55,"OptComma":56,",":57,"Param":58,"ParamVar":59,"...":60,"Array":61,"Object":62,"Splat":63,"SimpleAssignable":64,"Accessor":65,"Parenthetical":66,"Range":67,"This":68,".":69,"?.":70,"::":71,"?::":72,"Index":73,"INDEX_START":74,"IndexValue":75,"INDEX_END":76,"INDEX_SOAK":77,"Slice":78,"{":79,"AssignList":80,"}":81,"CLASS":82,"EXTENDS":83,"OptFuncExist":84,"Arguments":85,"SUPER":86,"DEFER":87,"FUNC_EXIST":88,"CALL_START":89,"CALL_END":90,"ArgList":91,"THIS":92,"@":93,"[":94,"]":95,"RangeDots":96,"..":97,"Arg":98,"SimpleArgs":99,"TRY":100,"Catch":101,"FINALLY":102,"CATCH":103,"THROW":104,"(":105,")":106,"WhileSource":107,"WHILE":108,"WHEN":109,"UNTIL":110,"Loop":111,"LOOP":112,"ForBody":113,"FOR":114,"ForStart":115,"ForSource":116,"ForVariables":117,"OWN":118,"ForValue":119,"FORIN":120,"FOROF":121,"BY":122,"SWITCH":123,"Whens":124,"ELSE":125,"When":126,"LEADING_WHEN":127,"IfBlock":128,"IF":129,"POST_IF":130,"UNARY":131,"UNARY_MATH":132,"-":133,"+":134,"YIELD":135,"FROM":136,"--":137,"++":138,"?":139,"MATH":140,"**":141,"SHIFT":142,"COMPARE":143,"LOGIC":144,"RELATION":145,"COMPOUND_ASSIGN":146,"$accept":0,"$end":1}, +terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",13:"AWAIT",28:"INDENT",29:"OUTDENT",31:"IDENTIFIER",33:"NUMBER",34:"STRING",36:"JS",37:"REGEX",38:"DEBUGGER",39:"UNDEFINED",40:"NULL",41:"BOOL",43:"=",46:":",48:"RETURN",49:"HERECOMMENT",50:"PARAM_START",52:"PARAM_END",54:"->",55:"=>",57:",",60:"...",69:".",70:"?.",71:"::",72:"?::",74:"INDEX_START",76:"INDEX_END",77:"INDEX_SOAK",79:"{",81:"}",82:"CLASS",83:"EXTENDS",86:"SUPER",87:"DEFER",88:"FUNC_EXIST",89:"CALL_START",90:"CALL_END",92:"THIS",93:"@",94:"[",95:"]",97:"..",100:"TRY",102:"FINALLY",103:"CATCH",104:"THROW",105:"(",106:")",108:"WHILE",109:"WHEN",110:"UNTIL",112:"LOOP",114:"FOR",118:"OWN",120:"FORIN",121:"FOROF",122:"BY",123:"SWITCH",125:"ELSE",127:"LEADING_WHEN",129:"IF",130:"POST_IF",131:"UNARY",132:"UNARY_MATH",133:"-",134:"+",135:"YIELD",136:"FROM",137:"--",138:"++",139:"?",140:"MATH",141:"**",142:"SHIFT",143:"COMPARE",144:"LOGIC",145:"RELATION",146:"COMPOUND_ASSIGN"}, +productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[12,2],[12,2],[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],[14,2],[14,3],[30,1],[32,1],[32,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[19,3],[19,4],[19,5],[44,1],[44,3],[44,5],[44,1],[45,1],[45,1],[45,1],[9,2],[9,1],[10,1],[17,5],[17,2],[53,1],[53,1],[56,0],[56,1],[51,0],[51,1],[51,3],[51,4],[51,6],[58,1],[58,2],[58,3],[58,1],[59,1],[59,1],[59,1],[59,1],[63,2],[64,1],[64,2],[64,2],[64,1],[42,1],[42,1],[42,1],[15,1],[15,1],[15,1],[15,1],[15,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,1],[65,1],[73,3],[73,2],[75,1],[75,1],[62,4],[80,0],[80,1],[80,3],[80,4],[80,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[16,3],[16,3],[16,1],[16,2],[27,2],[84,0],[84,1],[85,2],[85,4],[68,1],[68,1],[47,2],[61,2],[61,4],[96,1],[96,1],[67,5],[78,3],[78,2],[78,2],[78,1],[91,1],[91,3],[91,4],[91,4],[91,6],[98,1],[98,1],[98,1],[99,1],[99,3],[21,2],[21,3],[21,4],[21,5],[101,3],[101,3],[101,2],[26,2],[66,3],[66,5],[107,2],[107,4],[107,2],[107,4],[22,2],[22,2],[22,2],[22,1],[111,2],[111,2],[23,2],[23,2],[23,2],[113,2],[113,2],[115,2],[115,3],[119,1],[119,1],[119,1],[119,1],[117,1],[117,3],[116,2],[116,2],[116,4],[116,4],[116,4],[116,6],[116,6],[24,5],[24,7],[24,4],[24,6],[124,1],[124,2],[126,3],[126,4],[128,3],[128,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[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 anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */ +/**/) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block); +break; +case 2:return this.$ = $$[$0]; +break; +case 3:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]])); +break; +case 4:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0])); +break; +case 5:this.$ = $$[$0-1]; +break; +case 6:this.$ = $$[$0]; +break; +case 7:this.$ = $$[$0]; +break; +case 8:this.$ = $$[$0]; +break; +case 9:this.$ = $$[$0]; +break; +case 10:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 11:this.$ = $$[$0]; +break; +case 12:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Await($$[$0])); +break; +case 13:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Await(yy.Block.wrap([$$[$0]]))); +break; +case 14:this.$ = $$[$0]; +break; +case 15:this.$ = $$[$0]; +break; +case 16:this.$ = $$[$0]; +break; +case 17:this.$ = $$[$0]; +break; +case 18:this.$ = $$[$0]; +break; +case 19:this.$ = $$[$0]; +break; +case 20:this.$ = $$[$0]; +break; +case 21:this.$ = $$[$0]; +break; +case 22:this.$ = $$[$0]; +break; +case 23:this.$ = $$[$0]; +break; +case 24:this.$ = $$[$0]; +break; +case 25:this.$ = $$[$0]; +break; +case 26:this.$ = $$[$0]; +break; +case 27:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block); +break; +case 28:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); +break; +case 29:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 32:this.$ = $$[$0]; +break; +case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 35:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 36:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined); +break; +case 37:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null); +break; +case 38:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0])); +break; +case 39:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0])); +break; +case 40:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0])); +break; +case 41:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1])); +break; +case 42:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 43:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object')); +break; +case 44:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object')); +break; +case 45:this.$ = $$[$0]; +break; +case 46:this.$ = $$[$0]; +break; +case 47:this.$ = $$[$0]; +break; +case 48:this.$ = $$[$0]; +break; +case 49:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0])); +break; +case 50:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return); +break; +case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0])); +break; +case 52:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1])); +break; +case 53:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1])); +break; +case 54:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func'); +break; +case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc'); +break; +case 56:this.$ = $$[$0]; +break; +case 57:this.$ = $$[$0]; +break; +case 58:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); +break; +case 59:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 60:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 61:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 62:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 63:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0])); +break; +case 64:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true)); +break; +case 65:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0])); +break; +case 66:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); +break; +case 67:this.$ = $$[$0]; +break; +case 68:this.$ = $$[$0]; +break; +case 69:this.$ = $$[$0]; +break; +case 70:this.$ = $$[$0]; +break; +case 71:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1])); +break; +case 72:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 73:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0])); +break; +case 74:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0]))); +break; +case 75:this.$ = $$[$0]; +break; +case 76:this.$ = $$[$0]; +break; +case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 79:this.$ = $$[$0]; +break; +case 80:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 81:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 82:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 83:this.$ = $$[$0]; +break; +case 84:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0])); +break; +case 85:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0].setCustom())); +break; +case 86:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak')); +break; +case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 88:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype'))); +break; +case 90:this.$ = $$[$0]; +break; +case 91:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); +break; +case 92:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], { + soak: true + })); +break; +case 93:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0])); +break; +case 94:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0])); +break; +case 95:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated)); +break; +case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); +break; +case 97:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 100:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 101:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class); +break; +case 102:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0])); +break; +case 103:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0])); +break; +case 104:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0])); +break; +case 105:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0])); +break; +case 106:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0])); +break; +case 107:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0])); +break; +case 108:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0])); +break; +case 109:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); +break; +case 110:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); +break; +case 111:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))])); +break; +case 112:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0])); +break; +case 113:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Defer($$[$0], yylineno)); +break; +case 114:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); +break; +case 115:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); +break; +case 116:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]); +break; +case 117:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); +break; +case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); +break; +case 119:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); +break; +case 120:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this')); +break; +case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); +break; +case 122:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); +break; +case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); +break; +case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); +break; +case 125:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); +break; +case 126:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); +break; +case 127:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); +break; +case 128:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); +break; +case 129:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0])); +break; +case 130:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 131:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 132:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 133:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); +break; +case 134:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 135:this.$ = $$[$0]; +break; +case 136:this.$ = $$[$0]; +break; +case 137:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); +break; +case 138:this.$ = $$[$0]; +break; +case 139:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0])); +break; +case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0])); +break; +case 141:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1])); +break; +case 142:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0])); +break; +case 143:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0])); +break; +case 144:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]); +break; +case 145:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]); +break; +case 146:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]); +break; +case 147:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0])); +break; +case 148:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); +break; +case 149:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); +break; +case 150:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); +break; +case 151:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + guard: $$[$0] + })); +break; +case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], { + invert: true + })); +break; +case 153:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + invert: true, + guard: $$[$0] + })); +break; +case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0])); +break; +case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); +break; +case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); +break; +case 157:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]); +break; +case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0])); +break; +case 159:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]])))); +break; +case 160:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); +break; +case 161:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); +break; +case 162:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1])); +break; +case 163:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0])) + }); +break; +case 164:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { + $$[$0].own = $$[$0-1].own; + $$[$0].name = $$[$0-1][0]; + $$[$0].index = $$[$0-1][1]; + return $$[$0]; + }())); +break; +case 165:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]); +break; +case 166:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + $$[$0].own = true; + return $$[$0]; + }())); +break; +case 167:this.$ = $$[$0]; +break; +case 168:this.$ = $$[$0]; +break; +case 169:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 170:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 171:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 172:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]); +break; +case 173:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0] + }); +break; +case 174:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0], + object: true + }); +break; +case 175:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0] + }); +break; +case 176:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0], + object: true + }); +break; +case 177:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + step: $$[$0] + }); +break; +case 178:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + guard: $$[$0-2], + step: $$[$0] + }); +break; +case 179:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + step: $$[$0-2], + guard: $$[$0] + }); +break; +case 180:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1])); +break; +case 181:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1])); +break; +case 182:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1])); +break; +case 183:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1])); +break; +case 184:this.$ = $$[$0]; +break; +case 185:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0])); +break; +case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]); +break; +case 187:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]); +break; +case 188:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { + type: $$[$0-2] + })); +break; +case 189:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { + type: $$[$0-2] + })))); +break; +case 190:this.$ = $$[$0]; +break; +case 191:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0])); +break; +case 192:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { + type: $$[$0-1], + statement: true + })); +break; +case 193:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { + type: $$[$0-1], + statement: true + })); +break; +case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 195:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 196:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0])); +break; +case 197:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0])); +break; +case 198:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 199:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-2].concat($$[$0-1]), $$[$0])); +break; +case 201:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); +break; +case 202:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); +break; +case 203:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); +break; +case 204:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); +break; +case 205:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); +break; +case 206:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); +break; +case 207:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); +break; +case 208:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 209:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 210:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 211:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 212:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 213:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + if ($$[$0-1].charAt(0) === '!') { + return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); + } else { + return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); + } + }())); +break; +case 214:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); +break; +case 215:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); +break; +case 216:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); +break; +case 217:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0])); +break; +} +}, +table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[3]},{1:[2,2],6:[1,78]},{1:[2,3],6:[2,3],29:[2,3],106:[2,3]},{1:[2,6],6:[2,6],29:[2,6],106:[2,6],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,7],6:[2,7],29:[2,7],106:[2,7],107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,14],6:[2,14],28:[2,14],29:[2,14],52:[2,14],57:[2,14],60:[2,14],65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,14],77:[1,103],81:[2,14],84:94,88:[1,96],89:[2,114],90:[2,14],95:[2,14],97:[2,14],106:[2,14],108:[2,14],109:[2,14],110:[2,14],114:[2,14],122:[2,14],130:[2,14],133:[2,14],134:[2,14],139:[2,14],140:[2,14],141:[2,14],142:[2,14],143:[2,14],144:[2,14],145:[2,14]},{1:[2,15],6:[2,15],28:[2,15],29:[2,15],52:[2,15],57:[2,15],60:[2,15],65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,15],77:[1,103],81:[2,15],84:104,88:[1,96],89:[2,114],90:[2,15],95:[2,15],97:[2,15],106:[2,15],108:[2,15],109:[2,15],110:[2,15],114:[2,15],122:[2,15],130:[2,15],133:[2,15],134:[2,15],139:[2,15],140:[2,15],141:[2,15],142:[2,15],143:[2,15],144:[2,15],145:[2,15]},{1:[2,16],6:[2,16],28:[2,16],29:[2,16],52:[2,16],57:[2,16],60:[2,16],76:[2,16],81:[2,16],90:[2,16],95:[2,16],97:[2,16],106:[2,16],108:[2,16],109:[2,16],110:[2,16],114:[2,16],122:[2,16],130:[2,16],133:[2,16],134:[2,16],139:[2,16],140:[2,16],141:[2,16],142:[2,16],143:[2,16],144:[2,16],145:[2,16]},{1:[2,17],6:[2,17],28:[2,17],29:[2,17],52:[2,17],57:[2,17],60:[2,17],76:[2,17],81:[2,17],90:[2,17],95:[2,17],97:[2,17],106:[2,17],108:[2,17],109:[2,17],110:[2,17],114:[2,17],122:[2,17],130:[2,17],133:[2,17],134:[2,17],139:[2,17],140:[2,17],141:[2,17],142:[2,17],143:[2,17],144:[2,17],145:[2,17]},{1:[2,18],6:[2,18],28:[2,18],29:[2,18],52:[2,18],57:[2,18],60:[2,18],76:[2,18],81:[2,18],90:[2,18],95:[2,18],97:[2,18],106:[2,18],108:[2,18],109:[2,18],110:[2,18],114:[2,18],122:[2,18],130:[2,18],133:[2,18],134:[2,18],139:[2,18],140:[2,18],141:[2,18],142:[2,18],143:[2,18],144:[2,18],145:[2,18]},{1:[2,19],6:[2,19],28:[2,19],29:[2,19],52:[2,19],57:[2,19],60:[2,19],76:[2,19],81:[2,19],90:[2,19],95:[2,19],97:[2,19],106:[2,19],108:[2,19],109:[2,19],110:[2,19],114:[2,19],122:[2,19],130:[2,19],133:[2,19],134:[2,19],139:[2,19],140:[2,19],141:[2,19],142:[2,19],143:[2,19],144:[2,19],145:[2,19]},{1:[2,20],6:[2,20],28:[2,20],29:[2,20],52:[2,20],57:[2,20],60:[2,20],76:[2,20],81:[2,20],90:[2,20],95:[2,20],97:[2,20],106:[2,20],108:[2,20],109:[2,20],110:[2,20],114:[2,20],122:[2,20],130:[2,20],133:[2,20],134:[2,20],139:[2,20],140:[2,20],141:[2,20],142:[2,20],143:[2,20],144:[2,20],145:[2,20]},{1:[2,21],6:[2,21],28:[2,21],29:[2,21],52:[2,21],57:[2,21],60:[2,21],76:[2,21],81:[2,21],90:[2,21],95:[2,21],97:[2,21],106:[2,21],108:[2,21],109:[2,21],110:[2,21],114:[2,21],122:[2,21],130:[2,21],133:[2,21],134:[2,21],139:[2,21],140:[2,21],141:[2,21],142:[2,21],143:[2,21],144:[2,21],145:[2,21]},{1:[2,22],6:[2,22],28:[2,22],29:[2,22],52:[2,22],57:[2,22],60:[2,22],76:[2,22],81:[2,22],90:[2,22],95:[2,22],97:[2,22],106:[2,22],108:[2,22],109:[2,22],110:[2,22],114:[2,22],122:[2,22],130:[2,22],133:[2,22],134:[2,22],139:[2,22],140:[2,22],141:[2,22],142:[2,22],143:[2,22],144:[2,22],145:[2,22]},{1:[2,23],6:[2,23],28:[2,23],29:[2,23],52:[2,23],57:[2,23],60:[2,23],76:[2,23],81:[2,23],90:[2,23],95:[2,23],97:[2,23],106:[2,23],108:[2,23],109:[2,23],110:[2,23],114:[2,23],122:[2,23],130:[2,23],133:[2,23],134:[2,23],139:[2,23],140:[2,23],141:[2,23],142:[2,23],143:[2,23],144:[2,23],145:[2,23]},{1:[2,24],6:[2,24],28:[2,24],29:[2,24],52:[2,24],57:[2,24],60:[2,24],76:[2,24],81:[2,24],90:[2,24],95:[2,24],97:[2,24],106:[2,24],108:[2,24],109:[2,24],110:[2,24],114:[2,24],122:[2,24],130:[2,24],133:[2,24],134:[2,24],139:[2,24],140:[2,24],141:[2,24],142:[2,24],143:[2,24],144:[2,24],145:[2,24]},{1:[2,25],6:[2,25],28:[2,25],29:[2,25],52:[2,25],57:[2,25],60:[2,25],76:[2,25],81:[2,25],90:[2,25],95:[2,25],97:[2,25],106:[2,25],108:[2,25],109:[2,25],110:[2,25],114:[2,25],122:[2,25],130:[2,25],133:[2,25],134:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25],143:[2,25],144:[2,25],145:[2,25]},{1:[2,26],6:[2,26],28:[2,26],29:[2,26],52:[2,26],57:[2,26],60:[2,26],76:[2,26],81:[2,26],90:[2,26],95:[2,26],97:[2,26],106:[2,26],108:[2,26],109:[2,26],110:[2,26],114:[2,26],122:[2,26],130:[2,26],133:[2,26],134:[2,26],139:[2,26],140:[2,26],141:[2,26],142:[2,26],143:[2,26],144:[2,26],145:[2,26]},{1:[2,8],6:[2,8],28:[2,8],29:[2,8],52:[2,8],57:[2,8],60:[2,8],76:[2,8],81:[2,8],90:[2,8],95:[2,8],97:[2,8],106:[2,8],108:[2,8],109:[2,8],110:[2,8],114:[2,8],122:[2,8],130:[2,8],133:[2,8],134:[2,8],139:[2,8],140:[2,8],141:[2,8],142:[2,8],143:[2,8],144:[2,8],145:[2,8]},{1:[2,9],6:[2,9],28:[2,9],29:[2,9],52:[2,9],57:[2,9],60:[2,9],76:[2,9],81:[2,9],90:[2,9],95:[2,9],97:[2,9],106:[2,9],108:[2,9],109:[2,9],110:[2,9],114:[2,9],122:[2,9],130:[2,9],133:[2,9],134:[2,9],139:[2,9],140:[2,9],141:[2,9],142:[2,9],143:[2,9],144:[2,9],145:[2,9]},{1:[2,10],6:[2,10],28:[2,10],29:[2,10],52:[2,10],57:[2,10],60:[2,10],76:[2,10],81:[2,10],90:[2,10],95:[2,10],97:[2,10],106:[2,10],108:[2,10],109:[2,10],110:[2,10],114:[2,10],122:[2,10],130:[2,10],133:[2,10],134:[2,10],139:[2,10],140:[2,10],141:[2,10],142:[2,10],143:[2,10],144:[2,10],145:[2,10]},{1:[2,11],6:[2,11],28:[2,11],29:[2,11],52:[2,11],57:[2,11],60:[2,11],76:[2,11],81:[2,11],90:[2,11],95:[2,11],97:[2,11],106:[2,11],108:[2,11],109:[2,11],110:[2,11],114:[2,11],122:[2,11],130:[2,11],133:[2,11],134:[2,11],139:[2,11],140:[2,11],141:[2,11],142:[2,11],143:[2,11],144:[2,11],145:[2,11]},{1:[2,79],6:[2,79],28:[2,79],29:[2,79],43:[1,106],52:[2,79],57:[2,79],60:[2,79],69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],76:[2,79],77:[2,79],81:[2,79],88:[2,79],89:[2,79],90:[2,79],95:[2,79],97:[2,79],106:[2,79],108:[2,79],109:[2,79],110:[2,79],114:[2,79],122:[2,79],130:[2,79],133:[2,79],134:[2,79],139:[2,79],140:[2,79],141:[2,79],142:[2,79],143:[2,79],144:[2,79],145:[2,79]},{1:[2,80],6:[2,80],28:[2,80],29:[2,80],52:[2,80],57:[2,80],60:[2,80],69:[2,80],70:[2,80],71:[2,80],72:[2,80],74:[2,80],76:[2,80],77:[2,80],81:[2,80],88:[2,80],89:[2,80],90:[2,80],95:[2,80],97:[2,80],106:[2,80],108:[2,80],109:[2,80],110:[2,80],114:[2,80],122:[2,80],130:[2,80],133:[2,80],134:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80],143:[2,80],144:[2,80],145:[2,80]},{1:[2,81],6:[2,81],28:[2,81],29:[2,81],52:[2,81],57:[2,81],60:[2,81],69:[2,81],70:[2,81],71:[2,81],72:[2,81],74:[2,81],76:[2,81],77:[2,81],81:[2,81],88:[2,81],89:[2,81],90:[2,81],95:[2,81],97:[2,81],106:[2,81],108:[2,81],109:[2,81],110:[2,81],114:[2,81],122:[2,81],130:[2,81],133:[2,81],134:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81],143:[2,81],144:[2,81],145:[2,81]},{1:[2,82],6:[2,82],28:[2,82],29:[2,82],52:[2,82],57:[2,82],60:[2,82],69:[2,82],70:[2,82],71:[2,82],72:[2,82],74:[2,82],76:[2,82],77:[2,82],81:[2,82],88:[2,82],89:[2,82],90:[2,82],95:[2,82],97:[2,82],106:[2,82],108:[2,82],109:[2,82],110:[2,82],114:[2,82],122:[2,82],130:[2,82],133:[2,82],134:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82],143:[2,82],144:[2,82],145:[2,82]},{1:[2,83],6:[2,83],28:[2,83],29:[2,83],52:[2,83],57:[2,83],60:[2,83],69:[2,83],70:[2,83],71:[2,83],72:[2,83],74:[2,83],76:[2,83],77:[2,83],81:[2,83],88:[2,83],89:[2,83],90:[2,83],95:[2,83],97:[2,83],106:[2,83],108:[2,83],109:[2,83],110:[2,83],114:[2,83],122:[2,83],130:[2,83],133:[2,83],134:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83],143:[2,83],144:[2,83],145:[2,83]},{1:[2,111],6:[2,111],28:[2,111],29:[2,111],52:[2,111],57:[2,111],60:[2,111],69:[2,111],70:[2,111],71:[2,111],72:[2,111],74:[2,111],76:[2,111],77:[2,111],81:[2,111],85:107,88:[2,111],89:[1,108],90:[2,111],95:[2,111],97:[2,111],106:[2,111],108:[2,111],109:[2,111],110:[2,111],114:[2,111],122:[2,111],130:[2,111],133:[2,111],134:[2,111],139:[2,111],140:[2,111],141:[2,111],142:[2,111],143:[2,111],144:[2,111],145:[2,111]},{6:[2,58],28:[2,58],30:113,31:[1,77],47:114,51:109,52:[2,58],57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{14:119,28:[1,120]},{7:121,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:123,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:124,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:125,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:127,8:126,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],136:[1,128],137:[1,36],138:[1,37]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:129,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:133,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{1:[2,76],6:[2,76],28:[2,76],29:[2,76],43:[2,76],52:[2,76],57:[2,76],60:[2,76],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,76],77:[2,76],81:[2,76],83:[1,137],88:[2,76],89:[2,76],90:[2,76],95:[2,76],97:[2,76],106:[2,76],108:[2,76],109:[2,76],110:[2,76],114:[2,76],122:[2,76],130:[2,76],133:[2,76],134:[2,76],137:[1,134],138:[1,135],139:[2,76],140:[2,76],141:[2,76],142:[2,76],143:[2,76],144:[2,76],145:[2,76],146:[1,136]},{1:[2,190],6:[2,190],28:[2,190],29:[2,190],52:[2,190],57:[2,190],60:[2,190],76:[2,190],81:[2,190],90:[2,190],95:[2,190],97:[2,190],106:[2,190],108:[2,190],109:[2,190],110:[2,190],114:[2,190],122:[2,190],125:[1,138],130:[2,190],133:[2,190],134:[2,190],139:[2,190],140:[2,190],141:[2,190],142:[2,190],143:[2,190],144:[2,190],145:[2,190]},{14:139,28:[1,120]},{14:140,28:[1,120]},{1:[2,157],6:[2,157],28:[2,157],29:[2,157],52:[2,157],57:[2,157],60:[2,157],76:[2,157],81:[2,157],90:[2,157],95:[2,157],97:[2,157],106:[2,157],108:[2,157],109:[2,157],110:[2,157],114:[2,157],122:[2,157],130:[2,157],133:[2,157],134:[2,157],139:[2,157],140:[2,157],141:[2,157],142:[2,157],143:[2,157],144:[2,157],145:[2,157]},{14:141,28:[1,120]},{7:142,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,143],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,101],6:[2,101],14:144,15:130,16:131,28:[1,120],29:[2,101],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,52:[2,101],57:[2,101],60:[2,101],61:51,62:52,64:146,66:25,67:26,68:27,76:[2,101],79:[1,74],81:[2,101],83:[1,145],86:[1,28],90:[2,101],92:[1,62],93:[1,63],94:[1,61],95:[2,101],97:[2,101],105:[1,60],106:[2,101],108:[2,101],109:[2,101],110:[2,101],114:[2,101],122:[2,101],130:[2,101],133:[2,101],134:[2,101],139:[2,101],140:[2,101],141:[2,101],142:[2,101],143:[2,101],144:[2,101],145:[2,101]},{7:147,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{85:148,89:[1,108]},{1:[2,50],6:[2,50],7:149,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,50],29:[2,50],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],52:[2,50],53:30,54:[1,64],55:[1,65],57:[2,50],60:[2,50],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,50],79:[1,74],81:[2,50],82:[1,45],86:[1,28],87:[1,47],90:[2,50],92:[1,62],93:[1,63],94:[1,61],95:[2,50],97:[2,50],100:[1,40],104:[1,46],105:[1,60],106:[2,50],107:41,108:[2,50],109:[2,50],110:[2,50],111:42,112:[1,71],113:43,114:[2,50],115:73,122:[2,50],123:[1,44],128:39,129:[1,68],130:[2,50],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37],139:[2,50],140:[2,50],141:[2,50],142:[2,50],143:[2,50],144:[2,50],145:[2,50]},{1:[2,51],6:[2,51],28:[2,51],29:[2,51],52:[2,51],57:[2,51],60:[2,51],76:[2,51],81:[2,51],90:[2,51],95:[2,51],97:[2,51],106:[2,51],108:[2,51],109:[2,51],110:[2,51],114:[2,51],122:[2,51],130:[2,51],133:[2,51],134:[2,51],139:[2,51],140:[2,51],141:[2,51],142:[2,51],143:[2,51],144:[2,51],145:[2,51]},{7:151,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:150,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,77],6:[2,77],28:[2,77],29:[2,77],43:[2,77],52:[2,77],57:[2,77],60:[2,77],69:[2,77],70:[2,77],71:[2,77],72:[2,77],74:[2,77],76:[2,77],77:[2,77],81:[2,77],88:[2,77],89:[2,77],90:[2,77],95:[2,77],97:[2,77],106:[2,77],108:[2,77],109:[2,77],110:[2,77],114:[2,77],122:[2,77],130:[2,77],133:[2,77],134:[2,77],139:[2,77],140:[2,77],141:[2,77],142:[2,77],143:[2,77],144:[2,77],145:[2,77]},{1:[2,78],6:[2,78],28:[2,78],29:[2,78],43:[2,78],52:[2,78],57:[2,78],60:[2,78],69:[2,78],70:[2,78],71:[2,78],72:[2,78],74:[2,78],76:[2,78],77:[2,78],81:[2,78],88:[2,78],89:[2,78],90:[2,78],95:[2,78],97:[2,78],106:[2,78],108:[2,78],109:[2,78],110:[2,78],114:[2,78],122:[2,78],130:[2,78],133:[2,78],134:[2,78],139:[2,78],140:[2,78],141:[2,78],142:[2,78],143:[2,78],144:[2,78],145:[2,78]},{1:[2,32],6:[2,32],28:[2,32],29:[2,32],52:[2,32],57:[2,32],60:[2,32],69:[2,32],70:[2,32],71:[2,32],72:[2,32],74:[2,32],76:[2,32],77:[2,32],81:[2,32],88:[2,32],89:[2,32],90:[2,32],95:[2,32],97:[2,32],106:[2,32],108:[2,32],109:[2,32],110:[2,32],114:[2,32],122:[2,32],130:[2,32],133:[2,32],134:[2,32],139:[2,32],140:[2,32],141:[2,32],142:[2,32],143:[2,32],144:[2,32],145:[2,32]},{1:[2,33],6:[2,33],28:[2,33],29:[2,33],52:[2,33],57:[2,33],60:[2,33],69:[2,33],70:[2,33],71:[2,33],72:[2,33],74:[2,33],76:[2,33],77:[2,33],81:[2,33],88:[2,33],89:[2,33],90:[2,33],95:[2,33],97:[2,33],106:[2,33],108:[2,33],109:[2,33],110:[2,33],114:[2,33],122:[2,33],130:[2,33],133:[2,33],134:[2,33],139:[2,33],140:[2,33],141:[2,33],142:[2,33],143:[2,33],144:[2,33],145:[2,33]},{1:[2,34],6:[2,34],28:[2,34],29:[2,34],52:[2,34],57:[2,34],60:[2,34],69:[2,34],70:[2,34],71:[2,34],72:[2,34],74:[2,34],76:[2,34],77:[2,34],81:[2,34],88:[2,34],89:[2,34],90:[2,34],95:[2,34],97:[2,34],106:[2,34],108:[2,34],109:[2,34],110:[2,34],114:[2,34],122:[2,34],130:[2,34],133:[2,34],134:[2,34],139:[2,34],140:[2,34],141:[2,34],142:[2,34],143:[2,34],144:[2,34],145:[2,34]},{1:[2,35],6:[2,35],28:[2,35],29:[2,35],52:[2,35],57:[2,35],60:[2,35],69:[2,35],70:[2,35],71:[2,35],72:[2,35],74:[2,35],76:[2,35],77:[2,35],81:[2,35],88:[2,35],89:[2,35],90:[2,35],95:[2,35],97:[2,35],106:[2,35],108:[2,35],109:[2,35],110:[2,35],114:[2,35],122:[2,35],130:[2,35],133:[2,35],134:[2,35],139:[2,35],140:[2,35],141:[2,35],142:[2,35],143:[2,35],144:[2,35],145:[2,35]},{1:[2,36],6:[2,36],28:[2,36],29:[2,36],52:[2,36],57:[2,36],60:[2,36],69:[2,36],70:[2,36],71:[2,36],72:[2,36],74:[2,36],76:[2,36],77:[2,36],81:[2,36],88:[2,36],89:[2,36],90:[2,36],95:[2,36],97:[2,36],106:[2,36],108:[2,36],109:[2,36],110:[2,36],114:[2,36],122:[2,36],130:[2,36],133:[2,36],134:[2,36],139:[2,36],140:[2,36],141:[2,36],142:[2,36],143:[2,36],144:[2,36],145:[2,36]},{1:[2,37],6:[2,37],28:[2,37],29:[2,37],52:[2,37],57:[2,37],60:[2,37],69:[2,37],70:[2,37],71:[2,37],72:[2,37],74:[2,37],76:[2,37],77:[2,37],81:[2,37],88:[2,37],89:[2,37],90:[2,37],95:[2,37],97:[2,37],106:[2,37],108:[2,37],109:[2,37],110:[2,37],114:[2,37],122:[2,37],130:[2,37],133:[2,37],134:[2,37],139:[2,37],140:[2,37],141:[2,37],142:[2,37],143:[2,37],144:[2,37],145:[2,37]},{1:[2,38],6:[2,38],28:[2,38],29:[2,38],52:[2,38],57:[2,38],60:[2,38],69:[2,38],70:[2,38],71:[2,38],72:[2,38],74:[2,38],76:[2,38],77:[2,38],81:[2,38],88:[2,38],89:[2,38],90:[2,38],95:[2,38],97:[2,38],106:[2,38],108:[2,38],109:[2,38],110:[2,38],114:[2,38],122:[2,38],130:[2,38],133:[2,38],134:[2,38],139:[2,38],140:[2,38],141:[2,38],142:[2,38],143:[2,38],144:[2,38],145:[2,38]},{4:152,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,153],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:154,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,118],6:[2,118],28:[2,118],29:[2,118],52:[2,118],57:[2,118],60:[2,118],69:[2,118],70:[2,118],71:[2,118],72:[2,118],74:[2,118],76:[2,118],77:[2,118],81:[2,118],88:[2,118],89:[2,118],90:[2,118],95:[2,118],97:[2,118],106:[2,118],108:[2,118],109:[2,118],110:[2,118],114:[2,118],122:[2,118],130:[2,118],133:[2,118],134:[2,118],139:[2,118],140:[2,118],141:[2,118],142:[2,118],143:[2,118],144:[2,118],145:[2,118]},{1:[2,119],6:[2,119],28:[2,119],29:[2,119],30:161,31:[1,77],52:[2,119],57:[2,119],60:[2,119],69:[2,119],70:[2,119],71:[2,119],72:[2,119],74:[2,119],76:[2,119],77:[2,119],81:[2,119],88:[2,119],89:[2,119],90:[2,119],95:[2,119],97:[2,119],106:[2,119],108:[2,119],109:[2,119],110:[2,119],114:[2,119],122:[2,119],130:[2,119],133:[2,119],134:[2,119],139:[2,119],140:[2,119],141:[2,119],142:[2,119],143:[2,119],144:[2,119],145:[2,119]},{28:[2,54]},{28:[2,55]},{1:[2,72],6:[2,72],28:[2,72],29:[2,72],43:[2,72],52:[2,72],57:[2,72],60:[2,72],69:[2,72],70:[2,72],71:[2,72],72:[2,72],74:[2,72],76:[2,72],77:[2,72],81:[2,72],83:[2,72],88:[2,72],89:[2,72],90:[2,72],95:[2,72],97:[2,72],106:[2,72],108:[2,72],109:[2,72],110:[2,72],114:[2,72],122:[2,72],130:[2,72],133:[2,72],134:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[2,72],143:[2,72],144:[2,72],145:[2,72],146:[2,72]},{1:[2,75],6:[2,75],28:[2,75],29:[2,75],43:[2,75],52:[2,75],57:[2,75],60:[2,75],69:[2,75],70:[2,75],71:[2,75],72:[2,75],74:[2,75],76:[2,75],77:[2,75],81:[2,75],83:[2,75],88:[2,75],89:[2,75],90:[2,75],95:[2,75],97:[2,75],106:[2,75],108:[2,75],109:[2,75],110:[2,75],114:[2,75],122:[2,75],130:[2,75],133:[2,75],134:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75],142:[2,75],143:[2,75],144:[2,75],145:[2,75],146:[2,75]},{7:162,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:163,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:164,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:166,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:165,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{30:171,31:[1,77],47:172,61:173,62:174,67:167,79:[1,74],93:[1,117],94:[1,61],117:168,118:[1,169],119:170},{116:175,120:[1,176],121:[1,177]},{6:[2,96],10:181,28:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:178,81:[2,96],93:[1,117]},{1:[2,30],6:[2,30],28:[2,30],29:[2,30],46:[2,30],52:[2,30],57:[2,30],60:[2,30],69:[2,30],70:[2,30],71:[2,30],72:[2,30],74:[2,30],76:[2,30],77:[2,30],81:[2,30],88:[2,30],89:[2,30],90:[2,30],95:[2,30],97:[2,30],106:[2,30],108:[2,30],109:[2,30],110:[2,30],114:[2,30],122:[2,30],130:[2,30],133:[2,30],134:[2,30],139:[2,30],140:[2,30],141:[2,30],142:[2,30],143:[2,30],144:[2,30],145:[2,30]},{1:[2,31],6:[2,31],28:[2,31],29:[2,31],46:[2,31],52:[2,31],57:[2,31],60:[2,31],69:[2,31],70:[2,31],71:[2,31],72:[2,31],74:[2,31],76:[2,31],77:[2,31],81:[2,31],88:[2,31],89:[2,31],90:[2,31],95:[2,31],97:[2,31],106:[2,31],108:[2,31],109:[2,31],110:[2,31],114:[2,31],122:[2,31],130:[2,31],133:[2,31],134:[2,31],139:[2,31],140:[2,31],141:[2,31],142:[2,31],143:[2,31],144:[2,31],145:[2,31]},{1:[2,29],6:[2,29],28:[2,29],29:[2,29],43:[2,29],46:[2,29],52:[2,29],57:[2,29],60:[2,29],69:[2,29],70:[2,29],71:[2,29],72:[2,29],74:[2,29],76:[2,29],77:[2,29],81:[2,29],83:[2,29],88:[2,29],89:[2,29],90:[2,29],95:[2,29],97:[2,29],106:[2,29],108:[2,29],109:[2,29],110:[2,29],114:[2,29],120:[2,29],121:[2,29],122:[2,29],130:[2,29],133:[2,29],134:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29],142:[2,29],143:[2,29],144:[2,29],145:[2,29],146:[2,29]},{1:[2,5],5:185,6:[2,5],7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[2,5],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],106:[2,5],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,205],6:[2,205],28:[2,205],29:[2,205],52:[2,205],57:[2,205],60:[2,205],76:[2,205],81:[2,205],90:[2,205],95:[2,205],97:[2,205],106:[2,205],108:[2,205],109:[2,205],110:[2,205],114:[2,205],122:[2,205],130:[2,205],133:[2,205],134:[2,205],139:[2,205],140:[2,205],141:[2,205],142:[2,205],143:[2,205],144:[2,205],145:[2,205]},{7:186,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:187,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:188,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:189,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:190,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:191,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:192,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:193,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:194,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,156],6:[2,156],28:[2,156],29:[2,156],52:[2,156],57:[2,156],60:[2,156],76:[2,156],81:[2,156],90:[2,156],95:[2,156],97:[2,156],106:[2,156],108:[2,156],109:[2,156],110:[2,156],114:[2,156],122:[2,156],130:[2,156],133:[2,156],134:[2,156],139:[2,156],140:[2,156],141:[2,156],142:[2,156],143:[2,156],144:[2,156],145:[2,156]},{1:[2,161],6:[2,161],28:[2,161],29:[2,161],52:[2,161],57:[2,161],60:[2,161],76:[2,161],81:[2,161],90:[2,161],95:[2,161],97:[2,161],106:[2,161],108:[2,161],109:[2,161],110:[2,161],114:[2,161],122:[2,161],130:[2,161],133:[2,161],134:[2,161],139:[2,161],140:[2,161],141:[2,161],142:[2,161],143:[2,161],144:[2,161],145:[2,161]},{7:195,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,155],6:[2,155],28:[2,155],29:[2,155],52:[2,155],57:[2,155],60:[2,155],76:[2,155],81:[2,155],90:[2,155],95:[2,155],97:[2,155],106:[2,155],108:[2,155],109:[2,155],110:[2,155],114:[2,155],122:[2,155],130:[2,155],133:[2,155],134:[2,155],139:[2,155],140:[2,155],141:[2,155],142:[2,155],143:[2,155],144:[2,155],145:[2,155]},{1:[2,160],6:[2,160],28:[2,160],29:[2,160],52:[2,160],57:[2,160],60:[2,160],76:[2,160],81:[2,160],90:[2,160],95:[2,160],97:[2,160],106:[2,160],108:[2,160],109:[2,160],110:[2,160],114:[2,160],122:[2,160],130:[2,160],133:[2,160],134:[2,160],139:[2,160],140:[2,160],141:[2,160],142:[2,160],143:[2,160],144:[2,160],145:[2,160]},{85:196,89:[1,108]},{1:[2,73],6:[2,73],28:[2,73],29:[2,73],43:[2,73],52:[2,73],57:[2,73],60:[2,73],69:[2,73],70:[2,73],71:[2,73],72:[2,73],74:[2,73],76:[2,73],77:[2,73],81:[2,73],83:[2,73],88:[2,73],89:[2,73],90:[2,73],95:[2,73],97:[2,73],106:[2,73],108:[2,73],109:[2,73],110:[2,73],114:[2,73],122:[2,73],130:[2,73],133:[2,73],134:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73],142:[2,73],143:[2,73],144:[2,73],145:[2,73],146:[2,73]},{89:[2,115]},{27:198,30:197,31:[1,77],87:[1,47]},{30:199,31:[1,77]},{1:[2,89],6:[2,89],28:[2,89],29:[2,89],30:200,31:[1,77],43:[2,89],52:[2,89],57:[2,89],60:[2,89],69:[2,89],70:[2,89],71:[2,89],72:[2,89],74:[2,89],76:[2,89],77:[2,89],81:[2,89],83:[2,89],88:[2,89],89:[2,89],90:[2,89],95:[2,89],97:[2,89],106:[2,89],108:[2,89],109:[2,89],110:[2,89],114:[2,89],122:[2,89],130:[2,89],133:[2,89],134:[2,89],137:[2,89],138:[2,89],139:[2,89],140:[2,89],141:[2,89],142:[2,89],143:[2,89],144:[2,89],145:[2,89],146:[2,89]},{30:201,31:[1,77]},{1:[2,90],6:[2,90],28:[2,90],29:[2,90],43:[2,90],52:[2,90],57:[2,90],60:[2,90],69:[2,90],70:[2,90],71:[2,90],72:[2,90],74:[2,90],76:[2,90],77:[2,90],81:[2,90],83:[2,90],88:[2,90],89:[2,90],90:[2,90],95:[2,90],97:[2,90],106:[2,90],108:[2,90],109:[2,90],110:[2,90],114:[2,90],122:[2,90],130:[2,90],133:[2,90],134:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90],142:[2,90],143:[2,90],144:[2,90],145:[2,90],146:[2,90]},{7:203,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,207],61:51,62:52,64:38,66:25,67:26,68:27,75:202,78:204,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],96:205,97:[1,206],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{73:208,74:[1,102],77:[1,103]},{85:209,89:[1,108]},{1:[2,74],6:[2,74],28:[2,74],29:[2,74],43:[2,74],52:[2,74],57:[2,74],60:[2,74],69:[2,74],70:[2,74],71:[2,74],72:[2,74],74:[2,74],76:[2,74],77:[2,74],81:[2,74],83:[2,74],88:[2,74],89:[2,74],90:[2,74],95:[2,74],97:[2,74],106:[2,74],108:[2,74],109:[2,74],110:[2,74],114:[2,74],122:[2,74],130:[2,74],133:[2,74],134:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74],142:[2,74],143:[2,74],144:[2,74],145:[2,74],146:[2,74]},{6:[1,211],7:210,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,212],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,112],6:[2,112],28:[2,112],29:[2,112],52:[2,112],57:[2,112],60:[2,112],69:[2,112],70:[2,112],71:[2,112],72:[2,112],74:[2,112],76:[2,112],77:[2,112],81:[2,112],88:[2,112],89:[2,112],90:[2,112],95:[2,112],97:[2,112],106:[2,112],108:[2,112],109:[2,112],110:[2,112],114:[2,112],122:[2,112],130:[2,112],133:[2,112],134:[2,112],139:[2,112],140:[2,112],141:[2,112],142:[2,112],143:[2,112],144:[2,112],145:[2,112]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[1,213],91:214,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],52:[1,216],56:218,57:[1,217]},{6:[2,59],28:[2,59],29:[2,59],52:[2,59],57:[2,59]},{6:[2,63],28:[2,63],29:[2,63],43:[1,220],52:[2,63],57:[2,63],60:[1,219]},{6:[2,66],28:[2,66],29:[2,66],52:[2,66],57:[2,66]},{6:[2,67],28:[2,67],29:[2,67],43:[2,67],52:[2,67],57:[2,67],60:[2,67]},{6:[2,68],28:[2,68],29:[2,68],43:[2,68],52:[2,68],57:[2,68],60:[2,68]},{6:[2,69],28:[2,69],29:[2,69],43:[2,69],52:[2,69],57:[2,69],60:[2,69]},{6:[2,70],28:[2,70],29:[2,70],43:[2,70],52:[2,70],57:[2,70],60:[2,70]},{30:161,31:[1,77]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,53],6:[2,53],28:[2,53],29:[2,53],52:[2,53],57:[2,53],60:[2,53],76:[2,53],81:[2,53],90:[2,53],95:[2,53],97:[2,53],106:[2,53],108:[2,53],109:[2,53],110:[2,53],114:[2,53],122:[2,53],130:[2,53],133:[2,53],134:[2,53],139:[2,53],140:[2,53],141:[2,53],142:[2,53],143:[2,53],144:[2,53],145:[2,53]},{4:222,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[1,221],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,194],6:[2,194],28:[2,194],29:[2,194],52:[2,194],57:[2,194],60:[2,194],76:[2,194],81:[2,194],90:[2,194],95:[2,194],97:[2,194],106:[2,194],107:89,108:[2,194],109:[2,194],110:[2,194],113:90,114:[2,194],115:73,122:[2,194],130:[2,194],133:[2,194],134:[2,194],139:[1,79],140:[2,194],141:[2,194],142:[2,194],143:[2,194],144:[2,194],145:[2,194]},{107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,195],6:[2,195],28:[2,195],29:[2,195],52:[2,195],57:[2,195],60:[2,195],76:[2,195],81:[2,195],90:[2,195],95:[2,195],97:[2,195],106:[2,195],107:89,108:[2,195],109:[2,195],110:[2,195],113:90,114:[2,195],115:73,122:[2,195],130:[2,195],133:[2,195],134:[2,195],139:[1,79],140:[2,195],141:[1,83],142:[2,195],143:[2,195],144:[2,195],145:[2,195]},{1:[2,196],6:[2,196],28:[2,196],29:[2,196],52:[2,196],57:[2,196],60:[2,196],76:[2,196],81:[2,196],90:[2,196],95:[2,196],97:[2,196],106:[2,196],107:89,108:[2,196],109:[2,196],110:[2,196],113:90,114:[2,196],115:73,122:[2,196],130:[2,196],133:[2,196],134:[2,196],139:[1,79],140:[2,196],141:[1,83],142:[2,196],143:[2,196],144:[2,196],145:[2,196]},{1:[2,197],6:[2,197],28:[2,197],29:[2,197],52:[2,197],57:[2,197],60:[2,197],76:[2,197],81:[2,197],90:[2,197],95:[2,197],97:[2,197],106:[2,197],107:89,108:[2,197],109:[2,197],110:[2,197],113:90,114:[2,197],115:73,122:[2,197],130:[2,197],133:[2,197],134:[2,197],139:[1,79],140:[2,197],141:[1,83],142:[2,197],143:[2,197],144:[2,197],145:[2,197]},{1:[2,198],6:[2,198],28:[2,198],29:[2,198],52:[2,198],57:[2,198],60:[2,198],76:[2,198],81:[2,198],90:[2,198],95:[2,198],97:[2,198],106:[2,198],107:92,108:[2,198],109:[2,198],110:[2,198],113:93,114:[2,198],115:73,122:[2,198],130:[2,198],133:[2,198],134:[2,198],139:[2,198],140:[2,198],141:[2,198],142:[2,198],143:[2,198],144:[2,198],145:[2,198]},{1:[2,199],6:[2,199],28:[2,199],29:[2,199],52:[2,199],57:[2,199],60:[2,199],76:[2,199],81:[2,199],90:[2,199],95:[2,199],97:[2,199],106:[2,199],107:89,108:[2,199],109:[2,199],110:[2,199],113:90,114:[2,199],115:73,122:[2,199],130:[2,199],133:[2,199],134:[2,199],139:[1,79],140:[2,199],141:[2,199],142:[2,199],143:[2,199],144:[2,199],145:[2,199]},{7:223,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,201],6:[2,201],28:[2,201],29:[2,201],52:[2,201],57:[2,201],60:[2,201],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,201],77:[2,76],81:[2,201],88:[2,76],89:[2,76],90:[2,201],95:[2,201],97:[2,201],106:[2,201],108:[2,201],109:[2,201],110:[2,201],114:[2,201],122:[2,201],130:[2,201],133:[2,201],134:[2,201],139:[2,201],140:[2,201],141:[2,201],142:[2,201],143:[2,201],144:[2,201],145:[2,201]},{65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:94,88:[1,96],89:[2,114]},{65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:104,88:[1,96],89:[2,114]},{69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],77:[2,79],88:[2,79],89:[2,79]},{1:[2,202],6:[2,202],28:[2,202],29:[2,202],52:[2,202],57:[2,202],60:[2,202],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,202],77:[2,76],81:[2,202],88:[2,76],89:[2,76],90:[2,202],95:[2,202],97:[2,202],106:[2,202],108:[2,202],109:[2,202],110:[2,202],114:[2,202],122:[2,202],130:[2,202],133:[2,202],134:[2,202],139:[2,202],140:[2,202],141:[2,202],142:[2,202],143:[2,202],144:[2,202],145:[2,202]},{1:[2,203],6:[2,203],28:[2,203],29:[2,203],52:[2,203],57:[2,203],60:[2,203],76:[2,203],81:[2,203],90:[2,203],95:[2,203],97:[2,203],106:[2,203],108:[2,203],109:[2,203],110:[2,203],114:[2,203],122:[2,203],130:[2,203],133:[2,203],134:[2,203],139:[2,203],140:[2,203],141:[2,203],142:[2,203],143:[2,203],144:[2,203],145:[2,203]},{1:[2,204],6:[2,204],28:[2,204],29:[2,204],52:[2,204],57:[2,204],60:[2,204],76:[2,204],81:[2,204],90:[2,204],95:[2,204],97:[2,204],106:[2,204],108:[2,204],109:[2,204],110:[2,204],114:[2,204],122:[2,204],130:[2,204],133:[2,204],134:[2,204],139:[2,204],140:[2,204],141:[2,204],142:[2,204],143:[2,204],144:[2,204],145:[2,204]},{6:[1,226],7:224,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,225],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:227,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{14:228,28:[1,120],129:[1,229]},{1:[2,140],6:[2,140],28:[2,140],29:[2,140],52:[2,140],57:[2,140],60:[2,140],76:[2,140],81:[2,140],90:[2,140],95:[2,140],97:[2,140],101:230,102:[1,231],103:[1,232],106:[2,140],108:[2,140],109:[2,140],110:[2,140],114:[2,140],122:[2,140],130:[2,140],133:[2,140],134:[2,140],139:[2,140],140:[2,140],141:[2,140],142:[2,140],143:[2,140],144:[2,140],145:[2,140]},{1:[2,154],6:[2,154],28:[2,154],29:[2,154],52:[2,154],57:[2,154],60:[2,154],76:[2,154],81:[2,154],90:[2,154],95:[2,154],97:[2,154],106:[2,154],108:[2,154],109:[2,154],110:[2,154],114:[2,154],122:[2,154],130:[2,154],133:[2,154],134:[2,154],139:[2,154],140:[2,154],141:[2,154],142:[2,154],143:[2,154],144:[2,154],145:[2,154]},{1:[2,162],6:[2,162],28:[2,162],29:[2,162],52:[2,162],57:[2,162],60:[2,162],76:[2,162],81:[2,162],90:[2,162],95:[2,162],97:[2,162],106:[2,162],108:[2,162],109:[2,162],110:[2,162],114:[2,162],122:[2,162],130:[2,162],133:[2,162],134:[2,162],139:[2,162],140:[2,162],141:[2,162],142:[2,162],143:[2,162],144:[2,162],145:[2,162]},{28:[1,233],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{124:234,126:235,127:[1,236]},{1:[2,102],6:[2,102],28:[2,102],29:[2,102],52:[2,102],57:[2,102],60:[2,102],76:[2,102],81:[2,102],90:[2,102],95:[2,102],97:[2,102],106:[2,102],108:[2,102],109:[2,102],110:[2,102],114:[2,102],122:[2,102],130:[2,102],133:[2,102],134:[2,102],139:[2,102],140:[2,102],141:[2,102],142:[2,102],143:[2,102],144:[2,102],145:[2,102]},{7:237,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,105],6:[2,105],14:238,28:[1,120],29:[2,105],52:[2,105],57:[2,105],60:[2,105],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,105],77:[2,76],81:[2,105],83:[1,239],88:[2,76],89:[2,76],90:[2,105],95:[2,105],97:[2,105],106:[2,105],108:[2,105],109:[2,105],110:[2,105],114:[2,105],122:[2,105],130:[2,105],133:[2,105],134:[2,105],139:[2,105],140:[2,105],141:[2,105],142:[2,105],143:[2,105],144:[2,105],145:[2,105]},{1:[2,147],6:[2,147],28:[2,147],29:[2,147],52:[2,147],57:[2,147],60:[2,147],76:[2,147],81:[2,147],90:[2,147],95:[2,147],97:[2,147],106:[2,147],107:89,108:[2,147],109:[2,147],110:[2,147],113:90,114:[2,147],115:73,122:[2,147],130:[2,147],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,113],6:[2,113],28:[2,113],29:[2,113],43:[2,113],52:[2,113],57:[2,113],60:[2,113],69:[2,113],70:[2,113],71:[2,113],72:[2,113],74:[2,113],76:[2,113],77:[2,113],81:[2,113],83:[2,113],88:[2,113],89:[2,113],90:[2,113],95:[2,113],97:[2,113],106:[2,113],108:[2,113],109:[2,113],110:[2,113],114:[2,113],122:[2,113],130:[2,113],133:[2,113],134:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113],142:[2,113],143:[2,113],144:[2,113],145:[2,113],146:[2,113]},{1:[2,49],6:[2,49],28:[2,49],29:[2,49],52:[2,49],57:[2,49],60:[2,49],76:[2,49],81:[2,49],90:[2,49],95:[2,49],97:[2,49],106:[2,49],107:89,108:[2,49],109:[2,49],110:[2,49],113:90,114:[2,49],115:73,122:[2,49],130:[2,49],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,12],6:[2,12],28:[2,12],29:[2,12],52:[2,12],57:[2,12],60:[2,12],76:[2,12],81:[2,12],90:[2,12],95:[2,12],97:[2,12],106:[2,12],108:[2,12],109:[2,12],110:[2,12],114:[2,12],122:[2,12],130:[2,12],133:[2,12],134:[2,12],139:[2,12],140:[2,12],141:[2,12],142:[2,12],143:[2,12],144:[2,12],145:[2,12]},{1:[2,13],6:[2,13],28:[2,13],29:[2,13],52:[2,13],57:[2,13],60:[2,13],76:[2,13],81:[2,13],90:[2,13],95:[2,13],97:[2,13],106:[2,13],107:89,108:[1,69],109:[2,13],110:[1,70],113:90,114:[1,72],115:73,122:[2,13],130:[2,13],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,78],106:[1,240]},{4:241,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,135],28:[2,135],57:[2,135],60:[1,243],95:[2,135],96:242,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,121],6:[2,121],28:[2,121],29:[2,121],43:[2,121],52:[2,121],57:[2,121],60:[2,121],69:[2,121],70:[2,121],71:[2,121],72:[2,121],74:[2,121],76:[2,121],77:[2,121],81:[2,121],88:[2,121],89:[2,121],90:[2,121],95:[2,121],97:[2,121],106:[2,121],108:[2,121],109:[2,121],110:[2,121],114:[2,121],120:[2,121],121:[2,121],122:[2,121],130:[2,121],133:[2,121],134:[2,121],139:[2,121],140:[2,121],141:[2,121],142:[2,121],143:[2,121],144:[2,121],145:[2,121]},{6:[2,56],28:[2,56],56:244,57:[1,245],95:[2,56]},{6:[2,130],28:[2,130],29:[2,130],57:[2,130],90:[2,130],95:[2,130]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:246,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,136],28:[2,136],29:[2,136],57:[2,136],90:[2,136],95:[2,136]},{6:[2,137],28:[2,137],29:[2,137],57:[2,137],90:[2,137],95:[2,137]},{1:[2,120],6:[2,120],28:[2,120],29:[2,120],43:[2,120],46:[2,120],52:[2,120],57:[2,120],60:[2,120],69:[2,120],70:[2,120],71:[2,120],72:[2,120],74:[2,120],76:[2,120],77:[2,120],81:[2,120],83:[2,120],88:[2,120],89:[2,120],90:[2,120],95:[2,120],97:[2,120],106:[2,120],108:[2,120],109:[2,120],110:[2,120],114:[2,120],120:[2,120],121:[2,120],122:[2,120],130:[2,120],133:[2,120],134:[2,120],137:[2,120],138:[2,120],139:[2,120],140:[2,120],141:[2,120],142:[2,120],143:[2,120],144:[2,120],145:[2,120],146:[2,120]},{14:247,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,150],6:[2,150],28:[2,150],29:[2,150],52:[2,150],57:[2,150],60:[2,150],76:[2,150],81:[2,150],90:[2,150],95:[2,150],97:[2,150],106:[2,150],107:89,108:[1,69],109:[1,248],110:[1,70],113:90,114:[1,72],115:73,122:[2,150],130:[2,150],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,152],6:[2,152],28:[2,152],29:[2,152],52:[2,152],57:[2,152],60:[2,152],76:[2,152],81:[2,152],90:[2,152],95:[2,152],97:[2,152],106:[2,152],107:89,108:[1,69],109:[1,249],110:[1,70],113:90,114:[1,72],115:73,122:[2,152],130:[2,152],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,158],6:[2,158],28:[2,158],29:[2,158],52:[2,158],57:[2,158],60:[2,158],76:[2,158],81:[2,158],90:[2,158],95:[2,158],97:[2,158],106:[2,158],108:[2,158],109:[2,158],110:[2,158],114:[2,158],122:[2,158],130:[2,158],133:[2,158],134:[2,158],139:[2,158],140:[2,158],141:[2,158],142:[2,158],143:[2,158],144:[2,158],145:[2,158]},{1:[2,159],6:[2,159],28:[2,159],29:[2,159],52:[2,159],57:[2,159],60:[2,159],76:[2,159],81:[2,159],90:[2,159],95:[2,159],97:[2,159],106:[2,159],107:89,108:[1,69],109:[2,159],110:[1,70],113:90,114:[1,72],115:73,122:[2,159],130:[2,159],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,163],6:[2,163],28:[2,163],29:[2,163],52:[2,163],57:[2,163],60:[2,163],76:[2,163],81:[2,163],90:[2,163],95:[2,163],97:[2,163],106:[2,163],108:[2,163],109:[2,163],110:[2,163],114:[2,163],122:[2,163],130:[2,163],133:[2,163],134:[2,163],139:[2,163],140:[2,163],141:[2,163],142:[2,163],143:[2,163],144:[2,163],145:[2,163]},{120:[2,165],121:[2,165]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],117:250,119:170},{57:[1,251],120:[2,171],121:[2,171]},{57:[2,167],120:[2,167],121:[2,167]},{57:[2,168],120:[2,168],121:[2,168]},{57:[2,169],120:[2,169],121:[2,169]},{57:[2,170],120:[2,170],121:[2,170]},{1:[2,164],6:[2,164],28:[2,164],29:[2,164],52:[2,164],57:[2,164],60:[2,164],76:[2,164],81:[2,164],90:[2,164],95:[2,164],97:[2,164],106:[2,164],108:[2,164],109:[2,164],110:[2,164],114:[2,164],122:[2,164],130:[2,164],133:[2,164],134:[2,164],139:[2,164],140:[2,164],141:[2,164],142:[2,164],143:[2,164],144:[2,164],145:[2,164]},{7:252,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:253,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],56:254,57:[1,255],81:[2,56]},{6:[2,97],28:[2,97],29:[2,97],57:[2,97],81:[2,97]},{6:[2,42],28:[2,42],29:[2,42],46:[1,256],57:[2,42],81:[2,42]},{6:[2,45],28:[2,45],29:[2,45],57:[2,45],81:[2,45]},{6:[2,46],28:[2,46],29:[2,46],46:[2,46],57:[2,46],81:[2,46]},{6:[2,47],28:[2,47],29:[2,47],46:[2,47],57:[2,47],81:[2,47]},{6:[2,48],28:[2,48],29:[2,48],46:[2,48],57:[2,48],81:[2,48]},{1:[2,4],6:[2,4],29:[2,4],106:[2,4]},{1:[2,206],6:[2,206],28:[2,206],29:[2,206],52:[2,206],57:[2,206],60:[2,206],76:[2,206],81:[2,206],90:[2,206],95:[2,206],97:[2,206],106:[2,206],107:89,108:[2,206],109:[2,206],110:[2,206],113:90,114:[2,206],115:73,122:[2,206],130:[2,206],133:[2,206],134:[2,206],139:[1,79],140:[1,82],141:[1,83],142:[2,206],143:[2,206],144:[2,206],145:[2,206]},{1:[2,207],6:[2,207],28:[2,207],29:[2,207],52:[2,207],57:[2,207],60:[2,207],76:[2,207],81:[2,207],90:[2,207],95:[2,207],97:[2,207],106:[2,207],107:89,108:[2,207],109:[2,207],110:[2,207],113:90,114:[2,207],115:73,122:[2,207],130:[2,207],133:[2,207],134:[2,207],139:[1,79],140:[1,82],141:[1,83],142:[2,207],143:[2,207],144:[2,207],145:[2,207]},{1:[2,208],6:[2,208],28:[2,208],29:[2,208],52:[2,208],57:[2,208],60:[2,208],76:[2,208],81:[2,208],90:[2,208],95:[2,208],97:[2,208],106:[2,208],107:89,108:[2,208],109:[2,208],110:[2,208],113:90,114:[2,208],115:73,122:[2,208],130:[2,208],133:[2,208],134:[2,208],139:[1,79],140:[2,208],141:[1,83],142:[2,208],143:[2,208],144:[2,208],145:[2,208]},{1:[2,209],6:[2,209],28:[2,209],29:[2,209],52:[2,209],57:[2,209],60:[2,209],76:[2,209],81:[2,209],90:[2,209],95:[2,209],97:[2,209],106:[2,209],107:89,108:[2,209],109:[2,209],110:[2,209],113:90,114:[2,209],115:73,122:[2,209],130:[2,209],133:[2,209],134:[2,209],139:[1,79],140:[2,209],141:[1,83],142:[2,209],143:[2,209],144:[2,209],145:[2,209]},{1:[2,210],6:[2,210],28:[2,210],29:[2,210],52:[2,210],57:[2,210],60:[2,210],76:[2,210],81:[2,210],90:[2,210],95:[2,210],97:[2,210],106:[2,210],107:89,108:[2,210],109:[2,210],110:[2,210],113:90,114:[2,210],115:73,122:[2,210],130:[2,210],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[2,210],143:[2,210],144:[2,210],145:[2,210]},{1:[2,211],6:[2,211],28:[2,211],29:[2,211],52:[2,211],57:[2,211],60:[2,211],76:[2,211],81:[2,211],90:[2,211],95:[2,211],97:[2,211],106:[2,211],107:89,108:[2,211],109:[2,211],110:[2,211],113:90,114:[2,211],115:73,122:[2,211],130:[2,211],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,211],144:[2,211],145:[1,87]},{1:[2,212],6:[2,212],28:[2,212],29:[2,212],52:[2,212],57:[2,212],60:[2,212],76:[2,212],81:[2,212],90:[2,212],95:[2,212],97:[2,212],106:[2,212],107:89,108:[2,212],109:[2,212],110:[2,212],113:90,114:[2,212],115:73,122:[2,212],130:[2,212],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[2,212],145:[1,87]},{1:[2,213],6:[2,213],28:[2,213],29:[2,213],52:[2,213],57:[2,213],60:[2,213],76:[2,213],81:[2,213],90:[2,213],95:[2,213],97:[2,213],106:[2,213],107:89,108:[2,213],109:[2,213],110:[2,213],113:90,114:[2,213],115:73,122:[2,213],130:[2,213],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,213],144:[2,213],145:[2,213]},{1:[2,193],6:[2,193],28:[2,193],29:[2,193],52:[2,193],57:[2,193],60:[2,193],76:[2,193],81:[2,193],90:[2,193],95:[2,193],97:[2,193],106:[2,193],107:89,108:[1,69],109:[2,193],110:[1,70],113:90,114:[1,72],115:73,122:[2,193],130:[2,193],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,192],6:[2,192],28:[2,192],29:[2,192],52:[2,192],57:[2,192],60:[2,192],76:[2,192],81:[2,192],90:[2,192],95:[2,192],97:[2,192],106:[2,192],107:89,108:[1,69],109:[2,192],110:[1,70],113:90,114:[1,72],115:73,122:[2,192],130:[2,192],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,109],6:[2,109],28:[2,109],29:[2,109],52:[2,109],57:[2,109],60:[2,109],69:[2,109],70:[2,109],71:[2,109],72:[2,109],74:[2,109],76:[2,109],77:[2,109],81:[2,109],88:[2,109],89:[2,109],90:[2,109],95:[2,109],97:[2,109],106:[2,109],108:[2,109],109:[2,109],110:[2,109],114:[2,109],122:[2,109],130:[2,109],133:[2,109],134:[2,109],139:[2,109],140:[2,109],141:[2,109],142:[2,109],143:[2,109],144:[2,109],145:[2,109]},{1:[2,84],6:[2,84],28:[2,84],29:[2,84],43:[2,84],52:[2,84],57:[2,84],60:[2,84],69:[2,84],70:[2,84],71:[2,84],72:[2,84],74:[2,84],76:[2,84],77:[2,84],81:[2,84],83:[2,84],88:[2,84],89:[2,84],90:[2,84],95:[2,84],97:[2,84],106:[2,84],108:[2,84],109:[2,84],110:[2,84],114:[2,84],122:[2,84],130:[2,84],133:[2,84],134:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84],143:[2,84],144:[2,84],145:[2,84],146:[2,84]},{1:[2,85],6:[2,85],28:[2,85],29:[2,85],43:[2,85],52:[2,85],57:[2,85],60:[2,85],69:[2,85],70:[2,85],71:[2,85],72:[2,85],74:[2,85],76:[2,85],77:[2,85],81:[2,85],83:[2,85],88:[2,85],89:[2,85],90:[2,85],95:[2,85],97:[2,85],106:[2,85],108:[2,85],109:[2,85],110:[2,85],114:[2,85],122:[2,85],130:[2,85],133:[2,85],134:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85],143:[2,85],144:[2,85],145:[2,85],146:[2,85]},{1:[2,86],6:[2,86],28:[2,86],29:[2,86],43:[2,86],52:[2,86],57:[2,86],60:[2,86],69:[2,86],70:[2,86],71:[2,86],72:[2,86],74:[2,86],76:[2,86],77:[2,86],81:[2,86],83:[2,86],88:[2,86],89:[2,86],90:[2,86],95:[2,86],97:[2,86],106:[2,86],108:[2,86],109:[2,86],110:[2,86],114:[2,86],122:[2,86],130:[2,86],133:[2,86],134:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86],143:[2,86],144:[2,86],145:[2,86],146:[2,86]},{1:[2,87],6:[2,87],28:[2,87],29:[2,87],43:[2,87],52:[2,87],57:[2,87],60:[2,87],69:[2,87],70:[2,87],71:[2,87],72:[2,87],74:[2,87],76:[2,87],77:[2,87],81:[2,87],83:[2,87],88:[2,87],89:[2,87],90:[2,87],95:[2,87],97:[2,87],106:[2,87],108:[2,87],109:[2,87],110:[2,87],114:[2,87],122:[2,87],130:[2,87],133:[2,87],134:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87],143:[2,87],144:[2,87],145:[2,87],146:[2,87]},{1:[2,88],6:[2,88],28:[2,88],29:[2,88],43:[2,88],52:[2,88],57:[2,88],60:[2,88],69:[2,88],70:[2,88],71:[2,88],72:[2,88],74:[2,88],76:[2,88],77:[2,88],81:[2,88],83:[2,88],88:[2,88],89:[2,88],90:[2,88],95:[2,88],97:[2,88],106:[2,88],108:[2,88],109:[2,88],110:[2,88],114:[2,88],122:[2,88],130:[2,88],133:[2,88],134:[2,88],137:[2,88],138:[2,88],139:[2,88],140:[2,88],141:[2,88],142:[2,88],143:[2,88],144:[2,88],145:[2,88],146:[2,88]},{76:[1,257]},{60:[1,207],76:[2,93],96:258,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{76:[2,94]},{7:259,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,129],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{11:[2,123],13:[2,123],31:[2,123],33:[2,123],34:[2,123],36:[2,123],37:[2,123],38:[2,123],39:[2,123],40:[2,123],41:[2,123],48:[2,123],49:[2,123],50:[2,123],54:[2,123],55:[2,123],76:[2,123],79:[2,123],82:[2,123],86:[2,123],87:[2,123],92:[2,123],93:[2,123],94:[2,123],100:[2,123],104:[2,123],105:[2,123],108:[2,123],110:[2,123],112:[2,123],114:[2,123],123:[2,123],129:[2,123],131:[2,123],132:[2,123],133:[2,123],134:[2,123],135:[2,123],137:[2,123],138:[2,123]},{11:[2,124],13:[2,124],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],76:[2,124],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{1:[2,92],6:[2,92],28:[2,92],29:[2,92],43:[2,92],52:[2,92],57:[2,92],60:[2,92],69:[2,92],70:[2,92],71:[2,92],72:[2,92],74:[2,92],76:[2,92],77:[2,92],81:[2,92],83:[2,92],88:[2,92],89:[2,92],90:[2,92],95:[2,92],97:[2,92],106:[2,92],108:[2,92],109:[2,92],110:[2,92],114:[2,92],122:[2,92],130:[2,92],133:[2,92],134:[2,92],137:[2,92],138:[2,92],139:[2,92],140:[2,92],141:[2,92],142:[2,92],143:[2,92],144:[2,92],145:[2,92],146:[2,92]},{1:[2,110],6:[2,110],28:[2,110],29:[2,110],52:[2,110],57:[2,110],60:[2,110],69:[2,110],70:[2,110],71:[2,110],72:[2,110],74:[2,110],76:[2,110],77:[2,110],81:[2,110],88:[2,110],89:[2,110],90:[2,110],95:[2,110],97:[2,110],106:[2,110],108:[2,110],109:[2,110],110:[2,110],114:[2,110],122:[2,110],130:[2,110],133:[2,110],134:[2,110],139:[2,110],140:[2,110],141:[2,110],142:[2,110],143:[2,110],144:[2,110],145:[2,110]},{1:[2,39],6:[2,39],28:[2,39],29:[2,39],52:[2,39],57:[2,39],60:[2,39],76:[2,39],81:[2,39],90:[2,39],95:[2,39],97:[2,39],106:[2,39],107:89,108:[2,39],109:[2,39],110:[2,39],113:90,114:[2,39],115:73,122:[2,39],130:[2,39],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:260,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:261,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,116],6:[2,116],28:[2,116],29:[2,116],43:[2,116],52:[2,116],57:[2,116],60:[2,116],69:[2,116],70:[2,116],71:[2,116],72:[2,116],74:[2,116],76:[2,116],77:[2,116],81:[2,116],83:[2,116],88:[2,116],89:[2,116],90:[2,116],95:[2,116],97:[2,116],106:[2,116],108:[2,116],109:[2,116],110:[2,116],114:[2,116],122:[2,116],130:[2,116],133:[2,116],134:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116],142:[2,116],143:[2,116],144:[2,116],145:[2,116],146:[2,116]},{6:[2,56],28:[2,56],56:262,57:[1,245],90:[2,56]},{6:[2,135],28:[2,135],29:[2,135],57:[2,135],60:[1,263],90:[2,135],95:[2,135],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{53:264,54:[1,64],55:[1,65]},{6:[2,57],28:[2,57],29:[2,57],30:113,31:[1,77],47:114,58:265,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[1,266],28:[1,267]},{6:[2,64],28:[2,64],29:[2,64],52:[2,64],57:[2,64]},{7:268,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,27],6:[2,27],28:[2,27],29:[2,27],52:[2,27],57:[2,27],60:[2,27],76:[2,27],81:[2,27],90:[2,27],95:[2,27],97:[2,27],102:[2,27],103:[2,27],106:[2,27],108:[2,27],109:[2,27],110:[2,27],114:[2,27],122:[2,27],125:[2,27],127:[2,27],130:[2,27],133:[2,27],134:[2,27],139:[2,27],140:[2,27],141:[2,27],142:[2,27],143:[2,27],144:[2,27],145:[2,27]},{6:[1,78],29:[1,269]},{1:[2,200],6:[2,200],28:[2,200],29:[2,200],52:[2,200],57:[2,200],60:[2,200],76:[2,200],81:[2,200],90:[2,200],95:[2,200],97:[2,200],106:[2,200],107:89,108:[2,200],109:[2,200],110:[2,200],113:90,114:[2,200],115:73,122:[2,200],130:[2,200],133:[2,200],134:[2,200],139:[1,79],140:[2,200],141:[2,200],142:[2,200],143:[2,200],144:[2,200],145:[2,200]},{1:[2,214],6:[2,214],28:[2,214],29:[2,214],52:[2,214],57:[2,214],60:[2,214],76:[2,214],81:[2,214],90:[2,214],95:[2,214],97:[2,214],106:[2,214],107:89,108:[2,214],109:[2,214],110:[2,214],113:90,114:[2,214],115:73,122:[2,214],130:[2,214],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:270,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:271,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,217],6:[2,217],28:[2,217],29:[2,217],52:[2,217],57:[2,217],60:[2,217],76:[2,217],81:[2,217],90:[2,217],95:[2,217],97:[2,217],106:[2,217],107:89,108:[2,217],109:[2,217],110:[2,217],113:90,114:[2,217],115:73,122:[2,217],130:[2,217],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,191],6:[2,191],28:[2,191],29:[2,191],52:[2,191],57:[2,191],60:[2,191],76:[2,191],81:[2,191],90:[2,191],95:[2,191],97:[2,191],106:[2,191],108:[2,191],109:[2,191],110:[2,191],114:[2,191],122:[2,191],130:[2,191],133:[2,191],134:[2,191],139:[2,191],140:[2,191],141:[2,191],142:[2,191],143:[2,191],144:[2,191],145:[2,191]},{7:272,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,141],6:[2,141],28:[2,141],29:[2,141],52:[2,141],57:[2,141],60:[2,141],76:[2,141],81:[2,141],90:[2,141],95:[2,141],97:[2,141],102:[1,273],106:[2,141],108:[2,141],109:[2,141],110:[2,141],114:[2,141],122:[2,141],130:[2,141],133:[2,141],134:[2,141],139:[2,141],140:[2,141],141:[2,141],142:[2,141],143:[2,141],144:[2,141],145:[2,141]},{14:274,28:[1,120]},{14:277,28:[1,120],30:275,31:[1,77],62:276,79:[1,74]},{124:278,126:235,127:[1,236]},{29:[1,279],125:[1,280],126:281,127:[1,236]},{29:[2,184],125:[2,184],127:[2,184]},{7:283,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],99:282,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,103],6:[2,103],14:284,28:[1,120],29:[2,103],52:[2,103],57:[2,103],60:[2,103],76:[2,103],81:[2,103],90:[2,103],95:[2,103],97:[2,103],106:[2,103],107:89,108:[1,69],109:[2,103],110:[1,70],113:90,114:[1,72],115:73,122:[2,103],130:[2,103],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,106],6:[2,106],28:[2,106],29:[2,106],52:[2,106],57:[2,106],60:[2,106],76:[2,106],81:[2,106],90:[2,106],95:[2,106],97:[2,106],106:[2,106],108:[2,106],109:[2,106],110:[2,106],114:[2,106],122:[2,106],130:[2,106],133:[2,106],134:[2,106],139:[2,106],140:[2,106],141:[2,106],142:[2,106],143:[2,106],144:[2,106],145:[2,106]},{7:285,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,148],6:[2,148],28:[2,148],29:[2,148],52:[2,148],57:[2,148],60:[2,148],69:[2,148],70:[2,148],71:[2,148],72:[2,148],74:[2,148],76:[2,148],77:[2,148],81:[2,148],88:[2,148],89:[2,148],90:[2,148],95:[2,148],97:[2,148],106:[2,148],108:[2,148],109:[2,148],110:[2,148],114:[2,148],122:[2,148],130:[2,148],133:[2,148],134:[2,148],139:[2,148],140:[2,148],141:[2,148],142:[2,148],143:[2,148],144:[2,148],145:[2,148]},{6:[1,78],29:[1,286]},{7:287,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,71],11:[2,124],13:[2,124],28:[2,71],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],57:[2,71],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],95:[2,71],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{6:[1,289],28:[1,290],95:[1,288]},{6:[2,57],7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,57],29:[2,57],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[2,57],92:[1,62],93:[1,63],94:[1,61],95:[2,57],98:291,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],29:[2,56],56:292,57:[1,245]},{1:[2,188],6:[2,188],28:[2,188],29:[2,188],52:[2,188],57:[2,188],60:[2,188],76:[2,188],81:[2,188],90:[2,188],95:[2,188],97:[2,188],106:[2,188],108:[2,188],109:[2,188],110:[2,188],114:[2,188],122:[2,188],125:[2,188],130:[2,188],133:[2,188],134:[2,188],139:[2,188],140:[2,188],141:[2,188],142:[2,188],143:[2,188],144:[2,188],145:[2,188]},{7:293,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:294,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{120:[2,166],121:[2,166]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],119:295},{1:[2,173],6:[2,173],28:[2,173],29:[2,173],52:[2,173],57:[2,173],60:[2,173],76:[2,173],81:[2,173],90:[2,173],95:[2,173],97:[2,173],106:[2,173],107:89,108:[2,173],109:[1,296],110:[2,173],113:90,114:[2,173],115:73,122:[1,297],130:[2,173],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,174],6:[2,174],28:[2,174],29:[2,174],52:[2,174],57:[2,174],60:[2,174],76:[2,174],81:[2,174],90:[2,174],95:[2,174],97:[2,174],106:[2,174],107:89,108:[2,174],109:[1,298],110:[2,174],113:90,114:[2,174],115:73,122:[2,174],130:[2,174],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,300],28:[1,301],81:[1,299]},{6:[2,57],10:181,28:[2,57],29:[2,57],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:302,45:180,47:184,49:[1,49],81:[2,57],93:[1,117]},{7:303,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,304],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,91],6:[2,91],28:[2,91],29:[2,91],43:[2,91],52:[2,91],57:[2,91],60:[2,91],69:[2,91],70:[2,91],71:[2,91],72:[2,91],74:[2,91],76:[2,91],77:[2,91],81:[2,91],83:[2,91],88:[2,91],89:[2,91],90:[2,91],95:[2,91],97:[2,91],106:[2,91],108:[2,91],109:[2,91],110:[2,91],114:[2,91],122:[2,91],130:[2,91],133:[2,91],134:[2,91],137:[2,91],138:[2,91],139:[2,91],140:[2,91],141:[2,91],142:[2,91],143:[2,91],144:[2,91],145:[2,91],146:[2,91]},{7:305,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,127],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,128],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,40],6:[2,40],28:[2,40],29:[2,40],52:[2,40],57:[2,40],60:[2,40],76:[2,40],81:[2,40],90:[2,40],95:[2,40],97:[2,40],106:[2,40],107:89,108:[2,40],109:[2,40],110:[2,40],113:90,114:[2,40],115:73,122:[2,40],130:[2,40],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{29:[1,306],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],90:[1,307]},{6:[2,71],28:[2,71],29:[2,71],57:[2,71],90:[2,71],95:[2,71]},{14:308,28:[1,120]},{6:[2,60],28:[2,60],29:[2,60],52:[2,60],57:[2,60]},{30:113,31:[1,77],47:114,58:309,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,58],28:[2,58],29:[2,58],30:113,31:[1,77],47:114,51:310,57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,65],28:[2,65],29:[2,65],52:[2,65],57:[2,65],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,28],6:[2,28],28:[2,28],29:[2,28],52:[2,28],57:[2,28],60:[2,28],76:[2,28],81:[2,28],90:[2,28],95:[2,28],97:[2,28],102:[2,28],103:[2,28],106:[2,28],108:[2,28],109:[2,28],110:[2,28],114:[2,28],122:[2,28],125:[2,28],127:[2,28],130:[2,28],133:[2,28],134:[2,28],139:[2,28],140:[2,28],141:[2,28],142:[2,28],143:[2,28],144:[2,28],145:[2,28]},{29:[1,311],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,216],6:[2,216],28:[2,216],29:[2,216],52:[2,216],57:[2,216],60:[2,216],76:[2,216],81:[2,216],90:[2,216],95:[2,216],97:[2,216],106:[2,216],107:89,108:[2,216],109:[2,216],110:[2,216],113:90,114:[2,216],115:73,122:[2,216],130:[2,216],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:312,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:313,28:[1,120]},{1:[2,142],6:[2,142],28:[2,142],29:[2,142],52:[2,142],57:[2,142],60:[2,142],76:[2,142],81:[2,142],90:[2,142],95:[2,142],97:[2,142],106:[2,142],108:[2,142],109:[2,142],110:[2,142],114:[2,142],122:[2,142],130:[2,142],133:[2,142],134:[2,142],139:[2,142],140:[2,142],141:[2,142],142:[2,142],143:[2,142],144:[2,142],145:[2,142]},{14:314,28:[1,120]},{14:315,28:[1,120]},{1:[2,146],6:[2,146],28:[2,146],29:[2,146],52:[2,146],57:[2,146],60:[2,146],76:[2,146],81:[2,146],90:[2,146],95:[2,146],97:[2,146],102:[2,146],106:[2,146],108:[2,146],109:[2,146],110:[2,146],114:[2,146],122:[2,146],130:[2,146],133:[2,146],134:[2,146],139:[2,146],140:[2,146],141:[2,146],142:[2,146],143:[2,146],144:[2,146],145:[2,146]},{29:[1,316],125:[1,317],126:281,127:[1,236]},{1:[2,182],6:[2,182],28:[2,182],29:[2,182],52:[2,182],57:[2,182],60:[2,182],76:[2,182],81:[2,182],90:[2,182],95:[2,182],97:[2,182],106:[2,182],108:[2,182],109:[2,182],110:[2,182],114:[2,182],122:[2,182],130:[2,182],133:[2,182],134:[2,182],139:[2,182],140:[2,182],141:[2,182],142:[2,182],143:[2,182],144:[2,182],145:[2,182]},{14:318,28:[1,120]},{29:[2,185],125:[2,185],127:[2,185]},{14:319,28:[1,120],57:[1,320]},{28:[2,138],57:[2,138],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,104],6:[2,104],28:[2,104],29:[2,104],52:[2,104],57:[2,104],60:[2,104],76:[2,104],81:[2,104],90:[2,104],95:[2,104],97:[2,104],106:[2,104],108:[2,104],109:[2,104],110:[2,104],114:[2,104],122:[2,104],130:[2,104],133:[2,104],134:[2,104],139:[2,104],140:[2,104],141:[2,104],142:[2,104],143:[2,104],144:[2,104],145:[2,104]},{1:[2,107],6:[2,107],14:321,28:[1,120],29:[2,107],52:[2,107],57:[2,107],60:[2,107],76:[2,107],81:[2,107],90:[2,107],95:[2,107],97:[2,107],106:[2,107],107:89,108:[1,69],109:[2,107],110:[1,70],113:90,114:[1,72],115:73,122:[2,107],130:[2,107],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{106:[1,322]},{95:[1,323],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,122],6:[2,122],28:[2,122],29:[2,122],43:[2,122],52:[2,122],57:[2,122],60:[2,122],69:[2,122],70:[2,122],71:[2,122],72:[2,122],74:[2,122],76:[2,122],77:[2,122],81:[2,122],88:[2,122],89:[2,122],90:[2,122],95:[2,122],97:[2,122],106:[2,122],108:[2,122],109:[2,122],110:[2,122],114:[2,122],120:[2,122],121:[2,122],122:[2,122],130:[2,122],133:[2,122],134:[2,122],139:[2,122],140:[2,122],141:[2,122],142:[2,122],143:[2,122],144:[2,122],145:[2,122]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],98:324,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:325,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,131],28:[2,131],29:[2,131],57:[2,131],90:[2,131],95:[2,131]},{6:[1,289],28:[1,290],29:[1,326]},{1:[2,151],6:[2,151],28:[2,151],29:[2,151],52:[2,151],57:[2,151],60:[2,151],76:[2,151],81:[2,151],90:[2,151],95:[2,151],97:[2,151],106:[2,151],107:89,108:[1,69],109:[2,151],110:[1,70],113:90,114:[1,72],115:73,122:[2,151],130:[2,151],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,153],6:[2,153],28:[2,153],29:[2,153],52:[2,153],57:[2,153],60:[2,153],76:[2,153],81:[2,153],90:[2,153],95:[2,153],97:[2,153],106:[2,153],107:89,108:[1,69],109:[2,153],110:[1,70],113:90,114:[1,72],115:73,122:[2,153],130:[2,153],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{120:[2,172],121:[2,172]},{7:327,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:328,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:329,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,95],6:[2,95],28:[2,95],29:[2,95],43:[2,95],52:[2,95],57:[2,95],60:[2,95],69:[2,95],70:[2,95],71:[2,95],72:[2,95],74:[2,95],76:[2,95],77:[2,95],81:[2,95],88:[2,95],89:[2,95],90:[2,95],95:[2,95],97:[2,95],106:[2,95],108:[2,95],109:[2,95],110:[2,95],114:[2,95],120:[2,95],121:[2,95],122:[2,95],130:[2,95],133:[2,95],134:[2,95],139:[2,95],140:[2,95],141:[2,95],142:[2,95],143:[2,95],144:[2,95],145:[2,95]},{10:181,30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:330,45:180,47:184,49:[1,49],93:[1,117]},{6:[2,96],10:181,28:[2,96],29:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:331,93:[1,117]},{6:[2,98],28:[2,98],29:[2,98],57:[2,98],81:[2,98]},{6:[2,43],28:[2,43],29:[2,43],57:[2,43],81:[2,43],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:332,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,126],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,41],6:[2,41],28:[2,41],29:[2,41],52:[2,41],57:[2,41],60:[2,41],76:[2,41],81:[2,41],90:[2,41],95:[2,41],97:[2,41],106:[2,41],108:[2,41],109:[2,41],110:[2,41],114:[2,41],122:[2,41],130:[2,41],133:[2,41],134:[2,41],139:[2,41],140:[2,41],141:[2,41],142:[2,41],143:[2,41],144:[2,41],145:[2,41]},{1:[2,117],6:[2,117],28:[2,117],29:[2,117],43:[2,117],52:[2,117],57:[2,117],60:[2,117],69:[2,117],70:[2,117],71:[2,117],72:[2,117],74:[2,117],76:[2,117],77:[2,117],81:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],95:[2,117],97:[2,117],106:[2,117],108:[2,117],109:[2,117],110:[2,117],114:[2,117],122:[2,117],130:[2,117],133:[2,117],134:[2,117],137:[2,117],138:[2,117],139:[2,117],140:[2,117],141:[2,117],142:[2,117],143:[2,117],144:[2,117],145:[2,117],146:[2,117]},{1:[2,52],6:[2,52],28:[2,52],29:[2,52],52:[2,52],57:[2,52],60:[2,52],76:[2,52],81:[2,52],90:[2,52],95:[2,52],97:[2,52],106:[2,52],108:[2,52],109:[2,52],110:[2,52],114:[2,52],122:[2,52],130:[2,52],133:[2,52],134:[2,52],139:[2,52],140:[2,52],141:[2,52],142:[2,52],143:[2,52],144:[2,52],145:[2,52]},{6:[2,61],28:[2,61],29:[2,61],52:[2,61],57:[2,61]},{6:[2,56],28:[2,56],29:[2,56],56:333,57:[1,217]},{1:[2,215],6:[2,215],28:[2,215],29:[2,215],52:[2,215],57:[2,215],60:[2,215],76:[2,215],81:[2,215],90:[2,215],95:[2,215],97:[2,215],106:[2,215],108:[2,215],109:[2,215],110:[2,215],114:[2,215],122:[2,215],130:[2,215],133:[2,215],134:[2,215],139:[2,215],140:[2,215],141:[2,215],142:[2,215],143:[2,215],144:[2,215],145:[2,215]},{1:[2,189],6:[2,189],28:[2,189],29:[2,189],52:[2,189],57:[2,189],60:[2,189],76:[2,189],81:[2,189],90:[2,189],95:[2,189],97:[2,189],106:[2,189],108:[2,189],109:[2,189],110:[2,189],114:[2,189],122:[2,189],125:[2,189],130:[2,189],133:[2,189],134:[2,189],139:[2,189],140:[2,189],141:[2,189],142:[2,189],143:[2,189],144:[2,189],145:[2,189]},{1:[2,143],6:[2,143],28:[2,143],29:[2,143],52:[2,143],57:[2,143],60:[2,143],76:[2,143],81:[2,143],90:[2,143],95:[2,143],97:[2,143],106:[2,143],108:[2,143],109:[2,143],110:[2,143],114:[2,143],122:[2,143],130:[2,143],133:[2,143],134:[2,143],139:[2,143],140:[2,143],141:[2,143],142:[2,143],143:[2,143],144:[2,143],145:[2,143]},{1:[2,144],6:[2,144],28:[2,144],29:[2,144],52:[2,144],57:[2,144],60:[2,144],76:[2,144],81:[2,144],90:[2,144],95:[2,144],97:[2,144],102:[2,144],106:[2,144],108:[2,144],109:[2,144],110:[2,144],114:[2,144],122:[2,144],130:[2,144],133:[2,144],134:[2,144],139:[2,144],140:[2,144],141:[2,144],142:[2,144],143:[2,144],144:[2,144],145:[2,144]},{1:[2,145],6:[2,145],28:[2,145],29:[2,145],52:[2,145],57:[2,145],60:[2,145],76:[2,145],81:[2,145],90:[2,145],95:[2,145],97:[2,145],102:[2,145],106:[2,145],108:[2,145],109:[2,145],110:[2,145],114:[2,145],122:[2,145],130:[2,145],133:[2,145],134:[2,145],139:[2,145],140:[2,145],141:[2,145],142:[2,145],143:[2,145],144:[2,145],145:[2,145]},{1:[2,180],6:[2,180],28:[2,180],29:[2,180],52:[2,180],57:[2,180],60:[2,180],76:[2,180],81:[2,180],90:[2,180],95:[2,180],97:[2,180],106:[2,180],108:[2,180],109:[2,180],110:[2,180],114:[2,180],122:[2,180],130:[2,180],133:[2,180],134:[2,180],139:[2,180],140:[2,180],141:[2,180],142:[2,180],143:[2,180],144:[2,180],145:[2,180]},{14:334,28:[1,120]},{29:[1,335]},{6:[1,336],29:[2,186],125:[2,186],127:[2,186]},{7:337,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,108],6:[2,108],28:[2,108],29:[2,108],52:[2,108],57:[2,108],60:[2,108],76:[2,108],81:[2,108],90:[2,108],95:[2,108],97:[2,108],106:[2,108],108:[2,108],109:[2,108],110:[2,108],114:[2,108],122:[2,108],130:[2,108],133:[2,108],134:[2,108],139:[2,108],140:[2,108],141:[2,108],142:[2,108],143:[2,108],144:[2,108],145:[2,108]},{1:[2,149],6:[2,149],28:[2,149],29:[2,149],52:[2,149],57:[2,149],60:[2,149],69:[2,149],70:[2,149],71:[2,149],72:[2,149],74:[2,149],76:[2,149],77:[2,149],81:[2,149],88:[2,149],89:[2,149],90:[2,149],95:[2,149],97:[2,149],106:[2,149],108:[2,149],109:[2,149],110:[2,149],114:[2,149],122:[2,149],130:[2,149],133:[2,149],134:[2,149],139:[2,149],140:[2,149],141:[2,149],142:[2,149],143:[2,149],144:[2,149],145:[2,149]},{1:[2,125],6:[2,125],28:[2,125],29:[2,125],52:[2,125],57:[2,125],60:[2,125],69:[2,125],70:[2,125],71:[2,125],72:[2,125],74:[2,125],76:[2,125],77:[2,125],81:[2,125],88:[2,125],89:[2,125],90:[2,125],95:[2,125],97:[2,125],106:[2,125],108:[2,125],109:[2,125],110:[2,125],114:[2,125],122:[2,125],130:[2,125],133:[2,125],134:[2,125],139:[2,125],140:[2,125],141:[2,125],142:[2,125],143:[2,125],144:[2,125],145:[2,125]},{6:[2,132],28:[2,132],29:[2,132],57:[2,132],90:[2,132],95:[2,132]},{6:[2,56],28:[2,56],29:[2,56],56:338,57:[1,245]},{6:[2,133],28:[2,133],29:[2,133],57:[2,133],90:[2,133],95:[2,133]},{1:[2,175],6:[2,175],28:[2,175],29:[2,175],52:[2,175],57:[2,175],60:[2,175],76:[2,175],81:[2,175],90:[2,175],95:[2,175],97:[2,175],106:[2,175],107:89,108:[2,175],109:[2,175],110:[2,175],113:90,114:[2,175],115:73,122:[1,339],130:[2,175],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,177],6:[2,177],28:[2,177],29:[2,177],52:[2,177],57:[2,177],60:[2,177],76:[2,177],81:[2,177],90:[2,177],95:[2,177],97:[2,177],106:[2,177],107:89,108:[2,177],109:[1,340],110:[2,177],113:90,114:[2,177],115:73,122:[2,177],130:[2,177],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,176],6:[2,176],28:[2,176],29:[2,176],52:[2,176],57:[2,176],60:[2,176],76:[2,176],81:[2,176],90:[2,176],95:[2,176],97:[2,176],106:[2,176],107:89,108:[2,176],109:[2,176],110:[2,176],113:90,114:[2,176],115:73,122:[2,176],130:[2,176],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,99],28:[2,99],29:[2,99],57:[2,99],81:[2,99]},{6:[2,56],28:[2,56],29:[2,56],56:341,57:[1,255]},{29:[1,342],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,266],28:[1,267],29:[1,343]},{29:[1,344]},{1:[2,183],6:[2,183],28:[2,183],29:[2,183],52:[2,183],57:[2,183],60:[2,183],76:[2,183],81:[2,183],90:[2,183],95:[2,183],97:[2,183],106:[2,183],108:[2,183],109:[2,183],110:[2,183],114:[2,183],122:[2,183],130:[2,183],133:[2,183],134:[2,183],139:[2,183],140:[2,183],141:[2,183],142:[2,183],143:[2,183],144:[2,183],145:[2,183]},{29:[2,187],125:[2,187],127:[2,187]},{28:[2,139],57:[2,139],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],29:[1,345]},{7:346,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:347,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[1,300],28:[1,301],29:[1,348]},{6:[2,44],28:[2,44],29:[2,44],57:[2,44],81:[2,44]},{6:[2,62],28:[2,62],29:[2,62],52:[2,62],57:[2,62]},{1:[2,181],6:[2,181],28:[2,181],29:[2,181],52:[2,181],57:[2,181],60:[2,181],76:[2,181],81:[2,181],90:[2,181],95:[2,181],97:[2,181],106:[2,181],108:[2,181],109:[2,181],110:[2,181],114:[2,181],122:[2,181],130:[2,181],133:[2,181],134:[2,181],139:[2,181],140:[2,181],141:[2,181],142:[2,181],143:[2,181],144:[2,181],145:[2,181]},{6:[2,134],28:[2,134],29:[2,134],57:[2,134],90:[2,134],95:[2,134]},{1:[2,178],6:[2,178],28:[2,178],29:[2,178],52:[2,178],57:[2,178],60:[2,178],76:[2,178],81:[2,178],90:[2,178],95:[2,178],97:[2,178],106:[2,178],107:89,108:[2,178],109:[2,178],110:[2,178],113:90,114:[2,178],115:73,122:[2,178],130:[2,178],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,179],6:[2,179],28:[2,179],29:[2,179],52:[2,179],57:[2,179],60:[2,179],76:[2,179],81:[2,179],90:[2,179],95:[2,179],97:[2,179],106:[2,179],107:89,108:[2,179],109:[2,179],110:[2,179],113:90,114:[2,179],115:73,122:[2,179],130:[2,179],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,100],28:[2,100],29:[2,100],57:[2,100],81:[2,100]}], +defaultActions: {64:[2,54],65:[2,55],96:[2,115],204:[2,94]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + throw new Error(str); + } +}, +parse: function parse(input) { + var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == 'undefined') { + this.lexer.yylloc = {}; + } + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === 'function') { + this.parseError = this.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (this.lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: this.lexer.match, + token: this.terminals_[symbol] || symbol, + line: this.lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + this.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; + +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof _dereq_ !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = _dereq_('fs').readFileSync(_dereq_('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && _dereq_.main === module) { + exports.main(process.argv.slice(1)); +} +} +}).call(this,_dereq_("g5I+bs")) +},{"fs":12,"g5I+bs":19,"path":18}],8:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, loadFile, path, _i, _len, _ref; + + CoffeeScript = _dereq_('./coffee-script'); + + child_process = _dereq_('child_process'); + + helpers = _dereq_('./helpers'); + + path = _dereq_('path'); + + loadFile = function(module, filename) { + var answer; + answer = CoffeeScript._compileFile(filename, false, { + runtime: "interp" + }); + return module._compile(answer, filename); + }; + + if (_dereq_.extensions) { + _ref = CoffeeScript.FILE_EXTENSIONS; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + ext = _ref[_i]; + _dereq_.extensions[ext] = loadFile; + } + Module = _dereq_('module'); + findExtension = function(filename) { + var curExtension, extensions; + extensions = path.basename(filename).split('.'); + if (extensions[0] === '') { + extensions.shift(); + } + while (extensions.shift()) { + curExtension = '.' + extensions.join('.'); + if (Module._extensions[curExtension]) { + return curExtension; + } + } + return '.js'; + }; + Module.prototype.load = function(filename) { + var extension; + this.filename = filename; + this.paths = Module._nodeModulePaths(path.dirname(filename)); + extension = findExtension(filename); + Module._extensions[extension](this, filename); + return this.loaded = true; + }; + } + + if (child_process) { + fork = child_process.fork; + binary = _dereq_.resolve('../../bin/coffee'); + child_process.fork = function(path, args, options) { + if (helpers.isCoffee(path)) { + if (!Array.isArray(args)) { + options = args || {}; + args = []; + } + args = [path].concat(args); + path = binary; + } + return fork(path, args, options); + }; + } + +}).call(this); + +},{"./coffee-script":2,"./helpers":3,"child_process":12,"module":12,"path":18}],9:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var BALANCED_PAIRS, CALL_CLOSERS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + __slice = [].slice; + + generate = function(tag, value, origin) { + var tok; + tok = [tag, value]; + tok.generated = true; + if (origin) { + tok.origin = origin; + } + return tok; + }; + + exports.Rewriter = (function() { + function Rewriter() {} + + Rewriter.prototype.rewrite = function(tokens) { + this.tokens = tokens; + this.removeLeadingNewlines(); + this.closeOpenCalls(); + this.closeOpenIndexes(); + this.normalizeLines(); + this.tagPostfixConditionals(); + this.addImplicitBracesAndParens(); + this.addLocationDataToGeneratedTokens(); + return this.tokens; + }; + + Rewriter.prototype.scanTokens = function(block) { + var i, token, tokens; + tokens = this.tokens; + i = 0; + while (token = tokens[i]) { + i += block.call(this, token, i, tokens); + } + return true; + }; + + Rewriter.prototype.detectEnd = function(i, condition, action) { + var levels, token, tokens, _ref, _ref1; + tokens = this.tokens; + levels = 0; + while (token = tokens[i]) { + if (levels === 0 && condition.call(this, token, i)) { + return action.call(this, token, i); + } + if (!token || levels < 0) { + return action.call(this, token, i - 1); + } + if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) { + levels += 1; + } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) { + levels -= 1; + } + i += 1; + } + return i - 1; + }; + + Rewriter.prototype.removeLeadingNewlines = function() { + var i, tag, _i, _len, _ref; + _ref = this.tokens; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + tag = _ref[i][0]; + if (tag !== 'TERMINATOR') { + break; + } + } + if (i) { + return this.tokens.splice(0, i); + } + }; + + Rewriter.prototype.closeOpenCalls = function() { + var action, condition; + condition = function(token, i) { + var _ref; + return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; + }; + action = function(token, i) { + return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'CALL_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + }; + + Rewriter.prototype.closeOpenIndexes = function() { + var action, condition; + condition = function(token, i) { + var _ref; + return (_ref = token[0]) === ']' || _ref === 'INDEX_END'; + }; + action = function(token, i) { + return token[0] = 'INDEX_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'INDEX_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + }; + + Rewriter.prototype.matchTags = function() { + var fuzz, i, j, pattern, _i, _ref, _ref1; + i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + fuzz = 0; + for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) { + while (this.tag(i + j + fuzz) === 'HERECOMMENT') { + fuzz += 2; + } + if (pattern[j] == null) { + continue; + } + if (typeof pattern[j] === 'string') { + pattern[j] = [pattern[j]]; + } + if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) { + return false; + } + } + return true; + }; + + Rewriter.prototype.looksObjectish = function(j) { + return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':'); + }; + + Rewriter.prototype.findTagsBackwards = function(i, tags) { + var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; + backStack = []; + while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) { + if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) { + backStack.push(this.tag(i)); + } + if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) { + backStack.pop(); + } + i -= 1; + } + return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0; + }; + + Rewriter.prototype.addImplicitBracesAndParens = function() { + var stack; + stack = []; + return this.scanTokens(function(token, i, tokens) { + var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, newLine, nextTag, offset, prevTag, prevToken, ret, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; + tag = token[0]; + prevTag = (prevToken = i > 0 ? tokens[i - 1] : [])[0]; + nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0]; + stackTop = function() { + return stack[stack.length - 1]; + }; + startIdx = i; + forward = function(n) { + return i - startIdx + n; + }; + inImplicit = function() { + var _ref, _ref1; + return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0; + }; + inImplicitCall = function() { + var _ref; + return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '('; + }; + inImplicitObject = function() { + var _ref; + return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{'; + }; + inImplicitControl = function() { + var _ref; + return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL'; + }; + startImplicitCall = function(j) { + var idx; + idx = j != null ? j : i; + stack.push([ + '(', idx, { + ours: true + } + ]); + tokens.splice(idx, 0, generate('CALL_START', '(')); + if (j == null) { + return i += 1; + } + }; + endImplicitCall = function() { + stack.pop(); + tokens.splice(i, 0, generate('CALL_END', ')')); + return i += 1; + }; + startImplicitObject = function(j, startsLine) { + var idx; + if (startsLine == null) { + startsLine = true; + } + idx = j != null ? j : i; + stack.push([ + '{', idx, { + sameLine: true, + startsLine: startsLine, + ours: true + } + ]); + tokens.splice(idx, 0, generate('{', generate(new String('{')), token)); + if (j == null) { + return i += 1; + } + }; + endImplicitObject = function(j) { + j = j != null ? j : i; + stack.pop(); + tokens.splice(j, 0, generate('}', '}', token)); + return i += 1; + }; + if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) { + stack.push([ + 'CONTROL', i, { + ours: true + } + ]); + return forward(1); + } + if (tag === 'INDENT' && inImplicit()) { + if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') { + while (inImplicitCall()) { + endImplicitCall(); + } + } + if (inImplicitControl()) { + stack.pop(); + } + stack.push([tag, i]); + return forward(1); + } + if (__indexOf.call(EXPRESSION_START, tag) >= 0) { + stack.push([tag, i]); + return forward(1); + } + if (__indexOf.call(EXPRESSION_END, tag) >= 0) { + while (inImplicit()) { + if (inImplicitCall()) { + endImplicitCall(); + } else if (inImplicitObject()) { + endImplicitObject(); + } else { + stack.pop(); + } + } + stack.pop(); + } + if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) { + if (tag === '?') { + tag = token[0] = 'FUNC_EXIST'; + } + startImplicitCall(i + 1); + ret = forward(2); + return ret; + } + if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) { + startImplicitCall(i + 1); + stack.push(['INDENT', i + 2]); + return forward(3); + } + if (tag === ':') { + if (this.tag(i - 2) === '@') { + s = i - 2; + } else { + s = i - 1; + } + while (this.tag(s - 2) === 'HERECOMMENT') { + s -= 2; + } + this.insideForDeclaration = nextTag === 'FOR'; + startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine; + if (stackTop()) { + _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1]; + if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) { + return forward(1); + } + } + startImplicitObject(s, !!startsLine); + return forward(2); + } + if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) { + stackTop()[2].sameLine = false; + } + newLine = prevTag === 'OUTDENT' || prevToken.newLine; + if (__indexOf.call(IMPLICIT_END, tag) >= 0 || __indexOf.call(CALL_CLOSERS, tag) >= 0 && newLine) { + while (inImplicit()) { + _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine); + if (inImplicitCall() && prevTag !== ',') { + endImplicitCall(); + } else if (inImplicitObject() && !this.insideForDeclaration && sameLine && tag !== 'TERMINATOR' && prevTag !== ':' && endImplicitObject()) { + + } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) { + endImplicitObject(); + } else { + break; + } + } + } + if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && !this.insideForDeclaration && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) { + offset = nextTag === 'OUTDENT' ? 1 : 0; + while (inImplicitObject()) { + endImplicitObject(i + offset); + } + } + return forward(1); + }); + }; + + Rewriter.prototype.addLocationDataToGeneratedTokens = function() { + return this.scanTokens(function(token, i, tokens) { + var column, line, nextLocation, prevLocation, _ref, _ref1; + if (token[2]) { + return 1; + } + if (!(token.generated || token.explicit)) { + return 1; + } + if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) { + line = nextLocation.first_line, column = nextLocation.first_column; + } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) { + line = prevLocation.last_line, column = prevLocation.last_column; + } else { + line = column = 0; + } + token[2] = { + first_line: line, + first_column: column, + last_line: line, + last_column: column + }; + return 1; + }); + }; + + Rewriter.prototype.normalizeLines = function() { + var action, condition, indent, outdent, starter; + starter = indent = outdent = null; + condition = function(token, i) { + var _ref, _ref1, _ref2, _ref3; + return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'TERMINATOR' && (_ref1 = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref1) >= 0)) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref2 = token[0]) === 'CATCH' || _ref2 === 'FINALLY') && (starter === '->' || starter === '=>')) || (_ref3 = token[0], __indexOf.call(CALL_CLOSERS, _ref3) >= 0) && this.tokens[i - 1].newLine; + }; + action = function(token, i) { + return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); + }; + return this.scanTokens(function(token, i, tokens) { + var j, tag, _i, _ref, _ref1, _ref2; + tag = token[0]; + if (tag === 'TERMINATOR') { + if (this.tag(i + 1) === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { + tokens.splice.apply(tokens, [i, 1].concat(__slice.call(this.indentation()))); + return 1; + } + if (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0) { + tokens.splice(i, 1); + return 0; + } + } + if (tag === 'CATCH') { + for (j = _i = 1; _i <= 2; j = ++_i) { + if (!((_ref1 = this.tag(i + j)) === 'OUTDENT' || _ref1 === 'TERMINATOR' || _ref1 === 'FINALLY')) { + continue; + } + tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation()))); + return 2 + j; + } + } + if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { + starter = tag; + _ref2 = this.indentation(tokens[i]), indent = _ref2[0], outdent = _ref2[1]; + if (starter === 'THEN') { + indent.fromThen = true; + } + tokens.splice(i + 1, 0, indent); + this.detectEnd(i + 2, condition, action); + if (tag === 'THEN') { + tokens.splice(i, 1); + } + return 1; + } + return 1; + }); + }; + + Rewriter.prototype.tagPostfixConditionals = function() { + var action, condition, original; + original = null; + condition = function(token, i) { + var prevTag, tag; + tag = token[0]; + prevTag = this.tokens[i - 1][0]; + return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0); + }; + action = function(token, i) { + if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { + return original[0] = 'POST_' + original[0]; + } + }; + return this.scanTokens(function(token, i) { + if (token[0] !== 'IF') { + return 1; + } + original = token; + this.detectEnd(i + 1, condition, action); + return 1; + }); + }; + + Rewriter.prototype.indentation = function(origin) { + var indent, outdent; + indent = ['INDENT', 2]; + outdent = ['OUTDENT', 2]; + if (origin) { + indent.generated = outdent.generated = true; + indent.origin = outdent.origin = origin; + } else { + indent.explicit = outdent.explicit = true; + } + return [indent, outdent]; + }; + + Rewriter.prototype.generate = generate; + + Rewriter.prototype.tag = function(i) { + var _ref; + return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; + }; + + return Rewriter; + + })(); + + BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']]; + + exports.INVERSES = INVERSES = {}; + + EXPRESSION_START = []; + + EXPRESSION_END = []; + + for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) { + _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1]; + EXPRESSION_START.push(INVERSES[rite] = left); + EXPRESSION_END.push(INVERSES[left] = rite); + } + + EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); + + IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; + + IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; + + IMPLICIT_UNSPACED_CALL = ['+', '-']; + + IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; + + SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; + + SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; + + LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; + + CALL_CLOSERS = ['.', '?.', '::', '?::']; + + IMPLICIT_FUNC.push('DEFER'); + + IMPLICIT_CALL.push('DEFER'); + + IMPLICIT_END.push('AWAIT'); + +}).call(this); + +},{}],10:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var Scope, extend, iced, last, _ref; + + _ref = _dereq_('./helpers'), extend = _ref.extend, last = _ref.last; + + iced = _dereq_('iced-runtime'); + + exports.Scope = Scope = (function() { + Scope.root = null; + + function Scope(parent, expressions, method) { + this.parent = parent; + this.expressions = expressions; + this.method = method; + this.variables = [ + { + name: 'arguments', + type: 'arguments' + } + ]; + this.positions = {}; + if (!this.parent) { + Scope.root = this; + } + } + + Scope.prototype.add = function(name, type, immediate) { + if (this.shared && !immediate) { + return this.parent.add(name, type, immediate); + } + if (Object.prototype.hasOwnProperty.call(this.positions, name)) { + return this.variables[this.positions[name]].type = type; + } else { + return this.positions[name] = this.variables.push({ + name: name, + type: type + }) - 1; + } + }; + + Scope.prototype.namedMethod = function() { + var _ref1; + if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) { + return this.method; + } + return this.parent.namedMethod(); + }; + + Scope.prototype.find = function(name) { + if (this.check(name)) { + return true; + } + this.add(name, 'var'); + return false; + }; + + Scope.prototype.parameter = function(name) { + if (this.shared && this.parent.check(name, true)) { + return; + } + return this.add(name, 'param'); + }; + + Scope.prototype.check = function(name) { + var _ref1; + return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0)); + }; + + Scope.prototype.temporary = function(name, index) { + if (name.length > 1) { + return '_' + name + (index > 1 ? index - 1 : ''); + } else { + return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a'); + } + }; + + Scope.prototype.type = function(name) { + var v, _i, _len, _ref1; + _ref1 = this.variables; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.name === name) { + return v.type; + } + } + return null; + }; + + Scope.prototype.freeVariable = function(name, reserve) { + var index, temp; + if (reserve == null) { + reserve = true; + } + index = 0; + while (this.check((temp = this.temporary(name, index)))) { + index++; + } + if (reserve) { + this.add(temp, 'var', true); + } + return temp; + }; + + Scope.prototype.assign = function(name, value) { + this.add(name, { + value: value, + assigned: true + }, true); + return this.hasAssignments = true; + }; + + Scope.prototype.hasDeclarations = function() { + return !!this.declaredVariables().length; + }; + + Scope.prototype.declaredVariables = function() { + var realVars, tempVars, v, _i, _len, _ref1; + realVars = []; + tempVars = []; + _ref1 = this.variables; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.type === 'var') { + (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name); + } + } + return realVars.sort().concat(tempVars.sort()); + }; + + Scope.prototype.assignedVariables = function() { + var v, _i, _len, _ref1, _results; + _ref1 = this.variables; + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.type.assigned) { + _results.push("" + v.name + " = " + v.type.value); + } + } + return _results; + }; + + return Scope; + + })(); + +}).call(this); + +},{"./helpers":3,"iced-runtime":15}],11:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.10 +(function() { + var LineMap, SourceMap; + + LineMap = (function() { + function LineMap(line) { + this.line = line; + this.columns = []; + } + + LineMap.prototype.add = function(column, _arg, options) { + var sourceColumn, sourceLine; + sourceLine = _arg[0], sourceColumn = _arg[1]; + if (options == null) { + options = {}; + } + if (this.columns[column] && options.noReplace) { + return; + } + return this.columns[column] = { + line: this.line, + column: column, + sourceLine: sourceLine, + sourceColumn: sourceColumn + }; + }; + + LineMap.prototype.sourceLocation = function(column) { + var mapping; + while (!((mapping = this.columns[column]) || (column <= 0))) { + column--; + } + return mapping && [mapping.sourceLine, mapping.sourceColumn]; + }; + + return LineMap; + + })(); + + SourceMap = (function() { + var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK; + + function SourceMap() { + this.lines = []; + } + + SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) { + var column, line, lineMap, _base; + if (options == null) { + options = {}; + } + line = generatedLocation[0], column = generatedLocation[1]; + lineMap = ((_base = this.lines)[line] || (_base[line] = new LineMap(line))); + return lineMap.add(column, sourceLocation, options); + }; + + SourceMap.prototype.sourceLocation = function(_arg) { + var column, line, lineMap; + line = _arg[0], column = _arg[1]; + while (!((lineMap = this.lines[line]) || (line <= 0))) { + line--; + } + return lineMap && lineMap.sourceLocation(column); + }; + + SourceMap.prototype.generate = function(options, code) { + var buffer, lastColumn, lastSourceColumn, lastSourceLine, lineMap, lineNumber, mapping, needComma, v3, writingline, _i, _j, _len, _len1, _ref, _ref1; + if (options == null) { + options = {}; + } + if (code == null) { + code = null; + } + writingline = 0; + lastColumn = 0; + lastSourceLine = 0; + lastSourceColumn = 0; + needComma = false; + buffer = ""; + _ref = this.lines; + for (lineNumber = _i = 0, _len = _ref.length; _i < _len; lineNumber = ++_i) { + lineMap = _ref[lineNumber]; + if (lineMap) { + _ref1 = lineMap.columns; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + mapping = _ref1[_j]; + if (!(mapping)) { + continue; + } + while (writingline < mapping.line) { + lastColumn = 0; + needComma = false; + buffer += ";"; + writingline++; + } + if (needComma) { + buffer += ","; + needComma = false; + } + buffer += this.encodeVlq(mapping.column - lastColumn); + lastColumn = mapping.column; + buffer += this.encodeVlq(0); + buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine); + lastSourceLine = mapping.sourceLine; + buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn); + lastSourceColumn = mapping.sourceColumn; + needComma = true; + } + } + } + v3 = { + version: 3, + file: options.generatedFile || '', + sourceRoot: options.sourceRoot || '', + sources: options.sourceFiles || [''], + names: [], + mappings: buffer + }; + if (options.inline) { + v3.sourcesContent = [code]; + } + return JSON.stringify(v3, null, 2); + }; + + VLQ_SHIFT = 5; + + VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT; + + VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1; + + SourceMap.prototype.encodeVlq = function(value) { + var answer, nextChunk, signBit, valueToEncode; + answer = ''; + signBit = value < 0 ? 1 : 0; + valueToEncode = (Math.abs(value) << 1) + signBit; + while (valueToEncode || !answer) { + nextChunk = valueToEncode & VLQ_VALUE_MASK; + valueToEncode = valueToEncode >> VLQ_SHIFT; + if (valueToEncode) { + nextChunk |= VLQ_CONTINUATION_BIT; + } + answer += this.encodeBase64(nextChunk); + } + return answer; + }; + + BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + SourceMap.prototype.encodeBase64 = function(value) { + return BASE64_CHARS[value] || (function() { + throw new Error("Cannot Base64 encode value: " + value); + })(); + }; + + return SourceMap; + + })(); + + exports.SourceMap = SourceMap; + +}).call(this); + +},{}],12:[function(_dereq_,module,exports){ + +},{}],13:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + module.exports = { + k: "__iced_k", + k_noop: "__iced_k_noop", + param: "__iced_p_", + ns: "iced", + runtime: "runtime", + Deferrals: "Deferrals", + deferrals: "__iced_deferrals", + fulfill: "_fulfill", + b_while: "_break", + t_while: "_while", + c_while: "_continue", + n_while: "_next", + n_arg: "__iced_next_arg", + defer_method: "defer", + slot: "__slot", + assign_fn: "assign_fn", + autocb: "autocb", + retslot: "ret", + trace: "__iced_trace", + passed_deferral: "__iced_passed_deferral", + findDeferral: "findDeferral", + lineno: "lineno", + parent: "parent", + filename: "filename", + funcname: "funcname", + catchExceptions: 'catchExceptions', + runtime_modes: ["node", "inline", "window", "none", "browserify", "interp"], + trampoline: "trampoline", + context: "context", + defer_arg: "__iced_defer_" + }; + +}).call(this); + +},{}],14:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var C, Pipeliner, iced, __iced_k, __iced_k_noop, _iand, _ior, _timeout, + __slice = [].slice; + + __iced_k = __iced_k_noop = function() {}; + + C = _dereq_('./const'); + + exports.iced = iced = _dereq_('./runtime'); + + _timeout = function(cb, t, res, tmp) { + var arr, rv, which, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + rv = new iced.Rendezvous; + tmp[0] = rv.id(true).defer({ + assign_fn: (function(_this) { + return function() { + return function() { + return arr = __slice.call(arguments, 0); + }; + }; + })(this)(), + lineno: 20, + context: __iced_deferrals + }); + setTimeout(rv.id(false).defer({ + lineno: 21, + context: __iced_deferrals + }), t); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + rv.wait(__iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return which = arguments[0]; + }; + })(), + lineno: 22 + })); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (res) { + res[0] = which; + } + return cb.apply(null, arr); + }; + })(this)); + }; + + exports.timeout = function(cb, t, res) { + var tmp; + tmp = []; + _timeout(cb, t, res, tmp); + return tmp[0]; + }; + + _iand = function(cb, res, tmp) { + var ok, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + tmp[0] = __iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return ok = arguments[0]; + }; + })(), + lineno: 39 + }); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (!ok) { + res[0] = false; + } + return cb(); + }; + })(this)); + }; + + exports.iand = function(cb, res) { + var tmp; + tmp = []; + _iand(cb, res, tmp); + return tmp[0]; + }; + + _ior = function(cb, res, tmp) { + var ok, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + tmp[0] = __iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return ok = arguments[0]; + }; + })(), + lineno: 58 + }); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (ok) { + res[0] = true; + } + return cb(); + }; + })(this)); + }; + + exports.ior = function(cb, res) { + var tmp; + tmp = []; + _ior(cb, res, tmp); + return tmp[0]; + }; + + exports.Pipeliner = Pipeliner = (function() { + function Pipeliner(window, delay) { + this.window = window || 1; + this.delay = delay || 0; + this.queue = []; + this.n_out = 0; + this.cb = null; + this[C.deferrals] = this; + this["defer"] = this._defer; + } + + Pipeliner.prototype.waitInQueue = function(cb) { + var ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + var _while; + _while = function(__iced_k) { + var _break, _continue, _next; + _break = __iced_k; + _continue = function() { + return iced.trampoline(function() { + return _while(__iced_k); + }); + }; + _next = _continue; + if (!(_this.n_out >= _this.window)) { + return _break(); + } else { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.waitInQueue" + }); + _this.cb = __iced_deferrals.defer({ + lineno: 100 + }); + __iced_deferrals._fulfill(); + })(_next); + } + }; + _while(__iced_k); + }); + })(this)((function(_this) { + return function() { + _this.n_out++; + (function(__iced_k) { + if (_this.delay) { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.waitInQueue" + }); + setTimeout(__iced_deferrals.defer({ + lineno: 108 + }), _this.delay); + __iced_deferrals._fulfill(); + })(__iced_k); + } else { + return __iced_k(); + } + })(function() { + return cb(); + }); + }; + })(this)); + }; + + Pipeliner.prototype.__defer = function(out, deferArgs) { + var tmp, voidCb, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.__defer" + }); + voidCb = __iced_deferrals.defer({ + lineno: 122 + }); + out[0] = function() { + var args, _ref; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if ((_ref = deferArgs.assign_fn) != null) { + _ref.apply(null, args); + } + return voidCb(); + }; + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + _this.n_out--; + if (_this.cb) { + tmp = _this.cb; + _this.cb = null; + return tmp(); + } + }; + })(this)); + }; + + Pipeliner.prototype._defer = function(deferArgs) { + var tmp; + tmp = []; + this.__defer(tmp, deferArgs); + return tmp[0]; + }; + + Pipeliner.prototype.flush = function(autocb) { + var ___iced_passed_deferral, __iced_k, _while; + __iced_k = autocb; + ___iced_passed_deferral = iced.findDeferral(arguments); + _while = (function(_this) { + var __iced_deferrals; + return function(__iced_k) { + var _break, _continue, _next; + _break = __iced_k; + _continue = function() { + return iced.trampoline(function() { + return _while(__iced_k); + }); + }; + _next = _continue; + if (!_this.n_out) { + return _break(); + } else { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.flush" + }); + _this.cb = __iced_deferrals.defer({ + lineno: 151 + }); + __iced_deferrals._fulfill(); + })(_next); + } + }; + })(this); + _while(__iced_k); + }; + + return Pipeliner; + + })(); + +}).call(this); + +},{"./const":13,"./runtime":16}],15:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var k, mod, mods, v, _i, _len; + + exports["const"] = _dereq_('./const'); + + mods = [_dereq_('./runtime'), _dereq_('./library')]; + + for (_i = 0, _len = mods.length; _i < _len; _i++) { + mod = mods[_i]; + for (k in mod) { + v = mod[k]; + exports[k] = v; + } + } + +}).call(this); + +},{"./const":13,"./library":14,"./runtime":16}],16:[function(_dereq_,module,exports){ +(function (process){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var C, Deferrals, Rendezvous, exceptionHandler, findDeferral, make_defer_return, stackWalk, tick_counter, trampoline, warn, __active_trace, __c, _trace_to_string, + __slice = [].slice; + + C = _dereq_('./const'); + + make_defer_return = function(obj, defer_args, id, trace_template, multi) { + var k, ret, trace, v; + trace = {}; + for (k in trace_template) { + v = trace_template[k]; + trace[k] = v; + } + trace[C.lineno] = defer_args != null ? defer_args[C.lineno] : void 0; + ret = function() { + var inner_args, o, _ref; + inner_args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (defer_args != null) { + if ((_ref = defer_args.assign_fn) != null) { + _ref.apply(null, inner_args); + } + } + if (obj) { + o = obj; + if (!multi) { + obj = null; + } + return o._fulfill(id, trace); + } else { + return warn("overused deferral at " + (_trace_to_string(trace))); + } + }; + ret[C.trace] = trace; + return ret; + }; + + __c = 0; + + tick_counter = function(mod) { + __c++; + if ((__c % mod) === 0) { + __c = 0; + return true; + } else { + return false; + } + }; + + __active_trace = null; + + _trace_to_string = function(tr) { + var fn; + fn = tr[C.funcname] || ""; + return "" + fn + " (" + tr[C.filename] + ":" + (tr[C.lineno] + 1) + ")"; + }; + + warn = function(m) { + return typeof console !== "undefined" && console !== null ? console.error("ICED warning: " + m) : void 0; + }; + + exports.trampoline = trampoline = function(fn) { + if (!tick_counter(500)) { + return fn(); + } else if ((typeof process !== "undefined" && process !== null ? process.nextTick : void 0) != null) { + return process.nextTick(fn); + } else { + return setTimeout(fn); + } + }; + + exports.Deferrals = Deferrals = (function() { + function Deferrals(k, trace) { + this.trace = trace; + this.continuation = k; + this.count = 1; + this.ret = null; + } + + Deferrals.prototype._call = function(trace) { + var c; + if (this.continuation) { + __active_trace = trace; + c = this.continuation; + this.continuation = null; + return c(this.ret); + } else { + return warn("Entered dead await at " + (_trace_to_string(trace))); + } + }; + + Deferrals.prototype._fulfill = function(id, trace) { + if (--this.count > 0) { + + } else { + return trampoline(((function(_this) { + return function() { + return _this._call(trace); + }; + })(this))); + } + }; + + Deferrals.prototype.defer = function(args) { + var self; + this.count++; + self = this; + return make_defer_return(self, args, null, this.trace); + }; + + return Deferrals; + + })(); + + exports.findDeferral = findDeferral = function(args) { + var a, _i, _len; + for (_i = 0, _len = args.length; _i < _len; _i++) { + a = args[_i]; + if (a != null ? a[C.trace] : void 0) { + return a; + } + } + return null; + }; + + exports.Rendezvous = Rendezvous = (function() { + var RvId; + + function Rendezvous() { + this.completed = []; + this.waiters = []; + this.defer_id = 0; + } + + RvId = (function() { + function RvId(rv, id, multi) { + this.rv = rv; + this.id = id; + this.multi = multi; + } + + RvId.prototype.defer = function(defer_args) { + return this.rv._defer_with_id(this.id, defer_args, this.multi); + }; + + return RvId; + + })(); + + Rendezvous.prototype.wait = function(cb) { + var x; + if (this.completed.length) { + x = this.completed.shift(); + return cb(x); + } else { + return this.waiters.push(cb); + } + }; + + Rendezvous.prototype.defer = function(defer_args) { + var id; + id = this.defer_id++; + return this._defer_with_id(id, defer_args); + }; + + Rendezvous.prototype.id = function(i, multi) { + multi = !!multi; + return new RvId(this, i, multi); + }; + + Rendezvous.prototype._fulfill = function(id, trace) { + var cb; + if (this.waiters.length) { + cb = this.waiters.shift(); + return cb(id); + } else { + return this.completed.push(id); + } + }; + + Rendezvous.prototype._defer_with_id = function(id, defer_args, multi) { + this.count++; + return make_defer_return(this, defer_args, id, {}, multi); + }; + + return Rendezvous; + + })(); + + exports.stackWalk = stackWalk = function(cb) { + var line, ret, tr, _ref; + ret = []; + tr = cb ? cb[C.trace] : __active_trace; + while (tr) { + line = " at " + (_trace_to_string(tr)); + ret.push(line); + tr = tr != null ? (_ref = tr[C.parent]) != null ? _ref[C.trace] : void 0 : void 0; + } + return ret; + }; + + exports.exceptionHandler = exceptionHandler = function(err, logger) { + var stack; + if (!logger) { + logger = console.error; + } + logger(err.stack); + stack = stackWalk(); + if (stack.length) { + logger("Iced 'stack' trace (w/ real line numbers):"); + return logger(stack.join("\n")); + } + }; + + exports.catchExceptions = function(logger) { + return typeof process !== "undefined" && process !== null ? process.on('uncaughtException', function(err) { + exceptionHandler(err, logger); + return process.exit(1); + }) : void 0; + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs")) +},{"./const":13,"g5I+bs":19}],17:[function(_dereq_,module,exports){ + +var indexOf = [].indexOf; + +module.exports = function(arr, obj){ + if (indexOf) return arr.indexOf(obj); + for (var i = 0; i < arr.length; ++i) { + if (arr[i] === obj) return i; + } + return -1; +}; +},{}],18:[function(_dereq_,module,exports){ +(function (process){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isAbsolute ? '/' : '') + path; +}; + +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; + +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +}; + + +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +}; + + +exports.basename = function(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + + +exports.extname = function(path) { + return splitPath(path)[3]; +}; + +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +}).call(this,_dereq_("g5I+bs")) +},{"g5I+bs":19}],19:[function(_dereq_,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; + +process.nextTick = (function () { + var canSetImmediate = typeof window !== 'undefined' + && window.setImmediate; + var canPost = typeof window !== 'undefined' + && window.postMessage && window.addEventListener + ; + + if (canSetImmediate) { + return function (f) { return window.setImmediate(f) }; + } + + if (canPost) { + var queue = []; + window.addEventListener('message', function (ev) { + var source = ev.source; + if ((source === window || source === null) && ev.data === 'process-tick') { + ev.stopPropagation(); + if (queue.length > 0) { + var fn = queue.shift(); + fn(); + } + } + }, true); + + return function nextTick(fn) { + queue.push(fn); + window.postMessage('process-tick', '*'); + }; + } + + return function nextTick(fn) { + setTimeout(fn, 0); + }; +})(); + +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +} + +// TODO(shtylman) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; + +},{}],20:[function(_dereq_,module,exports){ +var indexOf = _dereq_('indexof'); + +var Object_keys = function (obj) { + if (Object.keys) return Object.keys(obj) + else { + var res = []; + for (var key in obj) res.push(key) + return res; + } +}; + +var forEach = function (xs, fn) { + if (xs.forEach) return xs.forEach(fn) + else for (var i = 0; i < xs.length; i++) { + fn(xs[i], i, xs); + } +}; + +var defineProp = (function() { + try { + Object.defineProperty({}, '_', {}); + return function(obj, name, value) { + Object.defineProperty(obj, name, { + writable: true, + enumerable: false, + configurable: true, + value: value + }) + }; + } catch(e) { + return function(obj, name, value) { + obj[name] = value; + }; + } +}()); + +var globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function', +'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError', +'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError', +'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape', +'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape']; + +function Context() {} +Context.prototype = {}; + +var Script = exports.Script = function NodeScript (code) { + if (!(this instanceof Script)) return new Script(code); + this.code = code; +}; + +Script.prototype.runInContext = function (context) { + if (!(context instanceof Context)) { + throw new TypeError("needs a 'context' argument."); + } + + var iframe = document.createElement('iframe'); + if (!iframe.style) iframe.style = {}; + iframe.style.display = 'none'; + + document.body.appendChild(iframe); + + var win = iframe.contentWindow; + var wEval = win.eval, wExecScript = win.execScript; + + if (!wEval && wExecScript) { + // win.eval() magically appears when this is called in IE: + wExecScript.call(win, 'null'); + wEval = win.eval; + } + + forEach(Object_keys(context), function (key) { + win[key] = context[key]; + }); + forEach(globals, function (key) { + if (context[key]) { + win[key] = context[key]; + } + }); + + var winKeys = Object_keys(win); + + var res = wEval.call(win, this.code); + + forEach(Object_keys(win), function (key) { + // Avoid copying circular objects like `top` and `window` by only + // updating existing context properties or new properties in the `win` + // that was only introduced after the eval. + if (key in context || indexOf(winKeys, key) === -1) { + context[key] = win[key]; + } + }); + + forEach(globals, function (key) { + if (!(key in context)) { + defineProp(context, key, win[key]); + } + }); + + document.body.removeChild(iframe); + + return res; +}; + +Script.prototype.runInThisContext = function () { + return eval(this.code); // maybe... +}; + +Script.prototype.runInNewContext = function (context) { + var ctx = Script.createContext(context); + var res = this.runInContext(ctx); + + forEach(Object_keys(ctx), function (key) { + context[key] = ctx[key]; + }); + + return res; +}; + +forEach(Object_keys(Script.prototype), function (name) { + exports[name] = Script[name] = function (code) { + var s = Script(code); + return s[name].apply(s, [].slice.call(arguments, 1)); + }; +}); + +exports.createScript = function (code) { + return exports.Script(code); +}; + +exports.createContext = Script.createContext = function (context) { + var copy = new Context(); + if(typeof context === 'object') { + forEach(Object_keys(context), function (key) { + copy[key] = context[key]; + }); + } + return copy; +}; + +},{"indexof":17}]},{},[1]) +(1) +}); +if (typeof CoffeeScript !== 'undefined') { root.CoffeeScript = CoffeeScript; } +})(this); \ No newline at end of file diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 447f673d7c..a16dbdc61c 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -1409,6 +1409,10 @@ return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")")); }; + Call.prototype.icedToSlot = function() { + return this.error("function call cannot be a slot for defer"); + }; + return Call; })(Base); diff --git a/src/nodes.coffee b/src/nodes.coffee index 4d83ca0f8b..026862bc56 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1096,6 +1096,8 @@ exports.Call = class Call extends Base answer = answer.concat fun answer = answer.concat @makeCode(".apply(#{ref}, "), splatArgs, @makeCode(")") + icedToSlot : () -> @error "function call cannot be a slot for defer" + #### Extends # Node to extend an object's prototype with an ancestor object. diff --git a/test/iced.coffee b/test/iced.coffee index 39f6f2a8e9..534f09e608 100644 --- a/test/iced.coffee +++ b/test/iced.coffee @@ -845,3 +845,11 @@ atest "await expression assertions 1", (cb) -> else 20 ''' cb true, {} + +atest "await expression errors", (cb) -> + # forgetting `,` between `err` and `result` makes it a function + # call, which is invalid iced slot. make sure the error mentions + # that. + code = "await foo defer err result" + throws (-> CoffeeScript.compile code), /function call cannot be a slot/ + cb true, {} From 889dbb5be3e5745a26bf415a38f249476b66202f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 12 May 2018 12:38:47 +0200 Subject: [PATCH 5/6] Version bump --- lib/coffee-script/coffee-script.js | 2 +- package.json | 2 +- src/coffee-script.coffee | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index c045c2dd12..a621661fe7 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -22,7 +22,7 @@ iced_runtime = require('iced-runtime'); - exports.VERSION = '108.0.10'; + exports.VERSION = '108.0.11'; exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md', '.iced', '.liticed', '.iced.md']; diff --git a/package.json b/package.json index d2d6ae3518..b6bb579e08 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "iced-coffee-script", "description": "IcedCoffeeScript", "author": "Jeremy Ashkenas + Maxwell Krohn", - "version": "108.0.10", + "version": "108.0.11", "keywords": [ "javascript", "language", diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 428d137b82..9cd2b128d5 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -14,7 +14,7 @@ iced_transform = require('./iced').transform iced_runtime = require 'iced-runtime' # The current CoffeeScript version number. -exports.VERSION = '108.0.10' +exports.VERSION = '108.0.11' exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md', '.iced', '.liticed', '.iced.md'] From 0e456b896d500fda9f5ddfa40e9d44ac6cd36f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Sat, 12 May 2018 12:41:29 +0200 Subject: [PATCH 6/6] Compile browser bundle --- extras/iced-coffee-script-108.0.11-min.js | 12 + extras/iced-coffee-script-108.0.11.js | 8887 +++++++++++++++++++++ 2 files changed, 8899 insertions(+) create mode 100644 extras/iced-coffee-script-108.0.11-min.js create mode 100644 extras/iced-coffee-script-108.0.11.js diff --git a/extras/iced-coffee-script-108.0.11-min.js b/extras/iced-coffee-script-108.0.11-min.js new file mode 100644 index 0000000000..81f16d24d7 --- /dev/null +++ b/extras/iced-coffee-script-108.0.11-min.js @@ -0,0 +1,12 @@ +/** + * IcedCoffeeScript Compiler v108.0.11 + * http://iced-coffee-script.github.io/iced-coffee-script + * + * Copyright 2011, Jeremy Ashkenas, Maxwell Krohn + * Released under the MIT License + */ +(function(root){!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.CoffeeScript=e()}}(function(){var define,module,exports;return function e(t,n,i){function r(s,a){if(!n[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);throw Error("Cannot find module '"+s+"'")}var u=n[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return r(n?n:e)},u,u.exports,e,t,n,i)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;i.length>s;s++)r(i[s]);return r}({1:[function(_dereq_,module,exports){(function(){var CoffeeScript,compile,runScripts,__indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_("./coffee-script"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,r=CoffeeScript.compile(e,t),n=r.js,i=r.v3SourceMap,""+n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(i)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var o,s;if(4===r.readyState){if(0!==(s=r.status)&&200!==s)throw Error("Could not load "+e);if(o=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,o),t)return t(o)}},r.send(null)},runScripts=function(){var e,t,n,i,r,o,s,a,c,u,l;for(a=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=a.length;n>e;e++)o=a[e],i=o.type,__indexOf.call(t,i)>=0&&r.push(o);return r}(),r=0,n=function(){var t;return t=e[r],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),r++,n()):void 0},c=function(i,r){var o;return o={literate:i.type===t[1]},i.src?CoffeeScript.load(i.src,function(t){return e[r]=t,n()},o,!0):(o.sourceFiles=["embedded"],e[r]=[i.innerHTML,o])},i=u=0,l=e.length;l>u;i=++u)s=e[i],c(s,i);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts),window.iced=CoffeeScript.iced,module.exports=CoffeeScript)}).call(this)},{"./coffee-script":2}],2:[function(e,t,n){(function(t,i){(function(){var r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F={}.hasOwnProperty,T=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(u=e("fs"),b=e("vm"),w=e("path"),r=e("./lexer").Lexer,m=e("./parser").parser,h=e("./helpers"),o=e("./sourcemap").SourceMap,d=e("./iced").transform,p=e("iced-runtime"),n.VERSION="108.0.11",n.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md",".iced",".liticed",".iced.md"],n.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n)}catch(r){throw i=r,h.updateSyntaxError(i,t,n.filename)}}},n.compile=s=y(function(e,t){var n,i,r,s,a,c,u,l,p,w,g,b,y;for(w=h.merge,s=h.extend,t=s({},t),t.sourceMap&&(p=new o),c=d(m.parse(f.tokenize(e,t)),t).compileToFragments(t),r=0,t.header&&(r+=1),t.shiftLine&&(r+=1),i=0,l="",b=0,y=c.length;y>b;b++)a=c[b],t.sourceMap&&(a.locationData&&p.add([a.locationData.first_line,a.locationData.first_column],[r,i],{noReplace:!0}),g=h.count(a.code,"\n"),r+=g,g?i=a.code.length-(a.code.lastIndexOf("\n")+1):i+=a.code.length),l+=a.code;return t.header&&(u="Generated by IcedCoffeeScript "+this.VERSION,l="// "+u+"\n"+l),t.sourceMap?(n={js:l},n.sourceMap=p,n.v3SourceMap=p.generate(t,e),n):l}),n.tokens=y(function(e,t){return f.tokenize(e,t)}),n.nodes=y(function(e,t){var n;return n="string"==typeof e?m.parse(f.tokenize(e,t)):m.parse(e),t.noIcedTransform||(n=d(n,t)),n}),n.run=function(n,i){var r,o,a,c;return null==i&&(i={}),a=e.main,a.filename=t.argv[1]=i.filename?u.realpathSync(i.filename):".",a.moduleCache&&(a.moduleCache={}),o=i.filename?w.dirname(u.realpathSync(i.filename)):u.realpathSync("."),a.paths=e("module")._nodeModulePaths(o),(!h.isCoffee(a.filename)||e.extensions)&&(i.runtime="interp",r=s(n,i),n=null!=(c=r.js)?c:r),a._compile(n,a.filename)},n.eval=function(n,r){var o,a,c,u,l,h,p,d,f,m,g,y,v,k,_,C,T,L;if(null==r&&(r={}),n=n.trim()){if(a=b.Script){if(c=null!=(k=b.Script.createContext)?k:b.createContext,u=null!=(_=b.isContext)?_:function(){return r.sandbox instanceof c().constructor},null!=r.sandbox){if(u(r.sandbox))f=r.sandbox;else{f=c(),C=r.sandbox;for(h in C)F.call(C,h)&&(m=C[h],f[h]=m)}f.global=f.root=f.GLOBAL=f}else f=i;if(f.__filename=r.filename||"eval",f.__dirname=w.dirname(f.__filename),f===i&&!f.module&&!f.require){for(o=e("module"),f.module=v=new o(r.modulename||"eval"),f.require=L=function(e){return o._load(e,v,!0)},v.filename=f.__filename,T=Object.getOwnPropertyNames(e),g=0,y=T.length;y>g;g++)d=T[g],"paths"!==d&&(L[d]=e[d]);L.paths=v.paths=o._nodeModulePaths(t.cwd()),L.resolve=function(e){return o._resolveFilename(e,v)}}}p={};for(h in r)F.call(r,h)&&(m=r[h],p[h]=m);return p.bare=!0,l=s(n,p),f===i?b.runInThisContext(l):b.runInContext(l,f)}},n.register=function(){return e("./register")},e.extensions)for(C=this.FILE_EXTENSIONS,k=0,_=C.length;_>k;k++)a=C[k],null==(v=e.extensions)[a]&&(v[a]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+a+" files.")});n._compileFile=function(e,t,n){var i,r,o,a,c,l,p;null==t&&(t=!1),null==n&&(n={}),c=u.readFileSync(e,"utf8"),l=65279===c.charCodeAt(0)?c.substring(1):c,a={filename:e,sourceMap:t,literate:h.isLiterate(e)};for(o in n)p=n[o],a[o]=p;try{i=s(l,a)}catch(d){throw r=d,h.updateSyntaxError(r,l,e)}return i},f=new r,m.lexer={lex:function(){var e,t;return t=this.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],this.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return this.tokens=e,this.pos=0},upcomingInput:function(){return""}},m.yy=e("./nodes"),n.iced=p,m.yy.parseError=function(e,t){var n,i,r,o,s,a,c;return s=t.token,c=m.lexer,o=c.errorToken,a=c.tokens,i=o[0],r=o[1],n=o[2],r=o===a[a.length-1]?"end of input":"INDENT"===i||"OUTDENT"===i?"indentation":h.nameWhitespaceCharacter(r),h.throwSyntaxError("unexpected "+r,n)},c=function(e,t){var n,i,r,o,s,a,c,u,l,h,p,d;return o=void 0,r="",e.isNative()?r="native":(e.isEval()?(o=e.getScriptNameOrSourceURL(),o||(r=""+e.getEvalOrigin()+", ")):o=e.getFileName(),o||(o=""),u=e.getLineNumber(),i=e.getColumnNumber(),h=t(o,u,i),r=h?""+o+":"+h[0]+":"+h[1]:""+o+":"+u+":"+i),s=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),s?(p=n="",d&&s.indexOf(d)&&(p=""+d+"."),l&&s.indexOf("."+l)!==s.length-l.length-1&&(n=" [as "+l+"]"),""+p+s+n+" ("+r+")"):""+d+"."+(l||"")+" ("+r+")"):a?"new "+(s||"")+" ("+r+")":s?""+s+" ("+r+")":r},g={},l=function(e){var t,i;if(g[e])return g[e];if(i=null!=w?w.extname(e):void 0,!(0>T.call(n.FILE_EXTENSIONS,i)))return t=n._compileFile(e,!0),g[e]=t.sourceMap},Error.prepareStackTrace=function(e,t){var i,r,o;return o=function(e,t,n){var i,r;return r=l(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var e,r,s;for(s=[],e=0,r=t.length;r>e&&(i=t[e],i.getFunction()!==n.run);e++)s.push(" at "+c(i,o));return s}(),""+(""+e)+"\n"+r.join("\n")+"\n"}}).call(this)}).call(this,e("g5I+bs"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./helpers":3,"./iced":4,"./lexer":5,"./nodes":6,"./parser":7,"./register":8,"./sourcemap":11,fs:12,"g5I+bs":19,"iced-runtime":15,module:12,path:18,vm:20}],3:[function(e,t,n){(function(e){(function(){var t,i,r,o,s,a,c;n.starts=function(e,t,n){return t===e.substr(n,t.length)},n.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},n.repeat=s=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},n.compact=function(e){var t,n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],t&&r.push(t);return r},n.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},n.merge=function(e,t){return i(i({},e),t)},i=n.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},n.flatten=r=function(e){var t,n,i,o;for(n=[],i=0,o=e.length;o>i;i++)t=e[i],t instanceof Array?n=n.concat(r(t)):n.push(t);return n},n.del=function(e,t){var n;return n=e[t],delete e[t],n},n.last=o=function(e,t){return e[e.length-(t||0)-1]},n.some=null!=(c=Array.prototype.some)?c:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},n.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},n.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},n.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"},n.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},n.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md|iced|liticed|iced\.md)$/.test(e)},n.isLiterate=function(e){return/\.(litcoffee|coffee\.md|liticed|iced\.md)$/.test(e)},n.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=a,n.stack=""+n,n},n.updateSyntaxError=function(e,t,n){return e.toString===a&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},a=function(){var t,n,i,r,o,a,c,u,l,h,p,d,f;return this.code&&this.location?(d=this.location,c=d.first_line,a=d.first_column,l=d.last_line,u=d.last_column,null==l&&(l=c),null==u&&(u=a),o=this.filename||"[stdin]",t=this.code.split("\n")[c],p=a,r=c===l?u+1:t.length,h=t.slice(0,p).replace(/[^\s]/g," ")+s("^",r-p),null!=(e!==void 0&&null!==e?e.stdout:void 0)&&(i=e.stdout.isTTY&&!e.env.NODE_DISABLE_COLORS),(null!=(f=this.colorful)?f:i)&&(n=function(e){return""+e+""},t=t.slice(0,p)+n(t.slice(p,r))+t.slice(r),h=n(h)),""+o+":"+(c+1)+":"+(a+1)+": error: "+this.message+"\n"+t+"\n"+h):Error.prototype.toString.call(this)},n.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)}).call(this,e("g5I+bs"))},{"g5I+bs":19}],4:[function(e,t,n){(function(){n.transform=function(e,t){return e.icedTransform(t)},n.runtime=e("iced-runtime")}).call(this)},{"iced-runtime":15}],5:[function(e,t,n){(function(){var t,i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U,H,W,G,Y,X,q,z,K,J,Q,Z,et,tt,nt,it=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};tt=e("./rewriter"),P=tt.Rewriter,v=tt.INVERSES,nt=e("./helpers"),X=nt.count,Z=nt.starts,Y=nt.compact,K=nt.last,Q=nt.repeat,q=nt.invertLiterate,J=nt.locationDataToString,et=nt.throwSyntaxError,n.Lexer=x=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.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),i=0;this.chunk=e.slice(i);)n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.heredocToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),o=this.getLineAndColumnFromChunk(n),this.chunkLine=o[0],this.chunkColumn=o[1],i+=n;return this.closeIndentation(),(r=this.ends.pop())&&this.error("missing "+r),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(U,""),G.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=q(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,o,u,l,h,p,d,f,m,w;return(u=g.exec(this.chunk))?(o=u[0],i=u[1],e=u[2],r=i.length,l=void 0,"own"===i&&"FOR"===this.tag()?(this.token("OWN",i),i.length):"from"===i&&"YIELD"===this.tag()?(this.token("FROM",i),i.length):(n=e||(h=K(this.tokens))&&("."===(f=h[0])||"?."===f||"::"===f||"?::"===f||!h.spaced&&"@"===h[0])&&"defer"!==i,p="IDENTIFIER",!n&&(it.call(C,i)>=0||it.call(c,i)>=0)&&(p=i.toUpperCase(),"WHEN"===p&&(m=this.tag(),it.call(F,m)>=0)?p="LEADING_WHEN":"FOR"===p?this.seenFor=!0:"UNLESS"===p?p="IF":it.call(H,p)>=0?p="UNARY":it.call($,p)>=0&&("INSTANCEOF"!==p&&this.seenFor?(p="FOR"+p,this.seenFor=!1):(p="RELATION","!"===this.value()&&(l=this.tokens.pop(),i="!"+i)))),it.call(_,i)>=0&&(n?(p="IDENTIFIER",i=new String(i),i.reserved=!0):it.call(j,i)>=0&&this.error('reserved word "'+i+'"')),n||(it.call(s,i)>=0&&(i=a[i]),p=function(){switch(i){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return p}}()),d=this.token(p,i,0,r),l&&(w=[l[2].first_line,l[2].first_column],d[2].first_line=w[0],d[2].first_column=w[1]),e&&(t=o.lastIndexOf(":"),this.token(":",":",t,e.length)),o.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],/^0[BOX]/.test(i)?this.error("radix prefix '"+i+"' must be lowercase"):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation '"+i+"' must be indicated with a lowercase 'e'"):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'"):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'"),t=i.length,(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,o,s,a;switch(o=this.chunk.charAt(0)){case"'":s=(M.exec(this.chunk)||[])[0];break;case'"':s=this.balancedString(this.chunk,'"')}if(!s)return 0;if(e=s.slice(1,-1),a=this.removeNewlines(e),'"'===o&&s.indexOf("#{",1)>0){for(n=r=0,t=e.length;"\n"===e.charAt(r++)&&t>r;)n++;this.interpolateString(a,{strOffset:1+n,lexedLength:s.length})}else this.token("STRING",o+this.escapeLines(a)+o,0,s.length);return(i=/^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(s))&&this.error("octal escape sequences "+s+" are not allowed"),s.length},e.prototype.heredocToken=function(){var e,t,n,i,r;return(n=p.exec(this.chunk))?(t=n[0],i=t.charAt(0),e=this.sanitizeHeredoc(n[2],{quote:i,indent:null}),'"'===i&&e.indexOf("#{")>=0?(r="\n"===n[2].charAt(0)?4:3,this.interpolateString(e,{heredoc:!0,strOffset:r,lexedLength:t.length})):this.token("STRING",this.makeString(e,i,!0),0,t.length),t.length):0},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(u))?(e=n[0],t=n[1],t&&this.token("HERECOMMENT",this.sanitizeHeredoc(t,{herecomment:!0,indent:Q(" ",this.indent)}),0,e.length),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=k.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,i,r,o,s;return"/"!==this.chunk.charAt(0)?0:(t=this.heregexToken())?t:(i=K(this.tokens),i&&(o=i[0],it.call(i.spaced?S:A,o)>=0)?0:(n=O.exec(this.chunk))?(s=n,n=s[0],r=s[1],e=s[2],"//"===r?0:("/*"===r.slice(0,2)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX",""+r+e,0,n.length),n.length)):0)},e.prototype.heregexToken=function(){var e,t,n,i,r,o,s,a,c,u,l,h,p,d,f,g,b;if(!(r=m.exec(this.chunk)))return 0;if(i=r[0],e=r[1],t=r[2],0>e.indexOf("#{"))return a=this.escapeLines(e.replace(w,"$1$2").replace(/\//g,"\\/"),!0),a.match(/^\*/)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX","/"+(a||"(?:)")+"/"+t,0,i.length),i.length;for(this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),l=[],f=this.interpolateString(e,{regex:!0,strOffset:3}),p=0,d=f.length;d>p;p++){if(u=f[p],c=u[0],h=u[1],"TOKENS"===c)l.push.apply(l,h);else if("NEOSTRING"===c){if(!(h=h.replace(w,"$1$2")))continue;h=h.replace(/\\/g,"\\\\"),u[0]="STRING",u[1]=this.makeString(h,'"',!0),l.push(u)}else this.error("Unexpected "+c);s=K(this.tokens),o=["+","+"],o[2]=s[2],l.push(o)}return l.pop(),"STRING"!==(null!=(g=l[0])?g[0]:void 0)&&(this.token("STRING",'""',0,0),this.token("+","+",0,0)),(b=this.tokens).push.apply(b,l),t&&(n=i.lastIndexOf(t),this.token(",",",",n,0),this.token("STRING",'"'+t+'"',n,t.length)),this.token(")",")",i.length-1,0),i.length},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=D.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("OUTDENT"),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",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],it.call(b,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;return(e=G.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(n=K(this.tokens),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,i,s,a,c,u;if((e=R.exec(this.chunk))?(i=e[0],o.test(i)&&this.tagParameters()):i=this.chunk.charAt(0),n=i,t=K(this.tokens),"="===i&&t&&(!t[1].reserved&&(s=t[1],it.call(_,s)>=0)&&this.error('reserved word "'+this.value()+"\" can't be assigned"),"||"===(a=t[1])||"&&"===a))return t[0]="COMPOUND_ASSIGN",t[1]+="=",i.length;if(";"===i)this.seenFor=!1,n="TERMINATOR";else if(it.call(N,i)>=0)n="MATH";else if(it.call(l,i)>=0)n="COMPARE";else if(it.call(h,i)>=0)n="COMPOUND_ASSIGN";else if(it.call(H,i)>=0)n="UNARY";else if(it.call(W,i)>=0)n="UNARY_MATH";else if(it.call(B,i)>=0)n="SHIFT";else if(it.call(L,i)>=0||"?"===i&&(null!=t?t.spaced:void 0))n="LOGIC";else if(t&&!t.spaced)if("("===i&&(c=t[0],it.call(r,c)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),n="CALL_START";else if("["===i&&(u=t[0],it.call(y,u)>=0))switch(n="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(i){case"(":case"{":case"[":this.ends.push(v[i]);break;case")":case"}":case"]":this.pair(i)}return this.token(n,i),i.length},e.prototype.sanitizeHeredoc=function(e,t){var n,i,r,o,s;if(r=t.indent,i=t.herecomment){if(d.test(e)&&this.error('block comment cannot contain "*/", starting'),0>e.indexOf("\n"))return e}else for(;o=f.exec(e);)n=o[1],(null===r||(s=n.length)>0&&r.length>s)&&(r=n);return r&&(e=e.replace(RegExp("\\n"+r,"g"),"\n")),i||(e=e.replace(/^\n/,"")),e},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.balancedString=function(e,t){var n,i,r,o,s,a,c,u;for(n=0,a=[t],i=c=1,u=e.length;u>=1?u>c:c>u;i=u>=1?++c:--c)if(n)--n;else{switch(r=e.charAt(i)){case"\\":++n;continue;case t:if(a.pop(),!a.length)return e.slice(0,+i+1||9e9);t=a[a.length-1];continue}"}"!==t||'"'!==r&&"'"!==r?"}"===t&&"/"===r&&(o=m.exec(e.slice(i))||O.exec(e.slice(i)))?n+=o[0].length-1:"}"===t&&"{"===r?a.push(t="}"):'"'===t&&"#"===s&&"{"===r&&a.push(t="}"):a.push(t=r),s=r}return this.error("missing "+a.pop()+", starting")},e.prototype.interpolateString=function(t,n){var i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S;for(null==n&&(n={}),s=n.heredoc,v=n.regex,w=n.offsetInChunk,_=n.strOffset,p=n.lexedLength,w||(w=0),_||(_=0),p||(p=t.length),T=[],g=0,a=-1;h=t.charAt(a+=1);)"\\"!==h?"#"===h&&"{"===t.charAt(a+1)&&(o=this.balancedString(t.slice(a+1),"}"))&&(a>g&&T.push(this.makeToken("NEOSTRING",t.slice(g,a),_+g)),r||(r=this.makeToken("","string interpolation",w+a+1,2)),c=o.slice(1,-1),c.length&&(E=this.getLineAndColumnFromChunk(_+a+2),d=E[0],i=E[1],m=(new e).tokenize(c,{line:d,column:i,rewrite:!1}),y=m.pop(),"TERMINATOR"===(null!=(D=m[0])?D[0]:void 0)&&(y=m.shift()),(l=m.length)&&(l>1&&(m.unshift(this.makeToken("(","(",_+a+1,0)),m.push(this.makeToken(")",")",_+a+1+c.length,0))),T.push(["TOKENS",m]))),a+=o.length,g=a+1):a+=1;if(a>g&&t.length>g&&T.push(this.makeToken("NEOSTRING",t.slice(g),_+g)),v)return T;if(!T.length)return this.token("STRING",'""',w,p);for("NEOSTRING"!==T[0][0]&&T.unshift(this.makeToken("NEOSTRING","",w)),(u=T.length>1)&&this.token("(","(",w,0,r),a=x=0,N=T.length;N>x;a=++x)F=T[a],C=F[0],L=F[1],a&&(a&&(b=this.token("+","+")),f="TOKENS"===C?L[0]:F,b[2]={first_line:f[2].first_line,first_column:f[2].first_column,last_line:f[2].first_line,last_column:f[2].first_column}),"TOKENS"===C?(S=this.tokens).push.apply(S,L):"NEOSTRING"===C?(F[0]="STRING",F[1]=this.makeString(L,'"',s),this.tokens.push(F)):this.error("Unexpected "+C);return u&&(k=this.makeToken(")",")",w+p,0),k.stringEnd=!0,this.tokens.push(k)),T},e.prototype.pair=function(e){var t;return e!==(t=K(this.ends))?("OUTDENT"!==t&&this.error("unmatched "+e),this.outdentToken(K(this.indents),!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r;return 0===e?[this.chunkLine,this.chunkColumn]:(r=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),n=X(r,"\n"),t=this.chunkColumn,n>0?(i=r.split("\n"),t=K(i).length):t+=r.length,[this.chunkLine+n,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={},a=this.getLineAndColumnFromChunk(n),o.first_line=a[0],o.first_column=a[1],r=Math.max(0,i-1),c=this.getLineAndColumnFromChunk(n+r),o.last_line=c[0],o.last_column=c[1],s=[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(e,t){var n;return(n=K(this.tokens,e))&&(t?n[0]=t:n[0])},e.prototype.value=function(e,t){var n;return(n=K(this.tokens,e))&&(t?n[1]=t:n[1])},e.prototype.unfinished=function(){var e;return T.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.removeNewlines=function(e){return e.replace(/^\s*\n\s*/,"").replace(/([^\\]|\\\\)\s*\n\s*$/,"$1")},e.prototype.escapeLines=function(e,t){return e=e.replace(/\\[^\S\n]*(\n|\\)\s*/g,function(e,t){return"\n"===t?"":e}),t?e.replace(E,"\\n"):e.replace(/\s*\n\s*/g," ")},e.prototype.makeString=function(e,t,n){return e?(e=e.replace(RegExp("\\\\("+t+"|\\\\)","g"),function(e,n){return n===t?n:e}),e=e.replace(RegExp(""+t,"g"),"\\$&"),t+this.escapeLines(e,n)+t):t+t},e.prototype.error=function(e,t){var n,i,r;return null==t&&(t=0),r=this.getLineAndColumnFromChunk(t),i=r[0],n=r[1],et(e,{first_line:i,first_column:n})},e}(),C=["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"],c=["undefined","then","unless","until","loop","of","by","when"],c=c.concat(["await","defer"]),a={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(z in a)e.push(z);return e}(),c=c.concat(s),j=["case","default","function","var","void","with","const","let","enum","export","import","native","__hasProp","__extends","__slice","__bind","__indexOf","implements","interface","package","private","protected","public","static"],V=["arguments","eval","yield*"],_=C.concat(j).concat(V),n.RESERVED=j.concat(C).concat(c).concat(V),n.STRICT_PROSCRIBED=V,t=65279,g=/^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,p=/^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/,R=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,G=/^[^\n\S]+/,u=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,o=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,M=/^'[^\\']*(?:\\[\s\S][^\\']*)*'/,k=/^`[^\\`]*(?:\\.[^\\`]*)*`/,O=/^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/,m=/^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/,w=/((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g,E=/\n/g,f=/\n+([^\n\S]*)/g,d=/\*\//,T=/^\s*(?:,|\??\.(?![.\d])|::)/,U=/\s+$/,h=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],H=["NEW","TYPEOF","DELETE","DO"],W=["!","~"],L=["&&","||","&","|","^"],B=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],N=["*","/","%","//","%%"],$=["IN","OF","INSTANCEOF"],i=["TRUE","FALSE"],S=["NUMBER","REGEX","BOOL","NULL","UNDEFINED","++","--"],A=S.concat(")","}","THIS","IDENTIFIER","STRING","]"),r=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],y=r.concat("NUMBER","BOOL","NULL","UNDEFINED"),F=["INDENT","OUTDENT","TERMINATOR"],b=[")","}","]"],r.push("DEFER")}).call(this)},{"./helpers":3,"./rewriter":9}],6:[function(e,t,n){(function(t){(function(){var i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U,H,W,G,Y,X,q,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,lt,ht,pt,dt,ft,mt,wt,gt,bt,yt,vt,kt,_t,Ct,Ft,Tt,Lt,xt,Nt,Et,Dt,St,At,It,Rt,Ot,$t,jt,Pt,Bt={}.hasOwnProperty,Mt=function(e,t){function n(){this.constructor=e}for(var i in t)Bt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Vt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ut=[].slice;Error.stackTraceLimit=1/0,et=e("./scope").Scope,jt=e("./lexer"),z=jt.RESERVED,Z=jt.STRICT_PROSCRIBED,vt=e("iced-runtime"),Nt=e("path"),Pt=e("./helpers"),ft=Pt.compact,bt=Pt.flatten,gt=Pt.extend,Tt=Pt.merge,mt=Pt.del,It=Pt.starts,wt=Pt.ends,Ct=Pt.last,At=Pt.some,dt=Pt.addLocationDataFn,Ft=Pt.locationDataToString,Rt=Pt.throwSyntaxError,n.extend=gt,n.addLocationDataFn=dt,pt=function(){return!0},U=function(){return!1},st=function(){return this},V=function(){return this.negated=!this.negated,this},H=function(){return new lt(new B("null"))},n.CodeFragment=d=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?": "+Ft(this.locationData):"")},e}(),yt=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("")},n.Base=a=function(){function e(){this.icedContinuationBlock=null,this.icedLoopFlag=!1,this.icedNodeFlag=!1,this.icedGotCpsSplitFlag=!1,this.icedCpsPivotFlag=!1,this.icedHasAutocbFlag=!1,this.icedFoundArguments=!1,this.icedParentAwait=null,this.icedCallContinuationFlag=!1}return e.prototype.compile=function(e,t){return yt(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=gt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,n.icedHasContinuation()&&!n.icedGotCpsSplitFlag?n.icedCompileCps(e):e.level!==P&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var t,n,r,o,s;return(o=this.jumps())&&o.error("cannot use a pure statement in an expression"),e.sharedScope=!0,this.icedClearAutocbFlags(),r=new p([],c.wrap([this])),t=[],((n=this.contains(kt))||this.contains(_t))&&(t=[new B("this")],n?(s="apply",t.push(new B("arguments"))):s="call",r=new lt(r,[new i(new B(s))])),new u(r,t).compileNode(e)},e.prototype.cache=function(e,t,n){var i,r;return this.isComplex()?(i=new B(n||e.scope.freeVariable("ref")),r=new o(i,this),t?[r.compileToFragments(e,t),[this.makeCode(i.value)]]:[r,i]):(i=t?this.compileToFragments(e,t):this,[i,i])},e.prototype.cacheToCodeFragments=function(e){return[yt(e[0]),yt(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new u(new B(""+e+".push"),[t]):new J(t,this.icedHasAutocbFlag)},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 f))return e[t];return null},e.prototype.toString=function(e,t){var n,i;return null==e&&(e=""),null==t&&(t=this.constructor.name),n=[],this.icedNodeFlag&&n.push("A"),this.icedLoopFlag&&n.push("L"),this.icedCpsPivotFlag&&n.push("P"),this.icedIsAutocbCode&&n.push("B"),this.icedHasAutocbFlag&&n.push("C"),this.icedParentAwait&&n.push("D"),this.icedFoundArguments&&n.push("G"),n.length&&(n=" ("+n.join("")+")"),i="\n"+e+t,i="\n"+e+t,this.soak&&(i+="?"),i+=n,this.eachChild(function(t){return i+=t.toString(e+ot)}),this.icedContinuationBlock&&(e+=ot,i+="\n"+e+"Continuation",i+=this.icedContinuationBlock.toString(e+ot)),i},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=bt([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 Y("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.flattenChildren=function(){var e,t,n,i,r,o,s,a,c;for(n=[],a=this.children,i=0,o=a.length;o>i;i++)if(e=a[i],this[e])for(c=bt([this[e]]),r=0,s=c.length;s>r;r++)t=c[r],n.push(t);return n},e.prototype.icedCompileCps=function(e){var t;return this.icedGotCpsSplitFlag=!0,t=m.wrap(this,this.icedContinuationBlock,null,e),e.sharedScope=!0,t.compileNode(e)},e.prototype.icedWalkAst=function(e,t){var n,i,r,o;for(this.icedParentAwait=e,this.icedHasAutocbFlag=t.foundAutocb,o=this.flattenChildren(),i=0,r=o.length;r>i;i++)n=o[i],n.icedWalkAst(e,t)&&(this.icedNodeFlag=!0); +return this.icedNodeFlag},e.prototype.icedWalkAstLoops=function(e){var t,n,i,r;for(this.isLoop()&&this.icedNodeFlag&&(e=!0),this.isLoop()&&!this.icedNodeFlag&&(e=!1),this.icedLoopFlag=e,r=this.flattenChildren(),n=0,i=r.length;i>n;n++)t=r[n],t.icedWalkAstLoops(e)&&(this.icedLoopFlag=!0);return this.icedLoopFlag},e.prototype.icedWalkCpsPivots=function(){var e,t,n,i;for((this.icedNodeFlag||this.icedLoopFlag&&this.icedIsJump())&&(this.icedCpsPivotFlag=!0),i=this.flattenChildren(),t=0,n=i.length;n>t;t++)e=i[t],e.icedWalkCpsPivots()&&(this.icedCpsPivotFlag=!0);return this.icedCpsPivotFlag},e.prototype.icedClearAutocbFlags=function(){return this.icedHasAutocbFlag=!1,this.traverseChildren(!1,function(e){return e.icedHasAutocbFlag=!1,!0})},e.prototype.icedCpsRotate=function(){var e,t,n,i;for(i=this.flattenChildren(),t=0,n=i.length;n>t;t++)e=i[t],e.icedCpsRotate();return this},e.prototype.icedIsCpsPivot=function(){return this.icedCpsPivotFlag},e.prototype.icedNestContinuationBlock=function(e){return this.icedContinuationBlock=e},e.prototype.icedHasContinuation=function(){return!!this.icedContinuationBlock},e.prototype.icedCallContinuation=function(){return this.icedCallContinuationFlag=!0},e.prototype.icedWrapContinuation=U,e.prototype.icedIsJump=U,e.prototype.icedUnwrap=function(e){return e.icedHasContinuation()&&this.icedHasContinuation()?this:(this.icedHasContinuation()&&(e.icedContinuationBlock=this.icedContinuationBlock),e)},e.prototype.icedStatementAssertion=function(){return this.icedIsCpsPivot()?this.error("await'ed statements can't act as expressions"):void 0},e.prototype.children=[],e.prototype.isStatement=U,e.prototype.jumps=U,e.prototype.isComplex=pt,e.prototype.isChainable=U,e.prototype.isAssignable=U,e.prototype.isLoop=U,e.prototype.unwrap=st,e.prototype.unfoldSoak=U,e.prototype.assigns=U,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 Rt(e,this.locationData)},e.prototype.makeCode=function(e){return new d(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}(),n.Block=c=function(e){function t(e){t.__super__.constructor.call(this),this.expressions=ft(bt(e||[]))}return Mt(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.icedUnwrap(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,i=0,r=o.length;r>i;i++)if(t=o[i],n=t.jumps(e))return n},t.prototype.makeReturn=function(e){var t,n,i;for(i=this.expressions.length,n=!1;i--;)if(t=this.expressions[i],!(t instanceof f)){this.expressions[i]=t.makeReturn(e),t instanceof J&&!t.expression&&!t.icedHasAutocbFlag?(this.expressions.splice(i,1),n=!0):t instanceof E&&!t.elseBody||(n=!0);break}return!this.icedHasAutocbFlag||this.icedNodeFlag||n||this.expressions.push(new J(null,!0)),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,u,l;for(this.tab=e.indent,a=e.level===P,i=[],l=this.expressions,o=c=0,u=l.length;u>c;o=++c)s=l[o],s=s.unwrapAll(),s=s.unfoldSoak(e)||s,s instanceof t?i.push(s.compileNode(e)):a?(s.front=!0,r=s.compileToFragments(e),s.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(s.compileToFragments(e,O));return a?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>=O?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,o,s,a,c,u,l;for(e.indent=e.bare?"":ot,e.level=P,this.spaced=!0,e.scope=new et(null,this,null),l=e.locals||[],c=0,u=l.length;u>c;c++)r=l[c],e.scope.parameter(r);return o=[],e.bare||(s=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 f);i=++e)o.push(t);return o}.call(this),a=this.expressions.slice(s.length),this.expressions=s,s.length&&(o=this.compileNode(Tt(e,{indent:""})),o.push(this.makeCode("\n"))),this.expressions=a),n=this.compileWithDeclarations(e),e.bare?n:[].concat(o,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,u,l,h,p,d,m;for(r=[],s=[],p=this.expressions,o=l=0,h=p.length;h>l&&(i=p[o],i=i.unwrap(),i instanceof f||i instanceof B);o=++l);return e=Tt(e,{level:P}),o&&(a=this.expressions.splice(o,9e9),d=[this.spaced,!1],u=d[0],this.spaced=d[1],m=[this.compileNode(e),u],r=m[0],this.spaced=m[1],this.expressions=a),s=this.compileNode(e),c=e.scope,c.expressions===this&&(n=e.scope.hasDeclarations(),t=c.hasAssignments,n||t?(o&&r.push(this.makeCode("\n")),r.push(this.makeCode(""+this.tab+"var ")),n&&r.push(this.makeCode(c.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+ot))),r.push(this.makeCode(c.assignedVariables().join(",\n"+(this.tab+ot))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&s.length&&r.push(this.makeCode("\n"))),r.concat(s)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t.prototype.icedThreadReturn=function(e){var t,n;for(e=e||new N,n=this.expressions.length;n--&&(t=this.expressions[n],!t.isStatement());)if(!(t instanceof f||t instanceof J))return e.assignValue(t),this.expressions[n]=e,void 0;return this.expressions.push(e)},t.prototype.icedCompileCps=function(e){return this.icedGotCpsSplitFlag=!0,this.expressions.length>1?t.__super__.icedCompileCps.call(this,e):this.compileNode(e)},t.prototype.icedCpsRotate=function(){var e,n,i,r,o,s,a,c,u,l;for(r=null,l=this.expressions,i=s=0,c=l.length;c>s&&(n=l[i],n.icedIsCpsPivot()&&(r=n,r.icedCallContinuation()),n.icedCpsRotate(),!r);i=++s);if(!r)return this;if(r.icedContinuationBlock)throw SyntaxError("unexpected continuation block in node");if(o=this.expressions.slice(i+1),this.expressions=this.expressions.slice(0,i+1),o.length){for(e=new t(o),r.icedNestContinuationBlock(e),a=0,u=o.length;u>a;a++)n=o[a],n.icedNodeFlag&&(e.icedNodeFlag=!0),n.icedLoopFlag&&(e.icedLoopFlag=!0),n.icedCpsPivotFlag&&(e.icedCpsPivotFlag=!0),n.icedHasAutocbFlag&&(e.icedHasAutocbFlag=!0);e.icedCpsRotate()}return this},t.prototype.icedAddRuntime=function(e,t){var n,i;for(n=0;(i=this.expressions[n])&&i instanceof f||i instanceof lt&&i.isString();)n++;return this.expressions.splice(n,0,new x(e,t))},t.prototype.icedTransform=function(e){var t;return t={},this.icedWalkAst(null,t),!(null!=e?e.repl:void 0)&&(t.foundDefer||t.foundAwait||e.runforce)&&this.icedAddRuntime(t.foundDefer,t.foundAwait),t.foundAwait&&(this.icedWalkAstLoops(!1),this.icedWalkCpsPivots(),this.icedCpsRotate()),this},t.prototype.icedGetSingle=function(){return 1===this.expressions.length?this.expressions[0]:null},t}(a),n.Literal=B=function(e){function t(e){if(this.value=e,null==this.value)throw Error("whoops!");t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return _.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=U,t.prototype.assigns=function(e){return e===this.value},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(e){var t,n,i;return this.icedLoopFlag&&this.icedIsJump()?this.icedCompileIced(e):(n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)])},t.prototype.toString=function(){return' "'+this.value+'"'},t.prototype.icedWalkAst=function(e,t){return"arguments"===this.value&&t.foundAwaitFunc&&(t.foundArguments=!0,this.value="_arguments"),!1},t.prototype.icedIsJump=function(){var e;return"break"===(e=this.value)||"continue"===e},t.prototype.icedCompileIced=function(e){var n,i,r,o;return i={"continue":vt["const"].c_while,"break":vt["const"].b_while},o=i[this.value],r=new lt(new t(o)),n=new u(r,[]),n.compileNode(e)},t}(a),n.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=I?"(void 0)":"void 0")]},t}(a),n.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(a),n.Bool=function(e){function t(e){this.val=e}return Mt(t,e),t.prototype.isAssignable=U,t.prototype.isComplex=U,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(a),n.Return=J=function(e){function t(e,n){this.expression=e,t.__super__.constructor.call(this),this.icedHasAutocbFlag=n}return Mt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=pt,t.prototype.makeReturn=st,t.prototype.jumps=st,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 this.icedHasAutocbFlag?this.icedCompileIced(e):(t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,j))),t.push(this.makeCode(";")),t)},t.prototype.icedCompileIced=function(e){var t,n,i,r,o;return r=new lt(new B(vt["const"].autocb)),t=this.expression?[this.expression]:[],i=new u(r,t),o=new B("return"),n=new c([i,o]),n.compileNode(e)},t}(a),n.Value=lt=function(e){function t(e,n,i){return t.__super__.constructor.call(this),!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return Mt(t,e),t.prototype.children=["base","properties"],t.prototype.copy=function(){return new t(this.base,this.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(r)},t.prototype.isRange=function(){return this.bareLiteral(K)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(B)&&Q.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(B)&&T.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(B)&&F.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),t=0,n=i.length;n>t;t++)if(e=i[t],e.soak||e instanceof u)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},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 G&&(!e||this.base.generated)},t.prototype.isSplice=function(){return Ct(this.properties)instanceof tt},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&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,i,r,s;return r=Ct(this.properties),2>this.properties.length&&!this.base.isComplex()&&!(null!=r?r.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(i=new B(e.scope.freeVariable("base")),n=new t(new q(new o(i,n)))),r?(r.isComplex()&&(s=new B(e.scope.freeVariable("name")),r=new S(new o(s,r.index)),s=new S(s)),[n.add(r),new t(i||n.base,[s||r])]):[n,i])},t.prototype.compileNode=function(e){var t,n,i,r,o;for(this.base.front=this.front,i=this.properties,t=this.base.compileToFragments(e,i.length?I:null),(this.base instanceof q||i.length)&&Q.test(yt(t))&&t.push(this.makeCode(".")),r=0,o=i.length;o>r;r++)n=i[r],t.push.apply(t,n.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var i,r,s,a,c,u,l,h,p,d;if(s=n.base.unfoldSoak(e))return(p=s.body.properties).push.apply(p,n.properties),s;for(d=n.properties,r=l=0,h=d.length;h>l;r=++l)if(a=d[r],a.soak)return a.soak=!1,i=new t(n.base,n.properties.slice(0,r)),u=new t(n.base,n.properties.slice(r)),i.isComplex()&&(c=new B(e.scope.freeVariable("ref")),i=new q(new o(c,i)),u.base=c),new E(new g(i),u,{soak:!0});return!1}}(this)()},t.prototype.icedToSlot=function(e){var t;return this.base instanceof G?this.base.icedToSlot(e):(t=null,this.properties&&this.properties.length&&(t=this.properties.pop()),new nt(e,this,t))},t.prototype.icedToSlotAccess=function(){return this["this"]?this.properties[0]:new i(this)},t}(a),n.Comment=f=function(e){function t(e){this.comment=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.isStatement=pt,t.prototype.makeReturn=st,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)# /gm,"$1 * "),n="/*"+Lt(i,this.tab)+(Vt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===P&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(a),n.Call=u=function(e){function t(e,n,i){this.args=null!=n?n:[],this.soak=i,t.__super__.constructor.call(this),this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof lt&&e.isNotCallable()&&e.error("literal is not a function")}return Mt(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.superReference=function(e){var t,n;return n=e.scope.namedMethod(),(null!=n?n.klass:void 0)?(t=[new i(new B("__super__"))],n["static"]&&t.push(new i(new B("constructor"))),t.push(new i(new B(n.name))),new lt(new B(n.klass),t).compile(e)):(null!=n?n.ctor:void 0)?""+n.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},t.prototype.superThis=function(e){var t;return e.scope.icedgen?"_this":(t=e.scope.method,t&&!t.klass&&t.context||"this")},t.prototype.unfoldSoak=function(e){var n,i,r,o,s,a,c,u,l;if(this.soak){if(this.variable){if(i=Ot(e,this,"variable"))return i;u=new lt(this.variable).cacheReference(e),r=u[0],s=u[1]}else r=new B(this.superReference(e)),s=new lt(r);return s=new t(s,this.args),s.isNew=this.isNew,r=new B("typeof "+r.compile(e)+' === "function"'),new E(r,new lt(s),{soak:!0})}for(n=this,o=[];;)if(n.variable instanceof t)o.push(n),n=n.variable;else{if(!(n.variable instanceof lt))break;if(o.push(n),!((n=n.variable.base)instanceof t))break}for(l=o.reverse(),a=0,c=l.length;c>a;a++)n=l[a],i&&(n.variable instanceof t?n.variable=i:n.variable.base=i),i=Ot(e,n,"variable");return i},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l;if(null!=(u=this.variable)&&(u.front=this.front),r=it.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=a=0,c=l.length;c>a;n=++a)t=l[n],t.icedStatementAssertion(),n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,O));return o=[],this.isSuper?(s=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(s+=", "),o.push(this.makeCode(s))):(this.isNew&&o.push(this.makeCode("new ")),o.push.apply(o,this.variable.compileToFragments(e,I)),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.isSuper?[].concat(this.makeCode(""+this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(o=this.tab+ot,[].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,O),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new lt(this.variable),(s=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,O),this.makeCode(")"),s.compileToFragments(e))):(r=i.compileToFragments(e,I),Q.test(yt(r))&&(r=this.wrapInBraces(r)),s?(a=yt(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.prototype.icedToSlot=function(){return this.error("function call cannot be a slot for defer")},t}(a),n.Extends=y=function(e){function t(e,n){this.child=e,this.parent=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new u(new lt(new B($t("extends"))),[this.child,this.parent]).compileToFragments(e)},t}(a),n.Access=i=function(e){function t(e,n){this.name=e,t.__super__.constructor.call(this),this.name.asKey=!0,this.soak="soak"===n}return Mt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),_.test(yt(t))||this.name instanceof w?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=U,t}(a),n.Index=S=function(e){function t(e){this.index=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,j),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(a),n.Range=K=function(e){function t(e,n,i){this.from=e,this.to=n,t.__super__.constructor.call(this),this.exclusive="exclusive"===i,this.equals=this.exclusive?"":"="}return Mt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,o;return e=Tt(e,{top:!0}),n=this.cacheToCodeFragments(this.from.cache(e,O)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,O)),this.toC=i[0],this.toVar=i[1],(t=mt(e,"step"))&&(r=this.cacheToCodeFragments(t.cache(e,O)),this.step=r[0],this.stepVar=r[1]),o=[this.fromVar.match(W),this.toVar.match(W)],this.fromNum=o[0],this.toNum=o[1],this.stepVar?this.stepNum=this.stepVar.match(W):void 0},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,o=mt(e,"index"),s=mt(e,"name"),u=s&&s!==o,p=""+o+" = "+this.fromC,this.toC!==this.toVar&&(p+=", "+this.toC),this.step!==this.stepVar&&(p+=", "+this.step),d=[""+o+" <"+this.equals,""+o+" >"+this.equals],c=d[0],r=d[1],n=this.stepNum?xt(this.stepNum[0])>0?""+c+" "+this.toVar:""+r+" "+this.toVar:a?(f=[xt(this.fromNum[0]),xt(this.toNum[0])],i=f[0],h=f[1],f,h>=i?""+c+" "+h:""+r+" "+h):(t=this.stepVar?""+this.stepVar+" > 0":""+this.fromVar+" <= "+this.toVar,""+t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),l=this.stepVar?""+o+" += "+this.stepVar:a?u?h>=i?"++"+o:"--"+o:h>=i?""+o+"++":""+o+"--":u?""+t+" ? ++"+o+" : --"+o:""+t+" ? "+o+"++ : "+o+"--",u&&(p=""+s+" = "+p),u&&(l=""+s+" = "+l),[this.makeCode(""+p+"; "+n+"; "+l)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(u=function(){d=[];for(var e=p=+this.fromNum,t=+this.toNum;t>=p?t>=e:e>=t;t>=p?e++:e--)d.push(e);return d}.apply(this),this.exclusive&&u.pop(),[this.makeCode("["+u.join(", ")+"]")]):(s=this.tab+ot,o=e.scope.freeVariable("i"),l=e.scope.freeVariable("results"),c="\n"+s+l+" = [];",this.fromNum&&this.toNum?(e.index=o,n=yt(this.compileNode(e))):(h=""+o+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=""+this.fromVar+" <= "+this.toVar,n="var "+h+"; "+i+" ? "+o+" <"+this.equals+" "+this.toVar+" : "+o+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+o+"++ : "+o+"--"),a="{ "+l+".push("+o+"); }\n"+s+"return "+l+";\n"+e.indent,r=function(e){return null!=e?e.contains(kt):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+s+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(a),n.Slice=tt=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;return a=this.range,o=a.to,i=a.from,r=i&&i.compileToFragments(e,j)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,j),n=yt(t),(this.range.exclusive||-1!==+n)&&(s=", "+(this.range.exclusive?n:Q.test(n)?""+(+n+1):(t=o.compileToFragments(e,I),"+"+yt(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+yt(r)+(s||"")+")")]},t}(a),n.Obj=G=function(e){function t(e,n){this.generated=null!=n?n:!1,this.objects=this.properties=e||[],t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["properties"],t.prototype.compileNode=function(e){var t,n,i,r,s,a,c,u,l,h,p,d,m;if(l=this.properties,!l.length)return[this.makeCode(this.front?"({})":"{}")];if(this.generated)for(h=0,d=l.length;d>h;h++)c=l[h],c instanceof lt&&c.error("cannot have an implicit value in an implicit object");for(i=e.indent+=ot,a=this.lastNonComment(this.properties),t=[],n=p=0,m=l.length;m>p;n=++p)u=l[n],s=n===l.length-1?"":u===a||u instanceof f?"\n":",\n",r=u instanceof f?"":i,u instanceof o&&u.variable instanceof lt&&u.variable.hasProperties()&&u.variable.error("Invalid object key"),u instanceof lt&&u["this"]&&(u=new o(u.properties[0].name,u,"object")),u instanceof f||(u instanceof o||(u=new o(u,u,"object")),(u.variable.base||u.variable).asKey=!0),r&&t.push(this.makeCode(r)),t.push.apply(t,u.compileToFragments(e,P)),s&&t.push(this.makeCode(s));return t.unshift(this.makeCode("{"+(l.length&&"\n"))),t.push(this.makeCode(""+(l.length&&"\n"+this.tab)+"}")),this.front?this.wrapInBraces(t):t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,n=0,i=r.length;i>n;n++)if(t=r[n],t.assigns(e))return!0;return!1},t.prototype.icedToSlot=function(e){var t,n,i,r,s,a;for(s=this.properties,a=[],i=0,r=s.length;r>i;i++)n=s[i],n instanceof o?a.push(n.value.icedToSlot(e).addAccess(n.variable.icedToSlotAccess())):n instanceof lt?(t=n.icedToSlotAccess(),a.push(n.icedToSlot(e).addAccess(t))):a.push(void 0);return a},t}(a),n.Arr=r=function(e){function t(e){this.objects=e||[],t.__super__.constructor.call(this)}return Mt(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+=ot,t=it.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++)o=i[t],r.push(o.compileToFragments(e,O));return r}.call(this),r=s=0,a=n.length;a>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return yt(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,n=0,i=r.length;i>n;n++)if(t=r[n],t.assigns(e))return!0;return!1},t}(a),n.Class=l=function(e){function t(e,n,i){this.variable=e,this.parent=n,this.body=null!=i?i:new c,t.__super__.constructor.call(this),this.boundFuncs=[],this.body.classBody=!0}return Mt(t,e),t.prototype.children=["variable","parent","body"],t.prototype.determineName=function(){var e,t;return this.variable?(e=(t=Ct(this.variable.properties))?t instanceof i&&t.name.value:this.variable.base.value,Vt.call(Z,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=_.test(e)&&e)):null},t.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof B&&"this"===t.value?t.value=e:t instanceof p&&(t.klass=e,t.bound)?t.context=e:void 0})},t.prototype.addBoundFunctions=function(e){var t,n,r,o,s;for(s=this.boundFuncs,r=0,o=s.length;o>r;r++)t=s[r],n=new lt(new B("this"),[new i(t)]).compile(e),this.ctor.body.unshift(new B(""+n+" = "+$t("bind")+"("+n+", this)"))},t.prototype.addProperties=function(e,t,n){var r,s,a,c,u;return u=e.base.properties.slice(0),a=function(){var e;for(e=[];r=u.shift();)r instanceof o&&(s=r.variable.base,delete r.context,c=r.value,"constructor"===s.value?(this.ctor&&r.error("cannot define more than one constructor in a class"),c.bound&&r.error("cannot define a constructor as a bound function"),c instanceof p?r=this.ctor=c:(this.externalCtor=n.classScope.freeVariable("class"),r=new o(new B(this.externalCtor),c))):r.variable["this"]?c["static"]=!0:(r.variable=new lt(new B(t),[new i(new B("prototype")),new i(s)]),c instanceof p&&c.bound&&(this.boundFuncs.push(s),c.bound=!1))),e.push(r);return e}.call(this),ft(a)},t.prototype.walkBody=function(e,n){return this.traverseChildren(!1,function(i){return function(r){var s,a,u,l,h,p,d;if(s=!0,r instanceof t)return!1;if(r instanceof c){for(d=a=r.expressions,u=h=0,p=d.length;p>h;u=++h)l=d[u],l instanceof o&&l.variable.looksStatic(e)?l.value["static"]=!0:l instanceof lt&&l.isObject(!0)&&(s=!1,a[u]=i.addProperties(l,e,n));r.expressions=a=bt(a)}return s&&!(r instanceof t)}}(this))},t.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof f||n instanceof lt&&n.isString();)++t;return this.directives=e.splice(0,t)},t.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new p,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},t.prototype.compileNode=function(e){var t,n,i,r,s,a,l,h,d;return(r=this.body.jumps())&&r.error("Class bodies cannot contain pure statements"),(n=this.body.contains(kt))&&n.error("Class bodies shouldn't reference arguments"),l=this.determineName()||"_Class",l.reserved&&(l="_"+l),a=new B(l),i=new p([],c.wrap([this.body])),t=[],e.classScope=i.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(l),this.walkBody(l,e),this.ensureConstructor(l),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(a),this.parent&&(h=new B(e.classScope.freeVariable("super",!1)),this.body.expressions.unshift(new y(a,h)),i.params.push(new X(h)),t.push(this.parent)),(d=this.body.expressions).unshift.apply(d,this.directives),s=new q(new u(i,t)),this.variable&&(s=new o(this.variable,s)),s.compileToFragments(e)},t}(a),n.Assign=o=function(e){function t(e,n,i,r){var o,s,a;this.variable=e,this.value=n,this.context=i,t.__super__.constructor.call(this),this.param=r&&r.param,this.subpattern=r&&r.subpattern,a=s=this.variable.unwrapAll().value,o=Vt.call(Z,a)>=0,o&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"'),this.icedlocal=r&&r.icedlocal}return Mt(t,e),t.prototype.children=["variable","value"],t.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===P&&null!=this.context&&Vt.call(this.context,"?")>=0},t.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},t.prototype.unfoldSoak=function(e){return Ot(e,this,"variable")},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h;if(this.value.icedStatementAssertion(),i=this.variable instanceof lt){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 n=this.variable.compileToFragments(e,O),o=yt(n),this.context||(a=this.variable.unwrapAll(),a.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof a.hasProperties?a.hasProperties():void 0)||(this.param||this.icedlocal?e.scope.add(o,"var",this.icedlocal):e.scope.find(o))),this.value instanceof p&&(r=M.exec(o))&&(r[2]&&(this.value.klass=r[1]),this.value.name=null!=(l=null!=(h=r[3])?h:r[4])?l:r[5]),s=this.value.compileToFragments(e,O),"object"===this.context?n.concat(this.makeCode(": "),s):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),s),O>=e.level?t:this.wrapInBraces(t))},t.prototype.compilePatternMatch=function(e){var n,r,o,s,a,c,u,l,h,p,d,f,m,w,g,y,v,k,C,F,T,L,x,N,E,D,A,I;if(y=e.level===P,k=this.value,f=this.variable.base.objects,!(m=f.length))return o=k.compileToFragments(e),e.level>=$?this.wrapInBraces(o):o;if(l=this.variable.isObject(),y&&1===m&&!((d=f[0])instanceof it))return d instanceof t?(x=d,N=x.variable,u=N.base,d=x.value):u=l?d["this"]?d.properties[0].name:d:new B(0),n=_.test(u.unwrap().value||0),k=new lt(k),k.properties.push(new(n?i:S)(u)),E=d.unwrap().value,Vt.call(z,E)>=0&&d.error("assignment to a reserved word: "+d.compile(e)),new t(d,k,null,{param:this.param}).compileToFragments(e,P);for(C=k.compileToFragments(e,O),F=yt(C),r=[],s=!1,(!_.test(F)||this.variable.assigns(F))&&(r.push([this.makeCode(""+(w=e.scope.freeVariable("ref"))+" = ")].concat(Ut.call(C))),C=[this.makeCode(w)],F=w),c=T=0,L=f.length;L>T;c=++T){if(d=f[c],u=c,l&&(d instanceof t?(D=d,A=D.variable,u=A.base,d=D.value):d.base instanceof q?(I=new lt(d.unwrapAll()).cacheReference(e),d=I[0],u=I[1]):u=d["this"]?d.properties[0].name:d),!s&&d instanceof it)p=d.name.unwrap().value,d=d.unwrap(),v=""+m+" <= "+F+".length ? "+$t("slice")+".call("+F+", "+c,(g=m-c-1)?(h=e.scope.freeVariable("i"),v+=", "+h+" = "+F+".length - "+g+") : ("+h+" = "+c+", [])"):v+=") : []",v=new B(v),s=""+h+"++";else{if(!s&&d instanceof b){(g=m-c-1)&&(1===g?s=""+F+".length - 1":(h=e.scope.freeVariable("i"),v=new B(""+h+" = "+F+".length - "+g),s=""+h+"++",r.push(v.compileToFragments(e,O))));continue}p=d.unwrap().value,(d instanceof it||d instanceof b)&&d.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeof u?(u=new B(s||u),n=!1):n=l&&_.test(u.unwrap().value||0),v=new lt(new B(F),[new(n?i:S)(u)])}null!=p&&Vt.call(z,p)>=0&&d.error("assignment to a reserved word: "+d.compile(e)),r.push(new t(d,v,null,{param:this.param,subpattern:!0}).compileToFragments(e,O))}return y||this.subpattern||r.push(C),a=this.joinFragmentArrays(r,", "),O>e.level?a:this.wrapInBraces(a)},t.prototype.compileConditional=function(e){var n,i,r,o;return o=this.variable.cacheReference(e),i=o[0],r=o[1],!i.properties.length&&i.base instanceof B&&"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"),Vt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new E(new g(i),r,{type:"if"}).addElse(new t(r,this.value,"=")).compileToFragments(e)):(n=new Y(this.context.slice(0,-1),i,new t(r,this.value,"=")).compileToFragments(e),O>=e.level?n:this.wrapInBraces(n)) +},t.prototype.compileSpecialMath=function(e){var n,i,r;return r=this.variable.cacheReference(e),n=r[0],i=r[1],new t(n,new Y(this.context.slice(0,-1),i,this.value)).compileToFragments(e)},t.prototype.compileSplice=function(e){var t,n,i,r,o,s,a,c,u,l,h,p;return l=this.variable.properties.pop().range,i=l.from,a=l.to,n=l.exclusive,s=this.variable.compile(e),i?(h=this.cacheToCodeFragments(i.cache(e,$)),r=h[0],o=h[1]):r=o="0",a?i instanceof lt&&i.isSimpleNumber()&&a instanceof lt&&a.isSimpleNumber()?(a=a.compile(e)-o,n||(a+=1)):(a=a.compile(e,I)+" - "+o,n||(a+=" + 1")):a="9e9",p=this.value.cache(e,O),c=p[0],u=p[1],t=[].concat(this.makeCode("[].splice.apply("+s+", ["+r+", "+a+"].concat("),c,this.makeCode(")), "),u),e.level>P?this.wrapInBraces(t):t},t}(a),n.Code=p=function(e){function t(e,n,i){t.__super__.constructor.call(this),this.params=e||[],this.body=n||new c,this.icedgen="icedgen"===i,this.icedPassedDeferral=null,this.bound="boundfunc"===i||this.icedgen,this.isGenerator=this.body.contains(function(e){var t;return e instanceof Y&&("yield"===(t=e.operator)||"yield*"===t)})}return Mt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=U,t.prototype.makeScope=function(e){return new et(e,this.body,this)},t.prototype.compileNode=function(e){var n,i,s,a,l,h,p,d,f,m,w,g,y,v,k,_,C,F,T,L,x,N,D,S,A,R,O,$,j,P,M,V,U;if(this.bound&&(null!=($=e.scope.method)?$.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",k=new t([new X(new B(this.context))],new c([this])),i=new u(k,[new B("this")]),i.updateLocationDataIfMissing(this.locationData),i.compileNode(e);for(e.scope=mt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=mt(e,"sharedScope")||this.icedgen,e.scope.icedgen=this.icedgen,e.indent+=ot,delete e.bare,delete e.isExistentialEquals,f=[],a=[],j=this.params,_=0,L=j.length;L>_;_++)d=j[_],d instanceof b||e.scope.parameter(d.asReference(e));for(P=this.params,C=0,x=P.length;x>C;C++)if(d=P[C],d.splat||d instanceof b){for(M=this.params,F=0,N=M.length;N>F;F++)p=M[F].name,d instanceof b||(p["this"]&&(p=p.properties[0].name),p.value&&e.scope.add(p.value,"var",!0));w=new o(new lt(new r(function(){var t,n,i,r;for(i=this.params,r=[],t=0,n=i.length;n>t;t++)p=i[t],r.push(p.asReference(e));return r}.call(this))),new lt(new B("arguments")));break}for(V=this.params,T=0,D=V.length;D>T;T++)d=V[T],d.isComplex()?(y=m=d.asReference(e),d.value&&(y=new Y("?",m,d.value)),a.push(new o(new lt(d.name),y,"=",{param:!0}))):(m=d,d.value&&(h=new B(m.name.value+" == null"),y=new o(new lt(d.name),d.value,"="),a.push(new E(h,y)))),w||f.push(m);for(v=this.body.isEmpty(),w&&a.unshift(w),a.length&&(U=this.body.expressions).unshift.apply(U,a),l=R=0,S=f.length;S>R;l=++R)p=f[l],f[l]=p.compileToFragments(e),e.scope.parameter(yt(f[l]));for(g=[],this.eachParamName(function(e,t){return Vt.call(g,e)>=0&&t.error("multiple parameters named '"+e+"'"),g.push(e)}),this.icedIsAutocbCode&&(v=!1),v||this.noReturn||this.body.makeReturn(),s="function",this.isGenerator&&(s+="*"),this.ctor&&(s+=" "+this.name),s+="(",n=[this.makeCode(s)],l=O=0,A=f.length;A>O;l=++O)p=f[l],l&&n.push(this.makeCode(", ")),n.push.apply(n,p);return n.push(this.makeCode(") {")),this.icedPatchBody(e),this.body.isEmpty()||(n=n.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),n.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ut.call(n)):this.front||e.level>=I?this.wrapInBraces(n):n},t.prototype.eachParamName=function(e){var t,n,i,r,o;for(r=this.params,o=[],n=0,i=r.length;i>n;n++)t=r[n],o.push(t.eachName(e));return o},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t.prototype.icedPatchBody=function(e){var t,n,r,s;return this.icedFoundArguments&&this.icedNodeFlag&&e.scope.assign("_arguments","arguments"),this.icedNodeFlag&&!this.icedgen&&(this.icedPassedDeferral=e.scope.freeVariable(vt["const"].passed_deferral),n=new lt(new B(this.icedPassedDeferral)),t=new lt(new B(vt["const"].ns)),t.add(new i(new lt(new B(vt["const"].findDeferral)))),s=new u(t,[new lt(new B("arguments"))]),this.body.unshift(new o(n,s))),this.icedNodeFlag&&!this.icedgen?(r=this.icedIsAutocbCode?vt["const"].autocb:vt["const"].k_noop,s=new lt(new B(r)),n=new lt(new B(vt["const"].k)),this.body.unshift(new o(n,s,null,{icedlocal:!0}))):void 0},t.prototype.icedWalkAst=function(e,n){var i,r,o,s,a,c,u,l;for(this.icedParentAwait=e,r=n.foundAutocb,i=n.currFunc,s=n.foundArguments,o=n.foundAwaitFunc,n.foundAutocb=!1,n.foundArguments=!1,n.foundAwaitFunc=!1,n.currFunc=this,l=this.params,c=0,u=l.length;u>c;c++)if(a=l[c],a.name instanceof B&&a.name.value===vt["const"].autocb){n.foundAutocb=!0;break}return t.__super__.icedWalkAst.call(this,e,n),this.icedHasAutocbFlag=r,this.icedIsAutocbCode=n.foundAutocb,this.icedFoundArguments=n.foundArguments,n.foundAwaitFunc=o,n.foundArguments=s,n.foundAutocb=r,n.currFunc=i,!1},t.prototype.icedWalkAstLoops=function(){return t.__super__.icedWalkAstLoops.call(this,!1)&&(this.icedLoopFlag=!0),!1},t.prototype.icedWalkCpsPivots=function(){return t.__super__.icedWalkCpsPivots.call(this),this.icedCpsPivotFlag=!1},t.prototype.icedTraceName=function(){var e;return e=[],this.klass&&e.push(this.klass),this.name&&e.push(this.name),e.join(".")},t}(a),n.Param=X=function(e){function t(e,n,i){var r;this.name=e,this.value=n,this.splat=i,t.__super__.constructor.call(this),r=e=this.name.unwrapAll().value,Vt.call(Z,r)>=0&&this.name.error('parameter name "'+e+'" is not allowed')}return Mt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,O)},t.prototype.asReference=function(e){var t;return this.reference?this.reference:(t=this.name,t["this"]?(t=t.properties[0].name,t.value.reserved&&(t=new B(e.scope.freeVariable(t.value)))):t.isComplex()&&(t=new B(e.scope.freeVariable("arg"))),t=new lt(t),this.splat&&(t=new it(t)),t.updateLocationDataIfMissing(this.locationData),this.reference=t)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,i,r,s,a,c;if(null==t&&(t=this.name),n=function(t){var n;return n=t.properties[0].name,n.value.reserved?void 0:e(n.value,n)},t instanceof B)return e(t.value,t);if(t instanceof lt)return n(t);for(c=t.objects,s=0,a=c.length;a>s;s++)r=c[s],r instanceof o?this.eachName(e,r.value.unwrap()):r instanceof it?(i=r.name.unwrap(),e(i.value,i)):r instanceof lt?r.isArray()||r.isObject()?this.eachName(e,r.base):r["this"]?n(r):e(r.base.value,r.base):r instanceof b||r.error("illegal parameter "+r.compile())},t}(a),n.Splat=it=function(e){function t(e){t.__super__.constructor.call(this),this.name=e.compile?e:new B(e)}return Mt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=pt,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,u,l,h,p,d;for(l=-1;(h=n[++l])&&!(h instanceof t););if(l>=n.length)return[];if(1===n.length)return h=n[0],c=h.compileToFragments(e,O),i?c:[].concat(h.makeCode(""+$t("slice")+".call("),c,h.makeCode(")"));for(r=n.slice(l),u=p=0,d=r.length;d>p;u=++p)h=r[u],s=h.compileToFragments(e,O),r[u]=h instanceof t?[].concat(h.makeCode(""+$t("slice")+".call("),s,h.makeCode(")")):[].concat(h.makeCode("["),s,h.makeCode("]"));return 0===l?(h=n[0],a=h.joinFragmentArrays(r.slice(1),", "),r[0].concat(h.makeCode(".concat("),a,h.makeCode(")"))):(o=function(){var t,i,r,o;for(r=n.slice(0,l),o=[],t=0,i=r.length;i>t;t++)h=r[t],o.push(h.compileToFragments(e,O));return o}(),o=n[0].joinFragmentArrays(o,", "),a=n[l].joinFragmentArrays(r,", "),[].concat(n[0].makeCode("["),o,n[l].makeCode("].concat("),a,Ct(n).makeCode(")")))},t.prototype.icedToSlot=function(e){return new nt(e,new lt(this.name),null,!0)},t}(a),n.Expansion=b=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Mt(t,e),t.prototype.isComplex=U,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}(a),n.While=ht=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 Mt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=pt,t.prototype.isLoop=pt,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(i=0,r=e.length;r>i;i++)if(n=e[i],t=n.jumps({loop:!0}))return t;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return this.condition.icedStatementAssertion(),this.icedNodeFlag?this.icedCompileIced(e):(e.indent+=ot,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 E(new q(this.guard).invert(),new B("continue"))):this.guard&&(n=c.wrap([new E(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,P),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,j),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&(this.icedHasAutocbFlag?(t.push(this.makeCode("\n"+this.tab+vt["const"].autocb+"("+i+");")),t.push(this.makeCode("\n"+this.tab+"return;"))):t.push(this.makeCode("\n"+this.tab+"return "+i+";"))),t)},t.prototype.icedWrap=function(e){var t,n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,S;return a=e.condition,t=e.body,_=[],N=new lt(new B(vt["const"].t_while)),b=new lt(new B(vt["const"].k)),y=new X(new B(vt["const"].k)),r=new lt(new B(vt["const"].b_while)),n=new o(r,b,null,{icedlocal:!0}),w=new lt(new B(vt["const"].c_while)),d=new c([new u(N,[b])]),e.step&&d.unshift(e.step),m=new p([],d),S=new lt(new B(vt["const"].ns)),S.add(new i(new lt(new B(vt["const"].trampoline)))),h=new c([new u(S,[m])]),f=new p([],h,"icedgen"),l=new o(w,f,null,{icedlocal:!0}),k=new lt(new B(vt["const"].n_while)),v=new o(k,w,null,{icedlocal:!0}),s=new E(a.invert(),new c([new u(r,[])])),e.guard?(h=new c([new u(w,[])]),g=new E(e.guard,t),g.addElse(h),s.addElse(new c([e.pre_body,g]))):s.addElse(new c([e.pre_body,t])),T=new c([n,l,v,s]),x=new p([y],T,"icedgen"),C=new o(N,x,null,{icedlocal:!0}),L=new u(N,[b]),D=[],e.init&&(D=D.concat(e.init)),D=D.concat([C,L]),F=new c(D)},t.prototype.icedCallContinuation=function(){return this.body.icedThreadReturn(new N(vt["const"].n_while))},t.prototype.icedCompileIced=function(e){var t,n;return n={condition:this.condition,body:this.body,guard:this.guard},t=this.icedWrap(n),t.compileNode(e)},t}(a),n.Op=Y=function(e){function t(e,i,r,o){if(t.__super__.constructor.call(this),"in"===e)return new D(i,r);if("do"===e)return this.generateDo(i);if("new"===e){if(i instanceof u&&!i["do"]&&!i.isNew)return i.newInstance();(i instanceof p&&i.bound||i["do"])&&(i=new q(i))}return this.operator=n[e]||e,this.first=i,this.second=r,this.flip=!!o,this}var n,r;return Mt(t,e),n={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},r={"!==":"===","===":"!=="},t.prototype.children=["first","second"],t.prototype.isSimpleNumber=U,t.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},t.prototype.isUnary=function(){return!this.second},t.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e))||this.first.isComplex()},t.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},t.prototype.invert=function(){var e,n,i,o,s;if(this.isChainable()&&this.first.isChainable()){for(e=!0,n=this;n&&n.operator;)e&&(e=n.operator in r),n=n.first;if(!e)return new q(this).invert();for(n=this;n&&n.operator;)n.invert=!n.invert,n.operator=r[n.operator],n=n.first;return this}return(o=r[this.operator])?(this.operator=o,this.first.unwrap()instanceof t&&this.first.invert(),this):this.second?new q(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof t&&("!"===(s=i.operator)||"in"===s||"instanceof"===s)?i:new t("!",this)},t.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&Ot(e,this,"first")},t.prototype.generateDo=function(e){var t,n,i,r,s,a,c,l;for(r=[],n=e instanceof o&&(s=e.value.unwrap())instanceof p?s:e,l=n.params||[],a=0,c=l.length;c>a;a++)i=l[a],i.value?(r.push(i.value),delete i.value):r.push(i);return t=new u(e,r),t["do"]=!0,t},t.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)&&(s=this.first.unwrapAll().value,Vt.call(Z,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),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,$),r=this.second.compileToFragments(e,$),t=[].concat(i,this.makeCode(" "+this.operator+" "),r),$>=e.level?t:this.wrapInBraces(t)}},t.prototype.compileChain=function(e){var t,n,i,r;return r=this.first.second.cache(e),this.first.second=r[0],i=r[1],n=this.first.compileToFragments(e,$),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),i.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,$)),this.wrapInBraces(t)},t.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new B(e.scope.freeVariable("ref")),t=new q(new o(n,this.first))):(t=this.first,n=t),new E(new g(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},t.prototype.compileUnary=function(e){var n,i,r;return i=[],n=this.operator,i.push([this.makeCode(n)]),"!"===n&&this.first instanceof g?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=I?new q(this).compileToFragments(e):(r="+"===n||"-"===n,("new"===n||"typeof"===n||"delete"===n||r&&this.first instanceof t&&this.first.operator===n)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof t||"new"===n&&this.first.isStatement(e))&&(this.first=new q(this.first)),i.push(this.first.compileToFragments(e,$)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},t.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Vt.call(Object.keys(this.first),"expression")>=0?null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,$)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,$)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},t.prototype.compilePower=function(e){var t;return t=new lt(new B("Math"),[new i(new B("pow"))]),new u(t,[this.first,this.second]).compileToFragments(e)},t.prototype.compileFloorDivision=function(e){var n,r;return r=new lt(new B("Math"),[new i(new B("floor"))]),n=new t("/",this.first,this.second),new u(r,[n]).compileToFragments(e)},t.prototype.compileModulo=function(e){var t;return t=new lt(new B($t("modulo"))),new u(t,[this.first,this.second]).compileToFragments(e)},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},t.prototype.icedWrapContinuation=function(){return this.icedCallContinuationFlag},t}(a),n.In=D=function(e){function t(e,n){this.object=e,this.array=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["object","array"],t.prototype.invert=V,t.prototype.compileNode=function(e){var t,n,i,r,o;if(this.array instanceof lt&&this.array.isArray()&&this.array.base.objects.length){for(o=this.array.base.objects,i=0,r=o.length;r>i;i++)if(n=o[i],n instanceof it){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,u,l,h,p;for(l=this.object.cache(e,$),s=l[0],o=l[1],h=this.negated?[" !== "," && "]:[" === "," || "],t=h[0],n=h[1],a=[],p=this.array.base.objects,i=c=0,u=p.length;u>c;i=++c)r=p[i],i&&a.push(this.makeCode(n)),a=a.concat(i?o:s,this.makeCode(t),r.compileToFragments(e,I));return $>e.level?a:this.wrapInBraces(a)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return r=this.object.cache(e,O),i=r[0],n=r[1],t=[].concat(this.makeCode($t("indexOf")+".call("),this.array.compileToFragments(e,O),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),yt(i)===yt(n)?t:(t=i.concat(this.makeCode(", "),t),O>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(a),n.Slot=nt=function(e){function t(e,n,i,r){t.__super__.constructor.call(this),this.index=e,this.value=n,this.suffix=i,this.splat=r,this.access=null}return Mt(t,e),t.prototype.addAccess=function(e){return this.access=e,this},t.prototype.children=["value","suffix"],t}(a),n.Defer=w=function(e){function t(e,n){var i,r;this.lineno=n,t.__super__.constructor.call(this),this.slots=bt(function(){var t,n,o;for(o=[],r=t=0,n=e.length;n>t;r=++t)i=e[r],o.push(i.icedToSlot(r));return o}()),this.params=[],this.vars=[],this.custom=!1}return Mt(t,e),t.prototype.children=["slots"],t.prototype.setCustom=function(){return this.custom=!0,this},t.prototype.newParam=function(){var e;return e=""+vt["const"].slot+"_"+(this.params.length+1),this.params.push(new X(new B(e))),new lt(new B(e))},t.prototype.makeAssignFn=function(e){var t,n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F;if(0===this.slots.length)return null;for(s=[],n=[],d=0,F=this.slots,_=0,C=F.length;C>_;_++)v=F[_],d=v.index,t=new lt(new B("arguments")),f=new lt(new B(d)),v.splat?(h=new lt(new B($t("slice"))),h.add(new i(new lt(new B("call")))),l=new u(h,[t,f]),k=v.value,this.vars.push(k),r=new o(k,l)):(t.add(new S(f)),v.access&&t.add(v.access),v.suffix?(n.push(v.value),k=this.newParam(),v.suffix instanceof S?(y=new S(this.newParam()),n.push(v.suffix.index)):y=v.suffix,k.add(y)):(w=v.value.compile(e,P),"_"===w?(k=new lt(new B(vt["const"].deferrals)),k.add(new i(new lt(new B(vt["const"].retslot))))):(k=v.value,this.vars.push(k))),r=new o(k,t)),s.push(r);return a=new c(s),m=new p([],a,"icedgen"),g=new c([new J(m)]),b=new p(this.params,g,"icedgen"),l=new u(b,n)},t.prototype.transform=function(e){var t,n,r,s,a,c,l,h,p,d;return d=new lt(new B(vt["const"].defer_method)),this.custom?c=d:(c=new lt(new B(vt["const"].deferrals)),c.add(new i(d))),n=[],(t=this.makeAssignFn(e))&&n.push(new o(new lt(new B(vt["const"].assign_fn)),t,"object")),h=new lt(new B(vt["const"].lineno)),p=new lt(new B(this.lineno)),l=new o(h,p,"object"),n.push(l),this.custom&&(s=new lt(new B(vt["const"].context)),a=new lt(new B(vt["const"].deferrals)),r=new o(s,a,"object"),n.push(r)),e=new G(n),new u(c,[new lt(e)])},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;for(t=this.transform(e),a=this.vars,o=0,s=a.length;s>o;o++)r=a[o],n=r.compile(e,O),i=e.scope,i.find(n,"var");return t.compileNode(e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,n.foundDefer=!0,this.parentFunc=n.currFunc,t.__super__.icedWalkAst.call(this,e,n)},t}(a),Dt=function(e){return'"'+e.replace(/\\/g,"\\\\")+'"'},Et=function(e){return'"'+e.replace(/["']/g,"")+'"'},St=function(){return Dt(Nt.join(t,"..",".."))},n.Await=s=function(e){function t(e){this.body=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.transform=function(e){var t,n,r,s,a,c,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T;return r=this.body,k=vt["const"].deferrals,e.scope.add(k,"var"),b=new lt(new B(k)),h=new lt(new B(vt["const"].ns)),h.add(new i(new lt(new B(vt["const"].Deferrals)))),n=[],(v=null!=(F=this.parentFunc)?F.icedPassedDeferral:void 0)&&(c=new lt(new B(vt["const"].parent)),l=new lt(new B(v)),a=new o(c,l,"object"),n.push(a)),null!=e.filename&&(d=new lt(new B(vt["const"].filename)),f=new lt(new B(Dt(e.filename))),p=new o(d,f,"object"),n.push(p)),(v=null!=(T=this.parentFunc)?T.icedTraceName():void 0)&&(w=new lt(new B(vt["const"].funcname)),g=new lt(new B(Et(v))),m=new o(w,g,"object"),n.push(m)),C=new G(n,!0),s=new u(h,[new lt(new B(vt["const"].k)),C]),_=new Y("new",s),t=new o(b,_),r.unshift(t),y=b.copy().add(new i(new lt(new B(vt["const"].fulfill)))),s=new u(y,[]),r.push(s),this.body=r},t.prototype.children=["body"],t.prototype.isStatement=function(){return pt},t.prototype.makeReturn=st,t.prototype.compileNode=function(e){return this.transform(e),this.body.compileNode(e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,this.parentFunc=n.currFunc,e=e||this,this.icedParentAwait=e,t.__super__.icedWalkAst.call(this,e,n),this.icedNodeFlag=n.foundAwaitFunc=n.foundAwait=!0},t}(a),x=function(e){function t(e,n){this.foundDefer=e,this.foundAwait=n,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.compileNode=function(e){var n,r,s,a,l,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,E,D;if(this.expressions=[],_=e.runtime?e.runtime:e.bare?"none":this.foundDefer?"node":"none",!e.runtime||this.foundDefer||e.runforce||(_="none"),F=!1,T=null,d=null,d=function(){switch(_){case"inline":case"window":return"window"===_&&(F=!0),F&&(T=new lt(new B(_))),A.generate(T?T.copy():null);case"node":case"browserify":case"interp":return f="interp"===_,y=f?St():"'iced-runtime'",r=vt["const"].ns,h=new B(y),n=new i(new B(r)),v=new lt(new B("require")),a=new u(v,[h]),l=new lt(a),f&&l.add(n),b=new lt(new B(vt["const"].ns)),new o(b,l);case"none":return null;default:throw SyntaxError("unexpected flag IcedRuntime "+_)}}(),d&&this.push(d),this.foundAwait){for(k=new p([],new c([])),g=[],D=[vt["const"].k_noop,vt["const"].k],L=0,N=D.length;N>L;L++)m=D[L],C=new lt(new B(m)),T&&(w=T.copy(),w.add(new i(C)),C=w),g.push(C);for(s=k,x=0,E=g.length;E>x;x++)_=g[x],s=new o(_,s);this.push(s)}return this.isEmpty()?[]:t.__super__.compileNode.call(this,e)},t.prototype.icedWalkAst=function(e,n){return this.icedHasAutocbFlag=n.foundAutocb,t.__super__.icedWalkAst.call(this,e,n)},t}(c),n.Try=ct=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return Mt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=pt,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,i,r;return e.indent+=ot,r=this.attempt.compileToFragments(e,P),t=this.recovery?(i=new B("_error"),this.errorVariable?this.recovery.unshift(new o(this.errorVariable,i)):void 0,[].concat(this.makeCode(" catch ("),i.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,P),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch (_error) {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,P),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(""+this.tab+"try {\n"),r,this.makeCode("\n"+this.tab+"}"),t,n)},t}(a),n.Throw=at=function(e){function t(e){this.expression=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=pt,t.prototype.jumps=U,t.prototype.makeReturn=st,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(a),n.Existence=g=function(e){function t(e){this.expression=e,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["expression"],t.prototype.invert=V,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,$),_.test(i)&&!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(R>=e.level?i:"("+i+")")]},t}(a),n.Parens=q=function(e){function t(e){this.body=e,t.__super__.constructor.call(this)}return Mt(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 lt&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,j),t=$>e.level&&(n instanceof Y||n instanceof u||n instanceof v&&n.returns),t?i:this.wrapInBraces(i))},t}(a),n.For=v=function(e){function t(e,n){var i;t.__super__.constructor.call(this),this.source=n.source,this.guard=n.guard,this.step=n.step,this.name=n.name,this.index=n.index,this.body=c.wrap([e]),this.own=!!n.own,this.object=!!n.object,this.object&&(i=[this.index,this.name],this.name=i[0],this.index=i[1]),this.index instanceof lt&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof lt&&this.source.base instanceof K&&!this.source.properties.length,this.pattern=this.name instanceof lt,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 Mt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,i,r,s,a,u,l,h,p,d,f,m,w,g,b,y,v,k,C,F,T,L,x,N,D,S,A,I,R,$,j,M,V;return t=c.wrap([this.body]),v=null!=(M=Ct(t.expressions))?M.jumps():void 0,v&&v instanceof J&&(this.returns=!1),S=this.range?this.source.base:this.source,D=e.scope,this.pattern||(C=this.name&&this.name.compile(e,O)),w=this.index&&this.index.compile(e,O),C&&!this.pattern&&D.find(C),w&&D.find(w),this.returns&&(N=D.freeVariable("results")),g=this.object&&w||D.freeVariable("i"),b=this.range&&C||w||g,y=b!==g?""+b+" = ":"",this.step&&!this.range&&(V=this.cacheToCodeFragments(this.step.cache(e,O)),A=V[0],R=V[1],I=R.match(W)),this.pattern&&(C=g),j="",d="",u="",f=this.tab+ot,S.icedStatementAssertion(),this.icedNodeFlag?this.icedCompileIced(e,{stepVar:R,body:t,kvar:b,guard:this.guard}):(this.range?p=S.compileToFragments(Tt(e,{index:g,name:C,step:this.step})):($=this.source.compile(e,O),!C&&!this.own||_.test($)||(u+=""+this.tab+(T=D.freeVariable("ref"))+" = "+$+";\n",$=T),C&&!this.pattern&&(F=""+C+" = "+$+"["+b+"]"),this.object||(A!==R&&(u+=""+this.tab+A+";\n"),this.step&&I&&(h=0>xt(I[0]))||(k=D.freeVariable("len")),s=""+y+g+" = 0, "+k+" = "+$+".length",a=""+y+g+" = "+$+".length - 1",i=""+g+" < "+k,r=""+g+" >= 0",this.step?(I?h&&(i=r,s=a):(i=""+R+" > 0 ? "+i+" : "+r,s="("+R+" > 0 ? ("+s+") : "+a+")"),m=""+g+" += "+R):m=""+(b!==g?"++"+g:""+g+"++"),p=[this.makeCode(""+s+"; "+i+"; "+y+m)])),this.returns&&(L=""+this.tab+N+" = [];\n",x=this.icedHasAutocbFlag?"\n"+this.tab+vt["const"].autocb+"("+N+"); return;":"\n"+this.tab+"return "+N+";",t.makeReturn(N)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new E(new q(this.guard).invert(),new B("continue"))):this.guard&&(t=c.wrap([new E(this.guard,t)]))),this.pattern&&t.expressions.unshift(new o(this.name,new B(""+$+"["+b+"]"))),l=[].concat(this.makeCode(u),this.pluckDirectCall(e,t)),F&&(j="\n"+f+F+";"),this.object&&(p=[this.makeCode(""+b+" in "+$)],this.own&&(d="\n"+f+"if (!"+$t("hasProp")+".call("+$+", "+b+")) continue;")),n=t.compileToFragments(Tt(e,{indent:f}),P),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(L||"")+this.tab+"for ("),p,this.makeCode(") {"+d+j),n,this.makeCode(""+this.tab+"}"+(x||""))))},t.prototype.pluckDirectCall=function(e,t){var n,i,r,s,a,c,l,h,d,f,m,w,g,b,y,v;for(i=[],f=t.expressions,a=h=0,d=f.length;d>h;a=++h)r=f[a],r=r.unwrapAll(),r instanceof u&&(l=null!=(m=r.variable)?m.unwrapAll():void 0,(l instanceof p||l instanceof lt&&(null!=(w=l.base)?w.unwrapAll():void 0)instanceof p&&1===l.properties.length&&("call"===(g=null!=(b=l.properties[0].name)?b.value:void 0)||"apply"===g))&&(s=(null!=(y=l.base)?y.unwrapAll():void 0)||l,c=new B(e.scope.freeVariable("fn")),n=new lt(c),l.base&&(v=[n,l],l.base=v[0],n=v[1]),t.expressions[a]=new u(n,r.args),i=i.concat(this.makeCode(this.tab),new o(c,s).compileToFragments(e,P),this.makeCode(";\n"))));return i},t.prototype.icedCompileIced=function(e,n){var s,a,u,l,h,p,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,A,I,R,$,j,P,M,V,U,H,G,X,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,ht,pt,dt,ft;return w=n.body,g=null,F=[],st=null,it=e.scope,Z=new c([]),this.object?(et=it.freeVariable("ref"),tt=new lt(new B(et)),s=new o(tt,this.source),R=it.freeVariable("keys"),P=new lt(new B(R)),D=it.freeVariable("k"),A=new B(D),I=new lt(A),y=new lt(new r),G=new c([I]),z={object:!0,name:A,source:tt},X=new t(G,z),a=new o(P,X),C=it.freeVariable("i"),N=new lt(new B(C)),u=new o(N,new lt(new B(0))),F=[s,a,u],j=P.copy(),j.add(new i(new lt(new B("length")))),g=new Y("<",N,j),st=new Y("++",N),this.name&&(rt=tt.copy(),rt.add(new S(this.index)),h=new o(this.name,rt),Z.unshift(h)),$=P.copy(),$.add(new S(N)),l=new o(this.index,$),Z.unshift(l)):this.range?(this.name||(this.name=new B(n.kvar)),m=new lt(new B(e.scope.freeVariable("begin"))),v=new lt(new B(e.scope.freeVariable("end"))),Q=new lt(new B(e.scope.freeVariable("positive"))),ct=new lt(new B(e.scope.freeVariable("step"))),this.step?(d=new o(ct,this.step),p=new o(Q,new Y(">",ct,new B(0)),null,{icedlocal:!0})):(L=new Y(">",v,m),d=new E(L,new o(ct,new B(1))),d.addElse(new o(ct,new B(-1))),p=new o(Q,L,null,{icedlocal:!0})),st=new Y("+=",this.name,ct),k=this.source.base.exclusive?"=":"",J=new Y("&&",new Y("===",Q,new B(!0)),new Y(">"+k,this.name,this.source.base.to)),K=new Y("&&",new Y("===",Q,new B(!1)),new Y("<"+k,this.name,this.source.base.to)),g=new Y("||",new q(J),new q(K)),g=g.invert(),F=[new o(this.name,this.source.base.from),new o(m,this.source.base.from,null,{icedlocal:!0}),new o(v,this.source.base.to,null,{icedlocal:!0}),d,p]):!this.range&&this.name&&(M=new lt(new B(n.kvar)),V=it.freeVariable("len"),et=it.freeVariable("ref"),tt=new lt(new B(et)),H=new lt(new B(V)),s=new o(tt,this.source),U=tt.copy().add(new i(new lt(new B("length")))),a=new o(H,U),F=[s,a],this.step?(ft=this.cacheToCodeFragments(this.step.cache(e,O)),dt=ft[0],ut=ft[1],at=ut.match(W),at?(st=new o(M,new Y("+",M,this.step)),b=0>xt(at[0]),b?(u=new o(M,new Y("-",H,new B(1))),g=new Y(">=",M,new B(0))):(u=new o(M,new B(0)),g=new Y("<",M,H)),F.push(u)):(ht=it.freeVariable("step"),pt=new lt(new B(ht)),T=new o(pt,new lt(this.step)),x=new Y(">",pt,new B(0)),ot=new E(x,new lt(new B(0))),ot.addElse(new Y("-",H,new B(1))),st=new o(M,new Y("+",M,pt)),u=new o(M,ot),g=new Y("&&",new Y(">=",M,new B(0)),new Y("<",M,H)),F.push(T,u))):(u=new o(M,new B(0)),st=new Y("++",M),g=new Y("<",M,H),F.push(u)),nt=tt.copy(),nt.add(new S(M)),l=new o(this.name,nt),Z.unshift(l)),_=n.guard,f=this.icedWrap({condition:g,body:w,init:F,step:st,guard:_,pre_body:Z}),f.compileNode(e)},t}(ht),n.Switch=rt=function(e){function t(e,n,i){this.subject=e,this.cases=n,this.otherwise=i,t.__super__.constructor.call(this)}return Mt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=pt,t.prototype.jumps=function(e){var t,n,i,r,o,s,a,c;for(null==e&&(e={block:!0}),s=this.cases,r=0,o=s.length;o>r;r++)if(a=s[r],n=a[0],t=a[1],i=t.jumps(e))return i; +return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,n=0,i=r.length;i>n;n++)t=r[n],t[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new c([new B("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,l,h,p,d,f,m,w;for(this.subject&&this.subject.icedStatementAssertion(),c=e.indent+ot,u=e.indent=c+ot,s=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,j):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],w=bt([r]),h=0,d=w.length;d>h;h++)i=w[h],this.subject||(i=i.invert()),s=s.concat(this.makeCode(c+"case "),i.compileToFragments(e,j),this.makeCode(":\n"));if((n=t.compileToFragments(e,P)).length>0&&(s=s.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;o=this.lastNonComment(t.expressions),o instanceof J||o instanceof B&&o.jumps()&&"debugger"!==o.value||s.push(i.makeCode(u+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&s.push.apply(s,[this.makeCode(c+"default:\n")].concat(Ut.call(this.otherwise.compileToFragments(e,P)),[this.makeCode("\n")])),s.push(this.makeCode(this.tab+"}")),s},t.prototype.icedCallContinuation=function(){var e,t,n,i,r,o;for(r=this.cases,n=0,i=r.length;i>n;n++)o=r[n],t=o[0],e=o[1],e.icedThreadReturn();return null!=this.otherwise?this.otherwise.icedThreadReturn():this.otherwise=new c([new N])},t}(a),n.If=E=function(e){function t(e,n,i){this.body=n,null==i&&(i={}),t.__super__.constructor.call(this),this.condition="unless"===i.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=i.soak}return Mt(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)===P||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.condition.icedStatementAssertion(),this.isStatement(e||this.icedIsCpsPivot())?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new c([new B("void 0")]))),this.body&&(this.body=new c([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new c([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof c?e:new c([e])},t.prototype.compileStatement=function(e){var n,i,r,o,s,a,c;return r=mt(e,"chainChild"),(s=mt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+ot,o=this.condition.compileToFragments(e,j),i=this.ensureBlock(this.body).compileToFragments(Tt(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,P))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Tt(e,{indent:c}),P),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,R),n=this.bodyNode().compileToFragments(e,O),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,O):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=R?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t.prototype.icedCallContinuation=function(){return this.elseBody?(this.elseBody.icedThreadReturn(),this.isChain=!1):this.addElse(new N),this.body.icedThreadReturn()},t}(a),h={wrap:function(e,t,n){var r,o,s,a,l;return e.jumps()?e:(a=new p([],c.wrap([e])),r=[],o=e.contains(this.isLiteralArguments),o&&e.classBody&&o.error("Class bodies shouldn't reference arguments"),(o||e.contains(this.isLiteralThis))&&(l=new B(o?"apply":"call"),r=[new B("this")],o&&r.push(new B("arguments")),a=new lt(a,[new i(l)])),a.noReturn=n,s=new u(a,r),t?c.wrap([s]):s)},isLiteralArguments:function(e){return e instanceof B&&"arguments"===e.value&&!e.asKey},isLiteralThis:function(e){return e instanceof B&&"this"===e.value&&!e.asKey||e instanceof p&&e.bound||e instanceof u&&e.isSuper}},Ot=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new lt(t),i},m={wrap:function(e,t,n,i){var r,o,s,a,l,h;return h=new p([new X(new B(vt["const"].k))],c.wrap([e]),"icedgen"),r=[],n&&(n.bindName(i),r.push(n)),o=c.wrap([t]),a=(l=o.icedGetSingle())&&l instanceof N&&l.canInline()?l.extractFunc():new p(r,o,"icedgen"),s=new u(h,[a]),new c([s])}},N=function(e){function t(e,n){this.func=e,null==n&&(n=null),t.__super__.constructor.call(this),this.func||(this.func=vt["const"].k),this.value=n}return Mt(t,e),t.prototype.children=["value"],t.prototype.assignValue=function(e){return this.value=e},t.prototype.canInline=function(){return!this.value||this.value instanceof L},t.prototype.literalFunc=function(){return new B(this.func)},t.prototype.extractFunc=function(){return new lt(this.literalFunc())},t.prototype.compileNode=function(e){var t,n,i;return n=this.literalFunc(),i=e.level===P?this.value?new c([this.value,new u(n)]):new u(n):(t=this.value?[this.value]:[],new u(n,t)),i.compileNode(e)},t}(a),L=function(e){function t(){t.__super__.constructor.call(this,null,null,!1)}return Mt(t,e),t.counter=0,t.prototype.bindName=function(e){var n;return n=""+e.scope.freeVariable(vt["const"].param,!1)+"_"+t.counter++,this.name=new B(n)},t.prototype.compile=function(e){return this.name||this.bindName(e),t.__super__.compile.call(this,e)},t}(X),A={generate:function(e){var t,n,r,s,a,h,d,f,m,w,g,b,y,v,k,_,C,F,T,L,x,N,D,S,A,I,R,O,$,j,P,M,V,U,W,q,z,K,J,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,ut,ht,pt,dt,ft,mt,wt,gt,bt,yt;return q=new B("continuation"),m=new B("count"),f=new lt(new B(vt["const"].Deferrals)),tt=new lt(new B(vt["const"].ns)),e&&(e.add(new i(tt)),tt=e),z=new lt(new B("this")),z.add(new i(q)),st=new X(z),w=new lt(new B("this")),w.add(new i(m)),at=new lt(new B("this")),at.add(new i(new lt(new B(vt["const"].retslot)))),t=new o(w,new lt(new B(1))),n=new o(at,H()),k=[st],b=new c([t,n]),y=new p(k,b),v=new lt(new B("constructor")),g=new o(v,y),j=new u(z,[at]),O=new c([j]),_=new Y("--",w),$=new Y("!",_),Z=new E($,O),mt=new c([Z]),gt=new p([],mt),yt=new lt(new B(vt["const"].fulfill)),ft=new o(yt,gt),P=new Y("++",w),W=new B("inner_params"),N=new B("defer_params"),D=new lt(N),d=new lt(N),r=new B(vt["const"].assign_fn),d.add(new i(r,"soak")),Q=new B("apply"),d.add(new i(Q,"soak")),et=H(),s=new u(d,[et,new lt(W)]),bt=new lt(new B("this")),bt.add(new i(new B(vt["const"].fulfill))),wt=new u(bt,[]),M=new c([s,wt]),U=[new X(W,null,!0)],V=new p(U,M,"boundfunc"),F=new c([P,V]),x=[new X(N)],T=new p(x,F),L=new lt(new B(vt["const"].defer_method)),C=new o(L,T),a=[g,ft,C],rt=new G(a,!0),h=new c([new lt(rt)]),K=new l(null,null,h),J=new o(f,K,"object"),ot=new c([H()]),I=new p([],ot),R=new lt(new B(vt["const"].findDeferral)),A=new o(R,I,"object"),S=new B("_fn"),ut=new c([new u(new lt(S),[])]),dt=[new X(S)],ht=new p(dt,ut),pt=new lt(new B(vt["const"].trampoline)),ct=new o(pt,ht,"object"),nt=new G([J,A,ct],!0),it=new lt(nt),new o(tt,it)}},ut={"extends":function(){return"function(child, parent) { for (var key in parent) { if ("+$t("hasProp")+".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"}},P=1,j=2,O=3,R=4,$=5,I=6,ot=" ",C="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",_=RegExp("^"+C+"$"),Q=/^[+-]?\d+$/,k=/^[+-]?0x[\da-f]+/i,W=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,M=RegExp("^("+C+")(\\.prototype)?(?:\\.("+C+")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$"),T=/^['"]/,F=/^\//,$t=function(e){var t;return t="__"+e,et.root.assign(t,ut[e]()),t},Lt=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},xt=function(e){return null==e?0:e.match(k)?parseInt(e,16):parseFloat(e)},kt=function(e){return e instanceof B&&"arguments"===e.value&&!e.asKey},_t=function(e){return e instanceof B&&"this"===e.value&&!e.asKey||e instanceof p&&e.bound||e instanceof u&&e.isSuper},Ot=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new lt(t),i}}).call(this)}).call(this,"/")},{"./helpers":3,"./lexer":5,"./scope":10,"iced-runtime":15,path:18}],7:[function(e,t,n){(function(i){var r=function(){function e(){this.yy={}}var t={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Await:12,AWAIT:13,Block: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,Defer:27,INDENT:28,OUTDENT:29,Identifier:30,IDENTIFIER:31,AlphaNumeric:32,NUMBER:33,STRING:34,Literal:35,JS:36,REGEX:37,DEBUGGER:38,UNDEFINED:39,NULL:40,BOOL:41,Assignable:42,"=":43,AssignObj:44,ObjAssignable:45,":":46,ThisProperty:47,RETURN:48,HERECOMMENT:49,PARAM_START:50,ParamList:51,PARAM_END:52,FuncGlyph:53,"->":54,"=>":55,OptComma:56,",":57,Param:58,ParamVar:59,"...":60,Array:61,Object:62,Splat:63,SimpleAssignable:64,Accessor:65,Parenthetical:66,Range:67,This:68,".":69,"?.":70,"::":71,"?::":72,Index:73,INDEX_START:74,IndexValue:75,INDEX_END:76,INDEX_SOAK:77,Slice:78,"{":79,AssignList:80,"}":81,CLASS:82,EXTENDS:83,OptFuncExist:84,Arguments:85,SUPER:86,DEFER:87,FUNC_EXIST:88,CALL_START:89,CALL_END:90,ArgList:91,THIS:92,"@":93,"[":94,"]":95,RangeDots:96,"..":97,Arg:98,SimpleArgs:99,TRY:100,Catch:101,FINALLY:102,CATCH:103,THROW:104,"(":105,")":106,WhileSource:107,WHILE:108,WHEN:109,UNTIL:110,Loop:111,LOOP:112,ForBody:113,FOR:114,ForStart:115,ForSource:116,ForVariables:117,OWN:118,ForValue:119,FORIN:120,FOROF:121,BY:122,SWITCH:123,Whens:124,ELSE:125,When:126,LEADING_WHEN:127,IfBlock:128,IF:129,POST_IF:130,UNARY:131,UNARY_MATH:132,"-":133,"+":134,YIELD:135,FROM:136,"--":137,"++":138,"?":139,MATH:140,"**":141,SHIFT:142,COMPARE:143,LOGIC:144,RELATION:145,COMPOUND_ASSIGN:146,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",13:"AWAIT",28:"INDENT",29:"OUTDENT",31:"IDENTIFIER",33:"NUMBER",34:"STRING",36:"JS",37:"REGEX",38:"DEBUGGER",39:"UNDEFINED",40:"NULL",41:"BOOL",43:"=",46:":",48:"RETURN",49:"HERECOMMENT",50:"PARAM_START",52:"PARAM_END",54:"->",55:"=>",57:",",60:"...",69:".",70:"?.",71:"::",72:"?::",74:"INDEX_START",76:"INDEX_END",77:"INDEX_SOAK",79:"{",81:"}",82:"CLASS",83:"EXTENDS",86:"SUPER",87:"DEFER",88:"FUNC_EXIST",89:"CALL_START",90:"CALL_END",92:"THIS",93:"@",94:"[",95:"]",97:"..",100:"TRY",102:"FINALLY",103:"CATCH",104:"THROW",105:"(",106:")",108:"WHILE",109:"WHEN",110:"UNTIL",112:"LOOP",114:"FOR",118:"OWN",120:"FORIN",121:"FOROF",122:"BY",123:"SWITCH",125:"ELSE",127:"LEADING_WHEN",129:"IF",130:"POST_IF",131:"UNARY",132:"UNARY_MATH",133:"-",134:"+",135:"YIELD",136:"FROM",137:"--",138:"++",139:"?",140:"MATH",141:"**",142:"SHIFT",143:"COMPARE",144:"LOGIC",145:"RELATION",146:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[12,2],[12,2],[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],[14,2],[14,3],[30,1],[32,1],[32,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[19,3],[19,4],[19,5],[44,1],[44,3],[44,5],[44,1],[45,1],[45,1],[45,1],[9,2],[9,1],[10,1],[17,5],[17,2],[53,1],[53,1],[56,0],[56,1],[51,0],[51,1],[51,3],[51,4],[51,6],[58,1],[58,2],[58,3],[58,1],[59,1],[59,1],[59,1],[59,1],[63,2],[64,1],[64,2],[64,2],[64,1],[42,1],[42,1],[42,1],[15,1],[15,1],[15,1],[15,1],[15,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,1],[65,1],[73,3],[73,2],[75,1],[75,1],[62,4],[80,0],[80,1],[80,3],[80,4],[80,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[16,3],[16,3],[16,1],[16,2],[27,2],[84,0],[84,1],[85,2],[85,4],[68,1],[68,1],[47,2],[61,2],[61,4],[96,1],[96,1],[67,5],[78,3],[78,2],[78,2],[78,1],[91,1],[91,3],[91,4],[91,4],[91,6],[98,1],[98,1],[98,1],[99,1],[99,3],[21,2],[21,3],[21,4],[21,5],[101,3],[101,3],[101,2],[26,2],[66,3],[66,5],[107,2],[107,4],[107,2],[107,4],[22,2],[22,2],[22,2],[22,1],[111,2],[111,2],[23,2],[23,2],[23,2],[113,2],[113,2],[115,2],[115,3],[119,1],[119,1],[119,1],[119,1],[117,1],[117,3],[116,2],[116,2],[116,4],[116,4],[116,4],[116,6],[116,6],[24,5],[24,7],[24,4],[24,6],[124,1],[124,2],[126,3],[126,4],[128,3],[128,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[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:this.$=o[a];break;case 7:this.$=o[a];break;case 8:this.$=o[a];break;case 9:this.$=o[a];break;case 10:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 11:this.$=o[a];break;case 12:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Await(o[a]));break;case 13:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Await(i.Block.wrap([o[a]])));break;case 14:this.$=o[a];break;case 15:this.$=o[a];break;case 16:this.$=o[a];break;case 17:this.$=o[a];break;case 18:this.$=o[a];break;case 19:this.$=o[a];break;case 20:this.$=o[a];break;case 21:this.$=o[a];break;case 22:this.$=o[a];break;case 23:this.$=o[a];break;case 24:this.$=o[a];break;case 25:this.$=o[a];break;case 26:this.$=o[a];break;case 27:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Block);break;case 28:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 29:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 30:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 31:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 32:this.$=o[a];break;case 33:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 34:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 35:this.$=i.addLocationDataFn(s[a],s[a])(new i.Literal(o[a]));break;case 36:this.$=i.addLocationDataFn(s[a],s[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(s[a],s[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(s[a],s[a])(new i.Bool(o[a]));break;case 39:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a]));break;case 40:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a]));break;case 41:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1]));break;case 42:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 43: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"));break;case 44: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"));break;case 45:this.$=o[a];break;case 46:this.$=o[a];break;case 47:this.$=o[a];break;case 48:this.$=o[a];break;case 49:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Return(o[a]));break;case 50:this.$=i.addLocationDataFn(s[a],s[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(s[a],s[a])(new i.Comment(o[a]));break;case 52:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Code(o[a-3],o[a],o[a-1]));break;case 53:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Code([],o[a],o[a-1]));break;case 54:this.$=i.addLocationDataFn(s[a],s[a])("func");break;case 55:this.$=i.addLocationDataFn(s[a],s[a])("boundfunc");break;case 56:this.$=o[a];break;case 57:this.$=o[a];break;case 58:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 59:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 60:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 61:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 62:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 63:this.$=i.addLocationDataFn(s[a],s[a])(new i.Param(o[a]));break;case 64:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Param(o[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Param(o[a-2],o[a]));break;case 66:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 67:this.$=o[a];break;case 68:this.$=o[a];break;case 69:this.$=o[a];break;case 70:this.$=o[a];break;case 71:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Splat(o[a-1]));break;case 72:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 73:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].add(o[a]));break;case 74:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(o[a-1],[].concat(o[a])));break;case 75:this.$=o[a];break;case 76:this.$=o[a];break;case 77:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 78:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 79:this.$=o[a];break;case 80:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 81:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 82:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 83:this.$=o[a];break;case 84:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a]));break;case 85:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a].setCustom()));break;case 86:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a],"soak"));break;case 87:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 88:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 89:this.$=i.addLocationDataFn(s[a],s[a])(new i.Access(new i.Literal("prototype")));break;case 90:this.$=o[a];break;case 91:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 92:this.$=i.addLocationDataFn(s[a-1],s[a])(i.extend(o[a],{soak:!0}));break;case 93:this.$=i.addLocationDataFn(s[a],s[a])(new i.Index(o[a]));break;case 94:this.$=i.addLocationDataFn(s[a],s[a])(new i.Slice(o[a]));break;case 95:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Obj(o[a-2],o[a-3].generated));break;case 96:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 97:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 98:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 99:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 100:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 101:this.$=i.addLocationDataFn(s[a],s[a])(new i.Class);break;case 102:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(null,null,o[a]));break;case 103:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(null,o[a]));break;case 104:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(null,o[a-1],o[a]));break;case 105:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(o[a]));break;case 106:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(o[a-1],null,o[a]));break;case 107:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(o[a-2],o[a]));break;case 108:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Class(o[a-3],o[a-1],o[a]));break;case 109:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 110:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 111:this.$=i.addLocationDataFn(s[a],s[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 112:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Call("super",o[a]));break;case 113:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Defer(o[a],n));break;case 114:this.$=i.addLocationDataFn(s[a],s[a])(!1);break;case 115:this.$=i.addLocationDataFn(s[a],s[a])(!0);break;case 116:this.$=i.addLocationDataFn(s[a-1],s[a])([]);break;case 117:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 118:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.Literal("this")));break;case 119:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.Literal("this")));break;case 120:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(i.addLocationDataFn(s[a-1])(new i.Literal("this")),[i.addLocationDataFn(s[a])(new i.Access(o[a]))],"this"));break;case 121:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Arr([]));break;case 122:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Arr(o[a-2]));break;case 123:this.$=i.addLocationDataFn(s[a],s[a])("inclusive");break;case 124:this.$=i.addLocationDataFn(s[a],s[a])("exclusive");break;case 125:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Range(o[a-3],o[a-1],o[a-2]));break;case 126:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Range(o[a-2],o[a],o[a-1]));break;case 127:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(o[a-1],null,o[a]));break;case 128:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(null,o[a],o[a-1]));break;case 129:this.$=i.addLocationDataFn(s[a],s[a])(new i.Range(null,null,o[a]));break;case 130:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 131:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 132:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 133:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 134:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 135:this.$=o[a];break;case 136:this.$=o[a];break;case 137:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 138:this.$=o[a];break;case 139:this.$=i.addLocationDataFn(s[a-2],s[a])([].concat(o[a-2],o[a]));break;case 140:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Try(o[a]));break;case 141:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Try(o[a-1],o[a][0],o[a][1]));break;case 142:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Try(o[a-2],null,null,o[a]));break;case 143: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 144:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-1],o[a]]);break;case 145:this.$=i.addLocationDataFn(s[a-2],s[a])([i.addLocationDataFn(s[a-1])(new i.Value(o[a-1])),o[a]]);break;case 146:this.$=i.addLocationDataFn(s[a-1],s[a])([null,o[a]]);break;case 147:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Throw(o[a]));break;case 148:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Parens(o[a-1]));break;case 149:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Parens(o[a-2]));break;case 150:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a]));break;case 151:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{guard:o[a]}));break;case 152:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a],{invert:!0}));break;case 153:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{invert:!0,guard:o[a]}));break;case 154:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].addBody(o[a]));break;case 155:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 156:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 157:this.$=i.addLocationDataFn(s[a],s[a])(o[a]);break;case 158:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.Literal("true"))).addBody(o[a]));break;case 159:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(s[a])(i.Block.wrap([o[a]]))));break;case 160:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 161:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 162:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a],o[a-1]));break;case 163:this.$=i.addLocationDataFn(s[a-1],s[a])({source:i.addLocationDataFn(s[a])(new i.Value(o[a]))});break;case 164: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 165:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a]);break;case 166:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return o[a].own=!0,o[a]}());break;case 167:this.$=o[a];break;case 168:this.$=o[a];break;case 169:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 170:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 171:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 172:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-2],o[a]]);break;case 173:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a]});break;case 174:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a],object:!0});break;case 175:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a]});break;case 176:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a],object:!0});break;case 177:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],step:o[a]});break;case 178:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],guard:o[a-2],step:o[a]});break;case 179:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],step:o[a-2],guard:o[a]});break;case 180:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Switch(o[a-3],o[a-1]));break;case 181:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.Switch(o[a-5],o[a-3],o[a-1]));break;case 182:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Switch(null,o[a-1]));break;case 183:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.Switch(null,o[a-3],o[a-1]));break;case 184:this.$=o[a];break;case 185:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].concat(o[a]));break;case 186:this.$=i.addLocationDataFn(s[a-2],s[a])([[o[a-1],o[a]]]);break;case 187:this.$=i.addLocationDataFn(s[a-3],s[a])([[o[a-2],o[a-1]]]);break;case 188:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 189: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 190:this.$=o[a];break;case 191:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].addElse(o[a]));break;case 192: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 193: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 194:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 195:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 196:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("-",o[a]));break;case 197:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("+",o[a]));break;case 198:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 199:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 200:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-2].concat(o[a-1]),o[a]));break;case 201:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a]));break;case 202:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a]));break;case 203:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a-1],null,!0));break;case 205:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Existence(o[a-1]));break;case 206:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("+",o[a-2],o[a]));break;case 207:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("-",o[a-2],o[a]));break;case 208:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 209:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 210:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 211:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 212:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 213: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 214:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a],o[a-1]));break;case 215:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1],o[a-3]));break;case 216:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a],o[a-2]));break;case 217: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:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[3]},{1:[2,2],6:[1,78]},{1:[2,3],6:[2,3],29:[2,3],106:[2,3]},{1:[2,6],6:[2,6],29:[2,6],106:[2,6],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,7],6:[2,7],29:[2,7],106:[2,7],107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,14],6:[2,14],28:[2,14],29:[2,14],52:[2,14],57:[2,14],60:[2,14],65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,14],77:[1,103],81:[2,14],84:94,88:[1,96],89:[2,114],90:[2,14],95:[2,14],97:[2,14],106:[2,14],108:[2,14],109:[2,14],110:[2,14],114:[2,14],122:[2,14],130:[2,14],133:[2,14],134:[2,14],139:[2,14],140:[2,14],141:[2,14],142:[2,14],143:[2,14],144:[2,14],145:[2,14]},{1:[2,15],6:[2,15],28:[2,15],29:[2,15],52:[2,15],57:[2,15],60:[2,15],65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,15],77:[1,103],81:[2,15],84:104,88:[1,96],89:[2,114],90:[2,15],95:[2,15],97:[2,15],106:[2,15],108:[2,15],109:[2,15],110:[2,15],114:[2,15],122:[2,15],130:[2,15],133:[2,15],134:[2,15],139:[2,15],140:[2,15],141:[2,15],142:[2,15],143:[2,15],144:[2,15],145:[2,15]},{1:[2,16],6:[2,16],28:[2,16],29:[2,16],52:[2,16],57:[2,16],60:[2,16],76:[2,16],81:[2,16],90:[2,16],95:[2,16],97:[2,16],106:[2,16],108:[2,16],109:[2,16],110:[2,16],114:[2,16],122:[2,16],130:[2,16],133:[2,16],134:[2,16],139:[2,16],140:[2,16],141:[2,16],142:[2,16],143:[2,16],144:[2,16],145:[2,16]},{1:[2,17],6:[2,17],28:[2,17],29:[2,17],52:[2,17],57:[2,17],60:[2,17],76:[2,17],81:[2,17],90:[2,17],95:[2,17],97:[2,17],106:[2,17],108:[2,17],109:[2,17],110:[2,17],114:[2,17],122:[2,17],130:[2,17],133:[2,17],134:[2,17],139:[2,17],140:[2,17],141:[2,17],142:[2,17],143:[2,17],144:[2,17],145:[2,17]},{1:[2,18],6:[2,18],28:[2,18],29:[2,18],52:[2,18],57:[2,18],60:[2,18],76:[2,18],81:[2,18],90:[2,18],95:[2,18],97:[2,18],106:[2,18],108:[2,18],109:[2,18],110:[2,18],114:[2,18],122:[2,18],130:[2,18],133:[2,18],134:[2,18],139:[2,18],140:[2,18],141:[2,18],142:[2,18],143:[2,18],144:[2,18],145:[2,18]},{1:[2,19],6:[2,19],28:[2,19],29:[2,19],52:[2,19],57:[2,19],60:[2,19],76:[2,19],81:[2,19],90:[2,19],95:[2,19],97:[2,19],106:[2,19],108:[2,19],109:[2,19],110:[2,19],114:[2,19],122:[2,19],130:[2,19],133:[2,19],134:[2,19],139:[2,19],140:[2,19],141:[2,19],142:[2,19],143:[2,19],144:[2,19],145:[2,19]},{1:[2,20],6:[2,20],28:[2,20],29:[2,20],52:[2,20],57:[2,20],60:[2,20],76:[2,20],81:[2,20],90:[2,20],95:[2,20],97:[2,20],106:[2,20],108:[2,20],109:[2,20],110:[2,20],114:[2,20],122:[2,20],130:[2,20],133:[2,20],134:[2,20],139:[2,20],140:[2,20],141:[2,20],142:[2,20],143:[2,20],144:[2,20],145:[2,20]},{1:[2,21],6:[2,21],28:[2,21],29:[2,21],52:[2,21],57:[2,21],60:[2,21],76:[2,21],81:[2,21],90:[2,21],95:[2,21],97:[2,21],106:[2,21],108:[2,21],109:[2,21],110:[2,21],114:[2,21],122:[2,21],130:[2,21],133:[2,21],134:[2,21],139:[2,21],140:[2,21],141:[2,21],142:[2,21],143:[2,21],144:[2,21],145:[2,21]},{1:[2,22],6:[2,22],28:[2,22],29:[2,22],52:[2,22],57:[2,22],60:[2,22],76:[2,22],81:[2,22],90:[2,22],95:[2,22],97:[2,22],106:[2,22],108:[2,22],109:[2,22],110:[2,22],114:[2,22],122:[2,22],130:[2,22],133:[2,22],134:[2,22],139:[2,22],140:[2,22],141:[2,22],142:[2,22],143:[2,22],144:[2,22],145:[2,22]},{1:[2,23],6:[2,23],28:[2,23],29:[2,23],52:[2,23],57:[2,23],60:[2,23],76:[2,23],81:[2,23],90:[2,23],95:[2,23],97:[2,23],106:[2,23],108:[2,23],109:[2,23],110:[2,23],114:[2,23],122:[2,23],130:[2,23],133:[2,23],134:[2,23],139:[2,23],140:[2,23],141:[2,23],142:[2,23],143:[2,23],144:[2,23],145:[2,23]},{1:[2,24],6:[2,24],28:[2,24],29:[2,24],52:[2,24],57:[2,24],60:[2,24],76:[2,24],81:[2,24],90:[2,24],95:[2,24],97:[2,24],106:[2,24],108:[2,24],109:[2,24],110:[2,24],114:[2,24],122:[2,24],130:[2,24],133:[2,24],134:[2,24],139:[2,24],140:[2,24],141:[2,24],142:[2,24],143:[2,24],144:[2,24],145:[2,24]},{1:[2,25],6:[2,25],28:[2,25],29:[2,25],52:[2,25],57:[2,25],60:[2,25],76:[2,25],81:[2,25],90:[2,25],95:[2,25],97:[2,25],106:[2,25],108:[2,25],109:[2,25],110:[2,25],114:[2,25],122:[2,25],130:[2,25],133:[2,25],134:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25],143:[2,25],144:[2,25],145:[2,25]},{1:[2,26],6:[2,26],28:[2,26],29:[2,26],52:[2,26],57:[2,26],60:[2,26],76:[2,26],81:[2,26],90:[2,26],95:[2,26],97:[2,26],106:[2,26],108:[2,26],109:[2,26],110:[2,26],114:[2,26],122:[2,26],130:[2,26],133:[2,26],134:[2,26],139:[2,26],140:[2,26],141:[2,26],142:[2,26],143:[2,26],144:[2,26],145:[2,26]},{1:[2,8],6:[2,8],28:[2,8],29:[2,8],52:[2,8],57:[2,8],60:[2,8],76:[2,8],81:[2,8],90:[2,8],95:[2,8],97:[2,8],106:[2,8],108:[2,8],109:[2,8],110:[2,8],114:[2,8],122:[2,8],130:[2,8],133:[2,8],134:[2,8],139:[2,8],140:[2,8],141:[2,8],142:[2,8],143:[2,8],144:[2,8],145:[2,8]},{1:[2,9],6:[2,9],28:[2,9],29:[2,9],52:[2,9],57:[2,9],60:[2,9],76:[2,9],81:[2,9],90:[2,9],95:[2,9],97:[2,9],106:[2,9],108:[2,9],109:[2,9],110:[2,9],114:[2,9],122:[2,9],130:[2,9],133:[2,9],134:[2,9],139:[2,9],140:[2,9],141:[2,9],142:[2,9],143:[2,9],144:[2,9],145:[2,9]},{1:[2,10],6:[2,10],28:[2,10],29:[2,10],52:[2,10],57:[2,10],60:[2,10],76:[2,10],81:[2,10],90:[2,10],95:[2,10],97:[2,10],106:[2,10],108:[2,10],109:[2,10],110:[2,10],114:[2,10],122:[2,10],130:[2,10],133:[2,10],134:[2,10],139:[2,10],140:[2,10],141:[2,10],142:[2,10],143:[2,10],144:[2,10],145:[2,10]},{1:[2,11],6:[2,11],28:[2,11],29:[2,11],52:[2,11],57:[2,11],60:[2,11],76:[2,11],81:[2,11],90:[2,11],95:[2,11],97:[2,11],106:[2,11],108:[2,11],109:[2,11],110:[2,11],114:[2,11],122:[2,11],130:[2,11],133:[2,11],134:[2,11],139:[2,11],140:[2,11],141:[2,11],142:[2,11],143:[2,11],144:[2,11],145:[2,11]},{1:[2,79],6:[2,79],28:[2,79],29:[2,79],43:[1,106],52:[2,79],57:[2,79],60:[2,79],69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],76:[2,79],77:[2,79],81:[2,79],88:[2,79],89:[2,79],90:[2,79],95:[2,79],97:[2,79],106:[2,79],108:[2,79],109:[2,79],110:[2,79],114:[2,79],122:[2,79],130:[2,79],133:[2,79],134:[2,79],139:[2,79],140:[2,79],141:[2,79],142:[2,79],143:[2,79],144:[2,79],145:[2,79]},{1:[2,80],6:[2,80],28:[2,80],29:[2,80],52:[2,80],57:[2,80],60:[2,80],69:[2,80],70:[2,80],71:[2,80],72:[2,80],74:[2,80],76:[2,80],77:[2,80],81:[2,80],88:[2,80],89:[2,80],90:[2,80],95:[2,80],97:[2,80],106:[2,80],108:[2,80],109:[2,80],110:[2,80],114:[2,80],122:[2,80],130:[2,80],133:[2,80],134:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80],143:[2,80],144:[2,80],145:[2,80]},{1:[2,81],6:[2,81],28:[2,81],29:[2,81],52:[2,81],57:[2,81],60:[2,81],69:[2,81],70:[2,81],71:[2,81],72:[2,81],74:[2,81],76:[2,81],77:[2,81],81:[2,81],88:[2,81],89:[2,81],90:[2,81],95:[2,81],97:[2,81],106:[2,81],108:[2,81],109:[2,81],110:[2,81],114:[2,81],122:[2,81],130:[2,81],133:[2,81],134:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81],143:[2,81],144:[2,81],145:[2,81]},{1:[2,82],6:[2,82],28:[2,82],29:[2,82],52:[2,82],57:[2,82],60:[2,82],69:[2,82],70:[2,82],71:[2,82],72:[2,82],74:[2,82],76:[2,82],77:[2,82],81:[2,82],88:[2,82],89:[2,82],90:[2,82],95:[2,82],97:[2,82],106:[2,82],108:[2,82],109:[2,82],110:[2,82],114:[2,82],122:[2,82],130:[2,82],133:[2,82],134:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82],143:[2,82],144:[2,82],145:[2,82]},{1:[2,83],6:[2,83],28:[2,83],29:[2,83],52:[2,83],57:[2,83],60:[2,83],69:[2,83],70:[2,83],71:[2,83],72:[2,83],74:[2,83],76:[2,83],77:[2,83],81:[2,83],88:[2,83],89:[2,83],90:[2,83],95:[2,83],97:[2,83],106:[2,83],108:[2,83],109:[2,83],110:[2,83],114:[2,83],122:[2,83],130:[2,83],133:[2,83],134:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83],143:[2,83],144:[2,83],145:[2,83]},{1:[2,111],6:[2,111],28:[2,111],29:[2,111],52:[2,111],57:[2,111],60:[2,111],69:[2,111],70:[2,111],71:[2,111],72:[2,111],74:[2,111],76:[2,111],77:[2,111],81:[2,111],85:107,88:[2,111],89:[1,108],90:[2,111],95:[2,111],97:[2,111],106:[2,111],108:[2,111],109:[2,111],110:[2,111],114:[2,111],122:[2,111],130:[2,111],133:[2,111],134:[2,111],139:[2,111],140:[2,111],141:[2,111],142:[2,111],143:[2,111],144:[2,111],145:[2,111]},{6:[2,58],28:[2,58],30:113,31:[1,77],47:114,51:109,52:[2,58],57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{14:119,28:[1,120]},{7:121,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:123,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:124,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:125,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:127,8:126,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],136:[1,128],137:[1,36],138:[1,37]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:129,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:133,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{1:[2,76],6:[2,76],28:[2,76],29:[2,76],43:[2,76],52:[2,76],57:[2,76],60:[2,76],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,76],77:[2,76],81:[2,76],83:[1,137],88:[2,76],89:[2,76],90:[2,76],95:[2,76],97:[2,76],106:[2,76],108:[2,76],109:[2,76],110:[2,76],114:[2,76],122:[2,76],130:[2,76],133:[2,76],134:[2,76],137:[1,134],138:[1,135],139:[2,76],140:[2,76],141:[2,76],142:[2,76],143:[2,76],144:[2,76],145:[2,76],146:[1,136]},{1:[2,190],6:[2,190],28:[2,190],29:[2,190],52:[2,190],57:[2,190],60:[2,190],76:[2,190],81:[2,190],90:[2,190],95:[2,190],97:[2,190],106:[2,190],108:[2,190],109:[2,190],110:[2,190],114:[2,190],122:[2,190],125:[1,138],130:[2,190],133:[2,190],134:[2,190],139:[2,190],140:[2,190],141:[2,190],142:[2,190],143:[2,190],144:[2,190],145:[2,190]},{14:139,28:[1,120]},{14:140,28:[1,120]},{1:[2,157],6:[2,157],28:[2,157],29:[2,157],52:[2,157],57:[2,157],60:[2,157],76:[2,157],81:[2,157],90:[2,157],95:[2,157],97:[2,157],106:[2,157],108:[2,157],109:[2,157],110:[2,157],114:[2,157],122:[2,157],130:[2,157],133:[2,157],134:[2,157],139:[2,157],140:[2,157],141:[2,157],142:[2,157],143:[2,157],144:[2,157],145:[2,157]},{14:141,28:[1,120]},{7:142,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,143],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,101],6:[2,101],14:144,15:130,16:131,28:[1,120],29:[2,101],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,52:[2,101],57:[2,101],60:[2,101],61:51,62:52,64:146,66:25,67:26,68:27,76:[2,101],79:[1,74],81:[2,101],83:[1,145],86:[1,28],90:[2,101],92:[1,62],93:[1,63],94:[1,61],95:[2,101],97:[2,101],105:[1,60],106:[2,101],108:[2,101],109:[2,101],110:[2,101],114:[2,101],122:[2,101],130:[2,101],133:[2,101],134:[2,101],139:[2,101],140:[2,101],141:[2,101],142:[2,101],143:[2,101],144:[2,101],145:[2,101]},{7:147,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{85:148,89:[1,108]},{1:[2,50],6:[2,50],7:149,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,50],29:[2,50],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],52:[2,50],53:30,54:[1,64],55:[1,65],57:[2,50],60:[2,50],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,50],79:[1,74],81:[2,50],82:[1,45],86:[1,28],87:[1,47],90:[2,50],92:[1,62],93:[1,63],94:[1,61],95:[2,50],97:[2,50],100:[1,40],104:[1,46],105:[1,60],106:[2,50],107:41,108:[2,50],109:[2,50],110:[2,50],111:42,112:[1,71],113:43,114:[2,50],115:73,122:[2,50],123:[1,44],128:39,129:[1,68],130:[2,50],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37],139:[2,50],140:[2,50],141:[2,50],142:[2,50],143:[2,50],144:[2,50],145:[2,50]},{1:[2,51],6:[2,51],28:[2,51],29:[2,51],52:[2,51],57:[2,51],60:[2,51],76:[2,51],81:[2,51],90:[2,51],95:[2,51],97:[2,51],106:[2,51],108:[2,51],109:[2,51],110:[2,51],114:[2,51],122:[2,51],130:[2,51],133:[2,51],134:[2,51],139:[2,51],140:[2,51],141:[2,51],142:[2,51],143:[2,51],144:[2,51],145:[2,51]},{7:151,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:150,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,77],6:[2,77],28:[2,77],29:[2,77],43:[2,77],52:[2,77],57:[2,77],60:[2,77],69:[2,77],70:[2,77],71:[2,77],72:[2,77],74:[2,77],76:[2,77],77:[2,77],81:[2,77],88:[2,77],89:[2,77],90:[2,77],95:[2,77],97:[2,77],106:[2,77],108:[2,77],109:[2,77],110:[2,77],114:[2,77],122:[2,77],130:[2,77],133:[2,77],134:[2,77],139:[2,77],140:[2,77],141:[2,77],142:[2,77],143:[2,77],144:[2,77],145:[2,77]},{1:[2,78],6:[2,78],28:[2,78],29:[2,78],43:[2,78],52:[2,78],57:[2,78],60:[2,78],69:[2,78],70:[2,78],71:[2,78],72:[2,78],74:[2,78],76:[2,78],77:[2,78],81:[2,78],88:[2,78],89:[2,78],90:[2,78],95:[2,78],97:[2,78],106:[2,78],108:[2,78],109:[2,78],110:[2,78],114:[2,78],122:[2,78],130:[2,78],133:[2,78],134:[2,78],139:[2,78],140:[2,78],141:[2,78],142:[2,78],143:[2,78],144:[2,78],145:[2,78]},{1:[2,32],6:[2,32],28:[2,32],29:[2,32],52:[2,32],57:[2,32],60:[2,32],69:[2,32],70:[2,32],71:[2,32],72:[2,32],74:[2,32],76:[2,32],77:[2,32],81:[2,32],88:[2,32],89:[2,32],90:[2,32],95:[2,32],97:[2,32],106:[2,32],108:[2,32],109:[2,32],110:[2,32],114:[2,32],122:[2,32],130:[2,32],133:[2,32],134:[2,32],139:[2,32],140:[2,32],141:[2,32],142:[2,32],143:[2,32],144:[2,32],145:[2,32]},{1:[2,33],6:[2,33],28:[2,33],29:[2,33],52:[2,33],57:[2,33],60:[2,33],69:[2,33],70:[2,33],71:[2,33],72:[2,33],74:[2,33],76:[2,33],77:[2,33],81:[2,33],88:[2,33],89:[2,33],90:[2,33],95:[2,33],97:[2,33],106:[2,33],108:[2,33],109:[2,33],110:[2,33],114:[2,33],122:[2,33],130:[2,33],133:[2,33],134:[2,33],139:[2,33],140:[2,33],141:[2,33],142:[2,33],143:[2,33],144:[2,33],145:[2,33]},{1:[2,34],6:[2,34],28:[2,34],29:[2,34],52:[2,34],57:[2,34],60:[2,34],69:[2,34],70:[2,34],71:[2,34],72:[2,34],74:[2,34],76:[2,34],77:[2,34],81:[2,34],88:[2,34],89:[2,34],90:[2,34],95:[2,34],97:[2,34],106:[2,34],108:[2,34],109:[2,34],110:[2,34],114:[2,34],122:[2,34],130:[2,34],133:[2,34],134:[2,34],139:[2,34],140:[2,34],141:[2,34],142:[2,34],143:[2,34],144:[2,34],145:[2,34]},{1:[2,35],6:[2,35],28:[2,35],29:[2,35],52:[2,35],57:[2,35],60:[2,35],69:[2,35],70:[2,35],71:[2,35],72:[2,35],74:[2,35],76:[2,35],77:[2,35],81:[2,35],88:[2,35],89:[2,35],90:[2,35],95:[2,35],97:[2,35],106:[2,35],108:[2,35],109:[2,35],110:[2,35],114:[2,35],122:[2,35],130:[2,35],133:[2,35],134:[2,35],139:[2,35],140:[2,35],141:[2,35],142:[2,35],143:[2,35],144:[2,35],145:[2,35]},{1:[2,36],6:[2,36],28:[2,36],29:[2,36],52:[2,36],57:[2,36],60:[2,36],69:[2,36],70:[2,36],71:[2,36],72:[2,36],74:[2,36],76:[2,36],77:[2,36],81:[2,36],88:[2,36],89:[2,36],90:[2,36],95:[2,36],97:[2,36],106:[2,36],108:[2,36],109:[2,36],110:[2,36],114:[2,36],122:[2,36],130:[2,36],133:[2,36],134:[2,36],139:[2,36],140:[2,36],141:[2,36],142:[2,36],143:[2,36],144:[2,36],145:[2,36]},{1:[2,37],6:[2,37],28:[2,37],29:[2,37],52:[2,37],57:[2,37],60:[2,37],69:[2,37],70:[2,37],71:[2,37],72:[2,37],74:[2,37],76:[2,37],77:[2,37],81:[2,37],88:[2,37],89:[2,37],90:[2,37],95:[2,37],97:[2,37],106:[2,37],108:[2,37],109:[2,37],110:[2,37],114:[2,37],122:[2,37],130:[2,37],133:[2,37],134:[2,37],139:[2,37],140:[2,37],141:[2,37],142:[2,37],143:[2,37],144:[2,37],145:[2,37]},{1:[2,38],6:[2,38],28:[2,38],29:[2,38],52:[2,38],57:[2,38],60:[2,38],69:[2,38],70:[2,38],71:[2,38],72:[2,38],74:[2,38],76:[2,38],77:[2,38],81:[2,38],88:[2,38],89:[2,38],90:[2,38],95:[2,38],97:[2,38],106:[2,38],108:[2,38],109:[2,38],110:[2,38],114:[2,38],122:[2,38],130:[2,38],133:[2,38],134:[2,38],139:[2,38],140:[2,38],141:[2,38],142:[2,38],143:[2,38],144:[2,38],145:[2,38]},{4:152,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,153],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:154,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,118],6:[2,118],28:[2,118],29:[2,118],52:[2,118],57:[2,118],60:[2,118],69:[2,118],70:[2,118],71:[2,118],72:[2,118],74:[2,118],76:[2,118],77:[2,118],81:[2,118],88:[2,118],89:[2,118],90:[2,118],95:[2,118],97:[2,118],106:[2,118],108:[2,118],109:[2,118],110:[2,118],114:[2,118],122:[2,118],130:[2,118],133:[2,118],134:[2,118],139:[2,118],140:[2,118],141:[2,118],142:[2,118],143:[2,118],144:[2,118],145:[2,118]},{1:[2,119],6:[2,119],28:[2,119],29:[2,119],30:161,31:[1,77],52:[2,119],57:[2,119],60:[2,119],69:[2,119],70:[2,119],71:[2,119],72:[2,119],74:[2,119],76:[2,119],77:[2,119],81:[2,119],88:[2,119],89:[2,119],90:[2,119],95:[2,119],97:[2,119],106:[2,119],108:[2,119],109:[2,119],110:[2,119],114:[2,119],122:[2,119],130:[2,119],133:[2,119],134:[2,119],139:[2,119],140:[2,119],141:[2,119],142:[2,119],143:[2,119],144:[2,119],145:[2,119]},{28:[2,54]},{28:[2,55]},{1:[2,72],6:[2,72],28:[2,72],29:[2,72],43:[2,72],52:[2,72],57:[2,72],60:[2,72],69:[2,72],70:[2,72],71:[2,72],72:[2,72],74:[2,72],76:[2,72],77:[2,72],81:[2,72],83:[2,72],88:[2,72],89:[2,72],90:[2,72],95:[2,72],97:[2,72],106:[2,72],108:[2,72],109:[2,72],110:[2,72],114:[2,72],122:[2,72],130:[2,72],133:[2,72],134:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[2,72],143:[2,72],144:[2,72],145:[2,72],146:[2,72]},{1:[2,75],6:[2,75],28:[2,75],29:[2,75],43:[2,75],52:[2,75],57:[2,75],60:[2,75],69:[2,75],70:[2,75],71:[2,75],72:[2,75],74:[2,75],76:[2,75],77:[2,75],81:[2,75],83:[2,75],88:[2,75],89:[2,75],90:[2,75],95:[2,75],97:[2,75],106:[2,75],108:[2,75],109:[2,75],110:[2,75],114:[2,75],122:[2,75],130:[2,75],133:[2,75],134:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75],142:[2,75],143:[2,75],144:[2,75],145:[2,75],146:[2,75]},{7:162,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:163,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:164,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:166,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:165,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{30:171,31:[1,77],47:172,61:173,62:174,67:167,79:[1,74],93:[1,117],94:[1,61],117:168,118:[1,169],119:170},{116:175,120:[1,176],121:[1,177]},{6:[2,96],10:181,28:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:178,81:[2,96],93:[1,117]},{1:[2,30],6:[2,30],28:[2,30],29:[2,30],46:[2,30],52:[2,30],57:[2,30],60:[2,30],69:[2,30],70:[2,30],71:[2,30],72:[2,30],74:[2,30],76:[2,30],77:[2,30],81:[2,30],88:[2,30],89:[2,30],90:[2,30],95:[2,30],97:[2,30],106:[2,30],108:[2,30],109:[2,30],110:[2,30],114:[2,30],122:[2,30],130:[2,30],133:[2,30],134:[2,30],139:[2,30],140:[2,30],141:[2,30],142:[2,30],143:[2,30],144:[2,30],145:[2,30]},{1:[2,31],6:[2,31],28:[2,31],29:[2,31],46:[2,31],52:[2,31],57:[2,31],60:[2,31],69:[2,31],70:[2,31],71:[2,31],72:[2,31],74:[2,31],76:[2,31],77:[2,31],81:[2,31],88:[2,31],89:[2,31],90:[2,31],95:[2,31],97:[2,31],106:[2,31],108:[2,31],109:[2,31],110:[2,31],114:[2,31],122:[2,31],130:[2,31],133:[2,31],134:[2,31],139:[2,31],140:[2,31],141:[2,31],142:[2,31],143:[2,31],144:[2,31],145:[2,31]},{1:[2,29],6:[2,29],28:[2,29],29:[2,29],43:[2,29],46:[2,29],52:[2,29],57:[2,29],60:[2,29],69:[2,29],70:[2,29],71:[2,29],72:[2,29],74:[2,29],76:[2,29],77:[2,29],81:[2,29],83:[2,29],88:[2,29],89:[2,29],90:[2,29],95:[2,29],97:[2,29],106:[2,29],108:[2,29],109:[2,29],110:[2,29],114:[2,29],120:[2,29],121:[2,29],122:[2,29],130:[2,29],133:[2,29],134:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29],142:[2,29],143:[2,29],144:[2,29],145:[2,29],146:[2,29]},{1:[2,5],5:185,6:[2,5],7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[2,5],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],106:[2,5],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,205],6:[2,205],28:[2,205],29:[2,205],52:[2,205],57:[2,205],60:[2,205],76:[2,205],81:[2,205],90:[2,205],95:[2,205],97:[2,205],106:[2,205],108:[2,205],109:[2,205],110:[2,205],114:[2,205],122:[2,205],130:[2,205],133:[2,205],134:[2,205],139:[2,205],140:[2,205],141:[2,205],142:[2,205],143:[2,205],144:[2,205],145:[2,205]},{7:186,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:187,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:188,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:189,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:190,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:191,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:192,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:193,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:194,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,156],6:[2,156],28:[2,156],29:[2,156],52:[2,156],57:[2,156],60:[2,156],76:[2,156],81:[2,156],90:[2,156],95:[2,156],97:[2,156],106:[2,156],108:[2,156],109:[2,156],110:[2,156],114:[2,156],122:[2,156],130:[2,156],133:[2,156],134:[2,156],139:[2,156],140:[2,156],141:[2,156],142:[2,156],143:[2,156],144:[2,156],145:[2,156]},{1:[2,161],6:[2,161],28:[2,161],29:[2,161],52:[2,161],57:[2,161],60:[2,161],76:[2,161],81:[2,161],90:[2,161],95:[2,161],97:[2,161],106:[2,161],108:[2,161],109:[2,161],110:[2,161],114:[2,161],122:[2,161],130:[2,161],133:[2,161],134:[2,161],139:[2,161],140:[2,161],141:[2,161],142:[2,161],143:[2,161],144:[2,161],145:[2,161]},{7:195,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,155],6:[2,155],28:[2,155],29:[2,155],52:[2,155],57:[2,155],60:[2,155],76:[2,155],81:[2,155],90:[2,155],95:[2,155],97:[2,155],106:[2,155],108:[2,155],109:[2,155],110:[2,155],114:[2,155],122:[2,155],130:[2,155],133:[2,155],134:[2,155],139:[2,155],140:[2,155],141:[2,155],142:[2,155],143:[2,155],144:[2,155],145:[2,155]},{1:[2,160],6:[2,160],28:[2,160],29:[2,160],52:[2,160],57:[2,160],60:[2,160],76:[2,160],81:[2,160],90:[2,160],95:[2,160],97:[2,160],106:[2,160],108:[2,160],109:[2,160],110:[2,160],114:[2,160],122:[2,160],130:[2,160],133:[2,160],134:[2,160],139:[2,160],140:[2,160],141:[2,160],142:[2,160],143:[2,160],144:[2,160],145:[2,160]},{85:196,89:[1,108]},{1:[2,73],6:[2,73],28:[2,73],29:[2,73],43:[2,73],52:[2,73],57:[2,73],60:[2,73],69:[2,73],70:[2,73],71:[2,73],72:[2,73],74:[2,73],76:[2,73],77:[2,73],81:[2,73],83:[2,73],88:[2,73],89:[2,73],90:[2,73],95:[2,73],97:[2,73],106:[2,73],108:[2,73],109:[2,73],110:[2,73],114:[2,73],122:[2,73],130:[2,73],133:[2,73],134:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73],142:[2,73],143:[2,73],144:[2,73],145:[2,73],146:[2,73]},{89:[2,115]},{27:198,30:197,31:[1,77],87:[1,47]},{30:199,31:[1,77]},{1:[2,89],6:[2,89],28:[2,89],29:[2,89],30:200,31:[1,77],43:[2,89],52:[2,89],57:[2,89],60:[2,89],69:[2,89],70:[2,89],71:[2,89],72:[2,89],74:[2,89],76:[2,89],77:[2,89],81:[2,89],83:[2,89],88:[2,89],89:[2,89],90:[2,89],95:[2,89],97:[2,89],106:[2,89],108:[2,89],109:[2,89],110:[2,89],114:[2,89],122:[2,89],130:[2,89],133:[2,89],134:[2,89],137:[2,89],138:[2,89],139:[2,89],140:[2,89],141:[2,89],142:[2,89],143:[2,89],144:[2,89],145:[2,89],146:[2,89]},{30:201,31:[1,77]},{1:[2,90],6:[2,90],28:[2,90],29:[2,90],43:[2,90],52:[2,90],57:[2,90],60:[2,90],69:[2,90],70:[2,90],71:[2,90],72:[2,90],74:[2,90],76:[2,90],77:[2,90],81:[2,90],83:[2,90],88:[2,90],89:[2,90],90:[2,90],95:[2,90],97:[2,90],106:[2,90],108:[2,90],109:[2,90],110:[2,90],114:[2,90],122:[2,90],130:[2,90],133:[2,90],134:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90],142:[2,90],143:[2,90],144:[2,90],145:[2,90],146:[2,90]},{7:203,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,207],61:51,62:52,64:38,66:25,67:26,68:27,75:202,78:204,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],96:205,97:[1,206],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{73:208,74:[1,102],77:[1,103]},{85:209,89:[1,108]},{1:[2,74],6:[2,74],28:[2,74],29:[2,74],43:[2,74],52:[2,74],57:[2,74],60:[2,74],69:[2,74],70:[2,74],71:[2,74],72:[2,74],74:[2,74],76:[2,74],77:[2,74],81:[2,74],83:[2,74],88:[2,74],89:[2,74],90:[2,74],95:[2,74],97:[2,74],106:[2,74],108:[2,74],109:[2,74],110:[2,74],114:[2,74],122:[2,74],130:[2,74],133:[2,74],134:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74],142:[2,74],143:[2,74],144:[2,74],145:[2,74],146:[2,74]},{6:[1,211],7:210,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,212],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,112],6:[2,112],28:[2,112],29:[2,112],52:[2,112],57:[2,112],60:[2,112],69:[2,112],70:[2,112],71:[2,112],72:[2,112],74:[2,112],76:[2,112],77:[2,112],81:[2,112],88:[2,112],89:[2,112],90:[2,112],95:[2,112],97:[2,112],106:[2,112],108:[2,112],109:[2,112],110:[2,112],114:[2,112],122:[2,112],130:[2,112],133:[2,112],134:[2,112],139:[2,112],140:[2,112],141:[2,112],142:[2,112],143:[2,112],144:[2,112],145:[2,112]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[1,213],91:214,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],52:[1,216],56:218,57:[1,217]},{6:[2,59],28:[2,59],29:[2,59],52:[2,59],57:[2,59]},{6:[2,63],28:[2,63],29:[2,63],43:[1,220],52:[2,63],57:[2,63],60:[1,219]},{6:[2,66],28:[2,66],29:[2,66],52:[2,66],57:[2,66]},{6:[2,67],28:[2,67],29:[2,67],43:[2,67],52:[2,67],57:[2,67],60:[2,67]},{6:[2,68],28:[2,68],29:[2,68],43:[2,68],52:[2,68],57:[2,68],60:[2,68]},{6:[2,69],28:[2,69],29:[2,69],43:[2,69],52:[2,69],57:[2,69],60:[2,69]},{6:[2,70],28:[2,70],29:[2,70],43:[2,70],52:[2,70],57:[2,70],60:[2,70]},{30:161,31:[1,77]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,53],6:[2,53],28:[2,53],29:[2,53],52:[2,53],57:[2,53],60:[2,53],76:[2,53],81:[2,53],90:[2,53],95:[2,53],97:[2,53],106:[2,53],108:[2,53],109:[2,53],110:[2,53],114:[2,53],122:[2,53],130:[2,53],133:[2,53],134:[2,53],139:[2,53],140:[2,53],141:[2,53],142:[2,53],143:[2,53],144:[2,53],145:[2,53]},{4:222,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[1,221],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,194],6:[2,194],28:[2,194],29:[2,194],52:[2,194],57:[2,194],60:[2,194],76:[2,194],81:[2,194],90:[2,194],95:[2,194],97:[2,194],106:[2,194],107:89,108:[2,194],109:[2,194],110:[2,194],113:90,114:[2,194],115:73,122:[2,194],130:[2,194],133:[2,194],134:[2,194],139:[1,79],140:[2,194],141:[2,194],142:[2,194],143:[2,194],144:[2,194],145:[2,194]},{107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,195],6:[2,195],28:[2,195],29:[2,195],52:[2,195],57:[2,195],60:[2,195],76:[2,195],81:[2,195],90:[2,195],95:[2,195],97:[2,195],106:[2,195],107:89,108:[2,195],109:[2,195],110:[2,195],113:90,114:[2,195],115:73,122:[2,195],130:[2,195],133:[2,195],134:[2,195],139:[1,79],140:[2,195],141:[1,83],142:[2,195],143:[2,195],144:[2,195],145:[2,195]},{1:[2,196],6:[2,196],28:[2,196],29:[2,196],52:[2,196],57:[2,196],60:[2,196],76:[2,196],81:[2,196],90:[2,196],95:[2,196],97:[2,196],106:[2,196],107:89,108:[2,196],109:[2,196],110:[2,196],113:90,114:[2,196],115:73,122:[2,196],130:[2,196],133:[2,196],134:[2,196],139:[1,79],140:[2,196],141:[1,83],142:[2,196],143:[2,196],144:[2,196],145:[2,196]},{1:[2,197],6:[2,197],28:[2,197],29:[2,197],52:[2,197],57:[2,197],60:[2,197],76:[2,197],81:[2,197],90:[2,197],95:[2,197],97:[2,197],106:[2,197],107:89,108:[2,197],109:[2,197],110:[2,197],113:90,114:[2,197],115:73,122:[2,197],130:[2,197],133:[2,197],134:[2,197],139:[1,79],140:[2,197],141:[1,83],142:[2,197],143:[2,197],144:[2,197],145:[2,197]},{1:[2,198],6:[2,198],28:[2,198],29:[2,198],52:[2,198],57:[2,198],60:[2,198],76:[2,198],81:[2,198],90:[2,198],95:[2,198],97:[2,198],106:[2,198],107:92,108:[2,198],109:[2,198],110:[2,198],113:93,114:[2,198],115:73,122:[2,198],130:[2,198],133:[2,198],134:[2,198],139:[2,198],140:[2,198],141:[2,198],142:[2,198],143:[2,198],144:[2,198],145:[2,198]},{1:[2,199],6:[2,199],28:[2,199],29:[2,199],52:[2,199],57:[2,199],60:[2,199],76:[2,199],81:[2,199],90:[2,199],95:[2,199],97:[2,199],106:[2,199],107:89,108:[2,199],109:[2,199],110:[2,199],113:90,114:[2,199],115:73,122:[2,199],130:[2,199],133:[2,199],134:[2,199],139:[1,79],140:[2,199],141:[2,199],142:[2,199],143:[2,199],144:[2,199],145:[2,199]},{7:223,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,201],6:[2,201],28:[2,201],29:[2,201],52:[2,201],57:[2,201],60:[2,201],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,201],77:[2,76],81:[2,201],88:[2,76],89:[2,76],90:[2,201],95:[2,201],97:[2,201],106:[2,201],108:[2,201],109:[2,201],110:[2,201],114:[2,201],122:[2,201],130:[2,201],133:[2,201],134:[2,201],139:[2,201],140:[2,201],141:[2,201],142:[2,201],143:[2,201],144:[2,201],145:[2,201]},{65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:94,88:[1,96],89:[2,114]},{65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:104,88:[1,96],89:[2,114]},{69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],77:[2,79],88:[2,79],89:[2,79]},{1:[2,202],6:[2,202],28:[2,202],29:[2,202],52:[2,202],57:[2,202],60:[2,202],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,202],77:[2,76],81:[2,202],88:[2,76],89:[2,76],90:[2,202],95:[2,202],97:[2,202],106:[2,202],108:[2,202],109:[2,202],110:[2,202],114:[2,202],122:[2,202],130:[2,202],133:[2,202],134:[2,202],139:[2,202],140:[2,202],141:[2,202],142:[2,202],143:[2,202],144:[2,202],145:[2,202]},{1:[2,203],6:[2,203],28:[2,203],29:[2,203],52:[2,203],57:[2,203],60:[2,203],76:[2,203],81:[2,203],90:[2,203],95:[2,203],97:[2,203],106:[2,203],108:[2,203],109:[2,203],110:[2,203],114:[2,203],122:[2,203],130:[2,203],133:[2,203],134:[2,203],139:[2,203],140:[2,203],141:[2,203],142:[2,203],143:[2,203],144:[2,203],145:[2,203]},{1:[2,204],6:[2,204],28:[2,204],29:[2,204],52:[2,204],57:[2,204],60:[2,204],76:[2,204],81:[2,204],90:[2,204],95:[2,204],97:[2,204],106:[2,204],108:[2,204],109:[2,204],110:[2,204],114:[2,204],122:[2,204],130:[2,204],133:[2,204],134:[2,204],139:[2,204],140:[2,204],141:[2,204],142:[2,204],143:[2,204],144:[2,204],145:[2,204]},{6:[1,226],7:224,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,225],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:227,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{14:228,28:[1,120],129:[1,229]},{1:[2,140],6:[2,140],28:[2,140],29:[2,140],52:[2,140],57:[2,140],60:[2,140],76:[2,140],81:[2,140],90:[2,140],95:[2,140],97:[2,140],101:230,102:[1,231],103:[1,232],106:[2,140],108:[2,140],109:[2,140],110:[2,140],114:[2,140],122:[2,140],130:[2,140],133:[2,140],134:[2,140],139:[2,140],140:[2,140],141:[2,140],142:[2,140],143:[2,140],144:[2,140],145:[2,140]},{1:[2,154],6:[2,154],28:[2,154],29:[2,154],52:[2,154],57:[2,154],60:[2,154],76:[2,154],81:[2,154],90:[2,154],95:[2,154],97:[2,154],106:[2,154],108:[2,154],109:[2,154],110:[2,154],114:[2,154],122:[2,154],130:[2,154],133:[2,154],134:[2,154],139:[2,154],140:[2,154],141:[2,154],142:[2,154],143:[2,154],144:[2,154],145:[2,154]},{1:[2,162],6:[2,162],28:[2,162],29:[2,162],52:[2,162],57:[2,162],60:[2,162],76:[2,162],81:[2,162],90:[2,162],95:[2,162],97:[2,162],106:[2,162],108:[2,162],109:[2,162],110:[2,162],114:[2,162],122:[2,162],130:[2,162],133:[2,162],134:[2,162],139:[2,162],140:[2,162],141:[2,162],142:[2,162],143:[2,162],144:[2,162],145:[2,162]},{28:[1,233],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{124:234,126:235,127:[1,236]},{1:[2,102],6:[2,102],28:[2,102],29:[2,102],52:[2,102],57:[2,102],60:[2,102],76:[2,102],81:[2,102],90:[2,102],95:[2,102],97:[2,102],106:[2,102],108:[2,102],109:[2,102],110:[2,102],114:[2,102],122:[2,102],130:[2,102],133:[2,102],134:[2,102],139:[2,102],140:[2,102],141:[2,102],142:[2,102],143:[2,102],144:[2,102],145:[2,102]},{7:237,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,105],6:[2,105],14:238,28:[1,120],29:[2,105],52:[2,105],57:[2,105],60:[2,105],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,105],77:[2,76],81:[2,105],83:[1,239],88:[2,76],89:[2,76],90:[2,105],95:[2,105],97:[2,105],106:[2,105],108:[2,105],109:[2,105],110:[2,105],114:[2,105],122:[2,105],130:[2,105],133:[2,105],134:[2,105],139:[2,105],140:[2,105],141:[2,105],142:[2,105],143:[2,105],144:[2,105],145:[2,105]},{1:[2,147],6:[2,147],28:[2,147],29:[2,147],52:[2,147],57:[2,147],60:[2,147],76:[2,147],81:[2,147],90:[2,147],95:[2,147],97:[2,147],106:[2,147],107:89,108:[2,147],109:[2,147],110:[2,147],113:90,114:[2,147],115:73,122:[2,147],130:[2,147],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,113],6:[2,113],28:[2,113],29:[2,113],43:[2,113],52:[2,113],57:[2,113],60:[2,113],69:[2,113],70:[2,113],71:[2,113],72:[2,113],74:[2,113],76:[2,113],77:[2,113],81:[2,113],83:[2,113],88:[2,113],89:[2,113],90:[2,113],95:[2,113],97:[2,113],106:[2,113],108:[2,113],109:[2,113],110:[2,113],114:[2,113],122:[2,113],130:[2,113],133:[2,113],134:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113],142:[2,113],143:[2,113],144:[2,113],145:[2,113],146:[2,113]},{1:[2,49],6:[2,49],28:[2,49],29:[2,49],52:[2,49],57:[2,49],60:[2,49],76:[2,49],81:[2,49],90:[2,49],95:[2,49],97:[2,49],106:[2,49],107:89,108:[2,49],109:[2,49],110:[2,49],113:90,114:[2,49],115:73,122:[2,49],130:[2,49],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,12],6:[2,12],28:[2,12],29:[2,12],52:[2,12],57:[2,12],60:[2,12],76:[2,12],81:[2,12],90:[2,12],95:[2,12],97:[2,12],106:[2,12],108:[2,12],109:[2,12],110:[2,12],114:[2,12],122:[2,12],130:[2,12],133:[2,12],134:[2,12],139:[2,12],140:[2,12],141:[2,12],142:[2,12],143:[2,12],144:[2,12],145:[2,12]},{1:[2,13],6:[2,13],28:[2,13],29:[2,13],52:[2,13],57:[2,13],60:[2,13],76:[2,13],81:[2,13],90:[2,13],95:[2,13],97:[2,13],106:[2,13],107:89,108:[1,69],109:[2,13],110:[1,70],113:90,114:[1,72],115:73,122:[2,13],130:[2,13],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,78],106:[1,240]},{4:241,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,135],28:[2,135],57:[2,135],60:[1,243],95:[2,135],96:242,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,121],6:[2,121],28:[2,121],29:[2,121],43:[2,121],52:[2,121],57:[2,121],60:[2,121],69:[2,121],70:[2,121],71:[2,121],72:[2,121],74:[2,121],76:[2,121],77:[2,121],81:[2,121],88:[2,121],89:[2,121],90:[2,121],95:[2,121],97:[2,121],106:[2,121],108:[2,121],109:[2,121],110:[2,121],114:[2,121],120:[2,121],121:[2,121],122:[2,121],130:[2,121],133:[2,121],134:[2,121],139:[2,121],140:[2,121],141:[2,121],142:[2,121],143:[2,121],144:[2,121],145:[2,121]},{6:[2,56],28:[2,56],56:244,57:[1,245],95:[2,56]},{6:[2,130],28:[2,130],29:[2,130],57:[2,130],90:[2,130],95:[2,130]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:246,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,136],28:[2,136],29:[2,136],57:[2,136],90:[2,136],95:[2,136]},{6:[2,137],28:[2,137],29:[2,137],57:[2,137],90:[2,137],95:[2,137]},{1:[2,120],6:[2,120],28:[2,120],29:[2,120],43:[2,120],46:[2,120],52:[2,120],57:[2,120],60:[2,120],69:[2,120],70:[2,120],71:[2,120],72:[2,120],74:[2,120],76:[2,120],77:[2,120],81:[2,120],83:[2,120],88:[2,120],89:[2,120],90:[2,120],95:[2,120],97:[2,120],106:[2,120],108:[2,120],109:[2,120],110:[2,120],114:[2,120],120:[2,120],121:[2,120],122:[2,120],130:[2,120],133:[2,120],134:[2,120],137:[2,120],138:[2,120],139:[2,120],140:[2,120],141:[2,120],142:[2,120],143:[2,120],144:[2,120],145:[2,120],146:[2,120]},{14:247,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,150],6:[2,150],28:[2,150],29:[2,150],52:[2,150],57:[2,150],60:[2,150],76:[2,150],81:[2,150],90:[2,150],95:[2,150],97:[2,150],106:[2,150],107:89,108:[1,69],109:[1,248],110:[1,70],113:90,114:[1,72],115:73,122:[2,150],130:[2,150],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,152],6:[2,152],28:[2,152],29:[2,152],52:[2,152],57:[2,152],60:[2,152],76:[2,152],81:[2,152],90:[2,152],95:[2,152],97:[2,152],106:[2,152],107:89,108:[1,69],109:[1,249],110:[1,70],113:90,114:[1,72],115:73,122:[2,152],130:[2,152],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,158],6:[2,158],28:[2,158],29:[2,158],52:[2,158],57:[2,158],60:[2,158],76:[2,158],81:[2,158],90:[2,158],95:[2,158],97:[2,158],106:[2,158],108:[2,158],109:[2,158],110:[2,158],114:[2,158],122:[2,158],130:[2,158],133:[2,158],134:[2,158],139:[2,158],140:[2,158],141:[2,158],142:[2,158],143:[2,158],144:[2,158],145:[2,158]},{1:[2,159],6:[2,159],28:[2,159],29:[2,159],52:[2,159],57:[2,159],60:[2,159],76:[2,159],81:[2,159],90:[2,159],95:[2,159],97:[2,159],106:[2,159],107:89,108:[1,69],109:[2,159],110:[1,70],113:90,114:[1,72],115:73,122:[2,159],130:[2,159],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,163],6:[2,163],28:[2,163],29:[2,163],52:[2,163],57:[2,163],60:[2,163],76:[2,163],81:[2,163],90:[2,163],95:[2,163],97:[2,163],106:[2,163],108:[2,163],109:[2,163],110:[2,163],114:[2,163],122:[2,163],130:[2,163],133:[2,163],134:[2,163],139:[2,163],140:[2,163],141:[2,163],142:[2,163],143:[2,163],144:[2,163],145:[2,163]},{120:[2,165],121:[2,165]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],117:250,119:170},{57:[1,251],120:[2,171],121:[2,171]},{57:[2,167],120:[2,167],121:[2,167]},{57:[2,168],120:[2,168],121:[2,168]},{57:[2,169],120:[2,169],121:[2,169]},{57:[2,170],120:[2,170],121:[2,170]},{1:[2,164],6:[2,164],28:[2,164],29:[2,164],52:[2,164],57:[2,164],60:[2,164],76:[2,164],81:[2,164],90:[2,164],95:[2,164],97:[2,164],106:[2,164],108:[2,164],109:[2,164],110:[2,164],114:[2,164],122:[2,164],130:[2,164],133:[2,164],134:[2,164],139:[2,164],140:[2,164],141:[2,164],142:[2,164],143:[2,164],144:[2,164],145:[2,164]},{7:252,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:253,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],56:254,57:[1,255],81:[2,56]},{6:[2,97],28:[2,97],29:[2,97],57:[2,97],81:[2,97]},{6:[2,42],28:[2,42],29:[2,42],46:[1,256],57:[2,42],81:[2,42]},{6:[2,45],28:[2,45],29:[2,45],57:[2,45],81:[2,45]},{6:[2,46],28:[2,46],29:[2,46],46:[2,46],57:[2,46],81:[2,46]},{6:[2,47],28:[2,47],29:[2,47],46:[2,47],57:[2,47],81:[2,47]},{6:[2,48],28:[2,48],29:[2,48],46:[2,48],57:[2,48],81:[2,48]},{1:[2,4],6:[2,4],29:[2,4],106:[2,4]},{1:[2,206],6:[2,206],28:[2,206],29:[2,206],52:[2,206],57:[2,206],60:[2,206],76:[2,206],81:[2,206],90:[2,206],95:[2,206],97:[2,206],106:[2,206],107:89,108:[2,206],109:[2,206],110:[2,206],113:90,114:[2,206],115:73,122:[2,206],130:[2,206],133:[2,206],134:[2,206],139:[1,79],140:[1,82],141:[1,83],142:[2,206],143:[2,206],144:[2,206],145:[2,206]},{1:[2,207],6:[2,207],28:[2,207],29:[2,207],52:[2,207],57:[2,207],60:[2,207],76:[2,207],81:[2,207],90:[2,207],95:[2,207],97:[2,207],106:[2,207],107:89,108:[2,207],109:[2,207],110:[2,207],113:90,114:[2,207],115:73,122:[2,207],130:[2,207],133:[2,207],134:[2,207],139:[1,79],140:[1,82],141:[1,83],142:[2,207],143:[2,207],144:[2,207],145:[2,207]},{1:[2,208],6:[2,208],28:[2,208],29:[2,208],52:[2,208],57:[2,208],60:[2,208],76:[2,208],81:[2,208],90:[2,208],95:[2,208],97:[2,208],106:[2,208],107:89,108:[2,208],109:[2,208],110:[2,208],113:90,114:[2,208],115:73,122:[2,208],130:[2,208],133:[2,208],134:[2,208],139:[1,79],140:[2,208],141:[1,83],142:[2,208],143:[2,208],144:[2,208],145:[2,208]},{1:[2,209],6:[2,209],28:[2,209],29:[2,209],52:[2,209],57:[2,209],60:[2,209],76:[2,209],81:[2,209],90:[2,209],95:[2,209],97:[2,209],106:[2,209],107:89,108:[2,209],109:[2,209],110:[2,209],113:90,114:[2,209],115:73,122:[2,209],130:[2,209],133:[2,209],134:[2,209],139:[1,79],140:[2,209],141:[1,83],142:[2,209],143:[2,209],144:[2,209],145:[2,209]},{1:[2,210],6:[2,210],28:[2,210],29:[2,210],52:[2,210],57:[2,210],60:[2,210],76:[2,210],81:[2,210],90:[2,210],95:[2,210],97:[2,210],106:[2,210],107:89,108:[2,210],109:[2,210],110:[2,210],113:90,114:[2,210],115:73,122:[2,210],130:[2,210],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[2,210],143:[2,210],144:[2,210],145:[2,210]},{1:[2,211],6:[2,211],28:[2,211],29:[2,211],52:[2,211],57:[2,211],60:[2,211],76:[2,211],81:[2,211],90:[2,211],95:[2,211],97:[2,211],106:[2,211],107:89,108:[2,211],109:[2,211],110:[2,211],113:90,114:[2,211],115:73,122:[2,211],130:[2,211],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,211],144:[2,211],145:[1,87]},{1:[2,212],6:[2,212],28:[2,212],29:[2,212],52:[2,212],57:[2,212],60:[2,212],76:[2,212],81:[2,212],90:[2,212],95:[2,212],97:[2,212],106:[2,212],107:89,108:[2,212],109:[2,212],110:[2,212],113:90,114:[2,212],115:73,122:[2,212],130:[2,212],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[2,212],145:[1,87]},{1:[2,213],6:[2,213],28:[2,213],29:[2,213],52:[2,213],57:[2,213],60:[2,213],76:[2,213],81:[2,213],90:[2,213],95:[2,213],97:[2,213],106:[2,213],107:89,108:[2,213],109:[2,213],110:[2,213],113:90,114:[2,213],115:73,122:[2,213],130:[2,213],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,213],144:[2,213],145:[2,213]},{1:[2,193],6:[2,193],28:[2,193],29:[2,193],52:[2,193],57:[2,193],60:[2,193],76:[2,193],81:[2,193],90:[2,193],95:[2,193],97:[2,193],106:[2,193],107:89,108:[1,69],109:[2,193],110:[1,70],113:90,114:[1,72],115:73,122:[2,193],130:[2,193],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,192],6:[2,192],28:[2,192],29:[2,192],52:[2,192],57:[2,192],60:[2,192],76:[2,192],81:[2,192],90:[2,192],95:[2,192],97:[2,192],106:[2,192],107:89,108:[1,69],109:[2,192],110:[1,70],113:90,114:[1,72],115:73,122:[2,192],130:[2,192],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,109],6:[2,109],28:[2,109],29:[2,109],52:[2,109],57:[2,109],60:[2,109],69:[2,109],70:[2,109],71:[2,109],72:[2,109],74:[2,109],76:[2,109],77:[2,109],81:[2,109],88:[2,109],89:[2,109],90:[2,109],95:[2,109],97:[2,109],106:[2,109],108:[2,109],109:[2,109],110:[2,109],114:[2,109],122:[2,109],130:[2,109],133:[2,109],134:[2,109],139:[2,109],140:[2,109],141:[2,109],142:[2,109],143:[2,109],144:[2,109],145:[2,109]},{1:[2,84],6:[2,84],28:[2,84],29:[2,84],43:[2,84],52:[2,84],57:[2,84],60:[2,84],69:[2,84],70:[2,84],71:[2,84],72:[2,84],74:[2,84],76:[2,84],77:[2,84],81:[2,84],83:[2,84],88:[2,84],89:[2,84],90:[2,84],95:[2,84],97:[2,84],106:[2,84],108:[2,84],109:[2,84],110:[2,84],114:[2,84],122:[2,84],130:[2,84],133:[2,84],134:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84],143:[2,84],144:[2,84],145:[2,84],146:[2,84]},{1:[2,85],6:[2,85],28:[2,85],29:[2,85],43:[2,85],52:[2,85],57:[2,85],60:[2,85],69:[2,85],70:[2,85],71:[2,85],72:[2,85],74:[2,85],76:[2,85],77:[2,85],81:[2,85],83:[2,85],88:[2,85],89:[2,85],90:[2,85],95:[2,85],97:[2,85],106:[2,85],108:[2,85],109:[2,85],110:[2,85],114:[2,85],122:[2,85],130:[2,85],133:[2,85],134:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85],143:[2,85],144:[2,85],145:[2,85],146:[2,85]},{1:[2,86],6:[2,86],28:[2,86],29:[2,86],43:[2,86],52:[2,86],57:[2,86],60:[2,86],69:[2,86],70:[2,86],71:[2,86],72:[2,86],74:[2,86],76:[2,86],77:[2,86],81:[2,86],83:[2,86],88:[2,86],89:[2,86],90:[2,86],95:[2,86],97:[2,86],106:[2,86],108:[2,86],109:[2,86],110:[2,86],114:[2,86],122:[2,86],130:[2,86],133:[2,86],134:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86],143:[2,86],144:[2,86],145:[2,86],146:[2,86]},{1:[2,87],6:[2,87],28:[2,87],29:[2,87],43:[2,87],52:[2,87],57:[2,87],60:[2,87],69:[2,87],70:[2,87],71:[2,87],72:[2,87],74:[2,87],76:[2,87],77:[2,87],81:[2,87],83:[2,87],88:[2,87],89:[2,87],90:[2,87],95:[2,87],97:[2,87],106:[2,87],108:[2,87],109:[2,87],110:[2,87],114:[2,87],122:[2,87],130:[2,87],133:[2,87],134:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87],143:[2,87],144:[2,87],145:[2,87],146:[2,87]},{1:[2,88],6:[2,88],28:[2,88],29:[2,88],43:[2,88],52:[2,88],57:[2,88],60:[2,88],69:[2,88],70:[2,88],71:[2,88],72:[2,88],74:[2,88],76:[2,88],77:[2,88],81:[2,88],83:[2,88],88:[2,88],89:[2,88],90:[2,88],95:[2,88],97:[2,88],106:[2,88],108:[2,88],109:[2,88],110:[2,88],114:[2,88],122:[2,88],130:[2,88],133:[2,88],134:[2,88],137:[2,88],138:[2,88],139:[2,88],140:[2,88],141:[2,88],142:[2,88],143:[2,88],144:[2,88],145:[2,88],146:[2,88]},{76:[1,257]},{60:[1,207],76:[2,93],96:258,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{76:[2,94]},{7:259,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,129],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{11:[2,123],13:[2,123],31:[2,123],33:[2,123],34:[2,123],36:[2,123],37:[2,123],38:[2,123],39:[2,123],40:[2,123],41:[2,123],48:[2,123],49:[2,123],50:[2,123],54:[2,123],55:[2,123],76:[2,123],79:[2,123],82:[2,123],86:[2,123],87:[2,123],92:[2,123],93:[2,123],94:[2,123],100:[2,123],104:[2,123],105:[2,123],108:[2,123],110:[2,123],112:[2,123],114:[2,123],123:[2,123],129:[2,123],131:[2,123],132:[2,123],133:[2,123],134:[2,123],135:[2,123],137:[2,123],138:[2,123]},{11:[2,124],13:[2,124],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],76:[2,124],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{1:[2,92],6:[2,92],28:[2,92],29:[2,92],43:[2,92],52:[2,92],57:[2,92],60:[2,92],69:[2,92],70:[2,92],71:[2,92],72:[2,92],74:[2,92],76:[2,92],77:[2,92],81:[2,92],83:[2,92],88:[2,92],89:[2,92],90:[2,92],95:[2,92],97:[2,92],106:[2,92],108:[2,92],109:[2,92],110:[2,92],114:[2,92],122:[2,92],130:[2,92],133:[2,92],134:[2,92],137:[2,92],138:[2,92],139:[2,92],140:[2,92],141:[2,92],142:[2,92],143:[2,92],144:[2,92],145:[2,92],146:[2,92]},{1:[2,110],6:[2,110],28:[2,110],29:[2,110],52:[2,110],57:[2,110],60:[2,110],69:[2,110],70:[2,110],71:[2,110],72:[2,110],74:[2,110],76:[2,110],77:[2,110],81:[2,110],88:[2,110],89:[2,110],90:[2,110],95:[2,110],97:[2,110],106:[2,110],108:[2,110],109:[2,110],110:[2,110],114:[2,110],122:[2,110],130:[2,110],133:[2,110],134:[2,110],139:[2,110],140:[2,110],141:[2,110],142:[2,110],143:[2,110],144:[2,110],145:[2,110]},{1:[2,39],6:[2,39],28:[2,39],29:[2,39],52:[2,39],57:[2,39],60:[2,39],76:[2,39],81:[2,39],90:[2,39],95:[2,39],97:[2,39],106:[2,39],107:89,108:[2,39],109:[2,39],110:[2,39],113:90,114:[2,39],115:73,122:[2,39],130:[2,39],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:260,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:261,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,116],6:[2,116],28:[2,116],29:[2,116],43:[2,116],52:[2,116],57:[2,116],60:[2,116],69:[2,116],70:[2,116],71:[2,116],72:[2,116],74:[2,116],76:[2,116],77:[2,116],81:[2,116],83:[2,116],88:[2,116],89:[2,116],90:[2,116],95:[2,116],97:[2,116],106:[2,116],108:[2,116],109:[2,116],110:[2,116],114:[2,116],122:[2,116],130:[2,116],133:[2,116],134:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116],142:[2,116],143:[2,116],144:[2,116],145:[2,116],146:[2,116]},{6:[2,56],28:[2,56],56:262,57:[1,245],90:[2,56]},{6:[2,135],28:[2,135],29:[2,135],57:[2,135],60:[1,263],90:[2,135],95:[2,135],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{53:264,54:[1,64],55:[1,65]},{6:[2,57],28:[2,57],29:[2,57],30:113,31:[1,77],47:114,58:265,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[1,266],28:[1,267]},{6:[2,64],28:[2,64],29:[2,64],52:[2,64],57:[2,64]},{7:268,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,27],6:[2,27],28:[2,27],29:[2,27],52:[2,27],57:[2,27],60:[2,27],76:[2,27],81:[2,27],90:[2,27],95:[2,27],97:[2,27],102:[2,27],103:[2,27],106:[2,27],108:[2,27],109:[2,27],110:[2,27],114:[2,27],122:[2,27],125:[2,27],127:[2,27],130:[2,27],133:[2,27],134:[2,27],139:[2,27],140:[2,27],141:[2,27],142:[2,27],143:[2,27],144:[2,27],145:[2,27]},{6:[1,78],29:[1,269]},{1:[2,200],6:[2,200],28:[2,200],29:[2,200],52:[2,200],57:[2,200],60:[2,200],76:[2,200],81:[2,200],90:[2,200],95:[2,200],97:[2,200],106:[2,200],107:89,108:[2,200],109:[2,200],110:[2,200],113:90,114:[2,200],115:73,122:[2,200],130:[2,200],133:[2,200],134:[2,200],139:[1,79],140:[2,200],141:[2,200],142:[2,200],143:[2,200],144:[2,200],145:[2,200]},{1:[2,214],6:[2,214],28:[2,214],29:[2,214],52:[2,214],57:[2,214],60:[2,214],76:[2,214],81:[2,214],90:[2,214],95:[2,214],97:[2,214],106:[2,214],107:89,108:[2,214],109:[2,214],110:[2,214],113:90,114:[2,214],115:73,122:[2,214],130:[2,214],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:270,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:271,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,217],6:[2,217],28:[2,217],29:[2,217],52:[2,217],57:[2,217],60:[2,217],76:[2,217],81:[2,217],90:[2,217],95:[2,217],97:[2,217],106:[2,217],107:89,108:[2,217],109:[2,217],110:[2,217],113:90,114:[2,217],115:73,122:[2,217],130:[2,217],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,191],6:[2,191],28:[2,191],29:[2,191],52:[2,191],57:[2,191],60:[2,191],76:[2,191],81:[2,191],90:[2,191],95:[2,191],97:[2,191],106:[2,191],108:[2,191],109:[2,191],110:[2,191],114:[2,191],122:[2,191],130:[2,191],133:[2,191],134:[2,191],139:[2,191],140:[2,191],141:[2,191],142:[2,191],143:[2,191],144:[2,191],145:[2,191]},{7:272,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,141],6:[2,141],28:[2,141],29:[2,141],52:[2,141],57:[2,141],60:[2,141],76:[2,141],81:[2,141],90:[2,141],95:[2,141],97:[2,141],102:[1,273],106:[2,141],108:[2,141],109:[2,141],110:[2,141],114:[2,141],122:[2,141],130:[2,141],133:[2,141],134:[2,141],139:[2,141],140:[2,141],141:[2,141],142:[2,141],143:[2,141],144:[2,141],145:[2,141]},{14:274,28:[1,120]},{14:277,28:[1,120],30:275,31:[1,77],62:276,79:[1,74]},{124:278,126:235,127:[1,236]},{29:[1,279],125:[1,280],126:281,127:[1,236]},{29:[2,184],125:[2,184],127:[2,184]},{7:283,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],99:282,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,103],6:[2,103],14:284,28:[1,120],29:[2,103],52:[2,103],57:[2,103],60:[2,103],76:[2,103],81:[2,103],90:[2,103],95:[2,103],97:[2,103],106:[2,103],107:89,108:[1,69],109:[2,103],110:[1,70],113:90,114:[1,72],115:73,122:[2,103],130:[2,103],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,106],6:[2,106],28:[2,106],29:[2,106],52:[2,106],57:[2,106],60:[2,106],76:[2,106],81:[2,106],90:[2,106],95:[2,106],97:[2,106],106:[2,106],108:[2,106],109:[2,106],110:[2,106],114:[2,106],122:[2,106],130:[2,106],133:[2,106],134:[2,106],139:[2,106],140:[2,106],141:[2,106],142:[2,106],143:[2,106],144:[2,106],145:[2,106]},{7:285,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,148],6:[2,148],28:[2,148],29:[2,148],52:[2,148],57:[2,148],60:[2,148],69:[2,148],70:[2,148],71:[2,148],72:[2,148],74:[2,148],76:[2,148],77:[2,148],81:[2,148],88:[2,148],89:[2,148],90:[2,148],95:[2,148],97:[2,148],106:[2,148],108:[2,148],109:[2,148],110:[2,148],114:[2,148],122:[2,148],130:[2,148],133:[2,148],134:[2,148],139:[2,148],140:[2,148],141:[2,148],142:[2,148],143:[2,148],144:[2,148],145:[2,148]},{6:[1,78],29:[1,286]},{7:287,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,71],11:[2,124],13:[2,124],28:[2,71],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],57:[2,71],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],95:[2,71],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{6:[1,289],28:[1,290],95:[1,288]},{6:[2,57],7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,57],29:[2,57],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[2,57],92:[1,62],93:[1,63],94:[1,61],95:[2,57],98:291,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],29:[2,56],56:292,57:[1,245]},{1:[2,188],6:[2,188],28:[2,188],29:[2,188],52:[2,188],57:[2,188],60:[2,188],76:[2,188],81:[2,188],90:[2,188],95:[2,188],97:[2,188],106:[2,188],108:[2,188],109:[2,188],110:[2,188],114:[2,188],122:[2,188],125:[2,188],130:[2,188],133:[2,188],134:[2,188],139:[2,188],140:[2,188],141:[2,188],142:[2,188],143:[2,188],144:[2,188],145:[2,188]},{7:293,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:294,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{120:[2,166],121:[2,166]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],119:295},{1:[2,173],6:[2,173],28:[2,173],29:[2,173],52:[2,173],57:[2,173],60:[2,173],76:[2,173],81:[2,173],90:[2,173],95:[2,173],97:[2,173],106:[2,173],107:89,108:[2,173],109:[1,296],110:[2,173],113:90,114:[2,173],115:73,122:[1,297],130:[2,173],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,174],6:[2,174],28:[2,174],29:[2,174],52:[2,174],57:[2,174],60:[2,174],76:[2,174],81:[2,174],90:[2,174],95:[2,174],97:[2,174],106:[2,174],107:89,108:[2,174],109:[1,298],110:[2,174],113:90,114:[2,174],115:73,122:[2,174],130:[2,174],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,300],28:[1,301],81:[1,299]},{6:[2,57],10:181,28:[2,57],29:[2,57],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:302,45:180,47:184,49:[1,49],81:[2,57],93:[1,117]},{7:303,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,304],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,91],6:[2,91],28:[2,91],29:[2,91],43:[2,91],52:[2,91],57:[2,91],60:[2,91],69:[2,91],70:[2,91],71:[2,91],72:[2,91],74:[2,91],76:[2,91],77:[2,91],81:[2,91],83:[2,91],88:[2,91],89:[2,91],90:[2,91],95:[2,91],97:[2,91],106:[2,91],108:[2,91],109:[2,91],110:[2,91],114:[2,91],122:[2,91],130:[2,91],133:[2,91],134:[2,91],137:[2,91],138:[2,91],139:[2,91],140:[2,91],141:[2,91],142:[2,91],143:[2,91],144:[2,91],145:[2,91],146:[2,91]},{7:305,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,127],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,128],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,40],6:[2,40],28:[2,40],29:[2,40],52:[2,40],57:[2,40],60:[2,40],76:[2,40],81:[2,40],90:[2,40],95:[2,40],97:[2,40],106:[2,40],107:89,108:[2,40],109:[2,40],110:[2,40],113:90,114:[2,40],115:73,122:[2,40],130:[2,40],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{29:[1,306],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],90:[1,307]},{6:[2,71],28:[2,71],29:[2,71],57:[2,71],90:[2,71],95:[2,71]},{14:308,28:[1,120]},{6:[2,60],28:[2,60],29:[2,60],52:[2,60],57:[2,60]},{30:113,31:[1,77],47:114,58:309,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,58],28:[2,58],29:[2,58],30:113,31:[1,77],47:114,51:310,57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,65],28:[2,65],29:[2,65],52:[2,65],57:[2,65],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,28],6:[2,28],28:[2,28],29:[2,28],52:[2,28],57:[2,28],60:[2,28],76:[2,28],81:[2,28],90:[2,28],95:[2,28],97:[2,28],102:[2,28],103:[2,28],106:[2,28],108:[2,28],109:[2,28],110:[2,28],114:[2,28],122:[2,28],125:[2,28],127:[2,28],130:[2,28],133:[2,28],134:[2,28],139:[2,28],140:[2,28],141:[2,28],142:[2,28],143:[2,28],144:[2,28],145:[2,28]},{29:[1,311],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,216],6:[2,216],28:[2,216],29:[2,216],52:[2,216],57:[2,216],60:[2,216],76:[2,216],81:[2,216],90:[2,216],95:[2,216],97:[2,216],106:[2,216],107:89,108:[2,216],109:[2,216],110:[2,216],113:90,114:[2,216],115:73,122:[2,216],130:[2,216],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:312,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:313,28:[1,120]},{1:[2,142],6:[2,142],28:[2,142],29:[2,142],52:[2,142],57:[2,142],60:[2,142],76:[2,142],81:[2,142],90:[2,142],95:[2,142],97:[2,142],106:[2,142],108:[2,142],109:[2,142],110:[2,142],114:[2,142],122:[2,142],130:[2,142],133:[2,142],134:[2,142],139:[2,142],140:[2,142],141:[2,142],142:[2,142],143:[2,142],144:[2,142],145:[2,142]},{14:314,28:[1,120]},{14:315,28:[1,120]},{1:[2,146],6:[2,146],28:[2,146],29:[2,146],52:[2,146],57:[2,146],60:[2,146],76:[2,146],81:[2,146],90:[2,146],95:[2,146],97:[2,146],102:[2,146],106:[2,146],108:[2,146],109:[2,146],110:[2,146],114:[2,146],122:[2,146],130:[2,146],133:[2,146],134:[2,146],139:[2,146],140:[2,146],141:[2,146],142:[2,146],143:[2,146],144:[2,146],145:[2,146]},{29:[1,316],125:[1,317],126:281,127:[1,236]},{1:[2,182],6:[2,182],28:[2,182],29:[2,182],52:[2,182],57:[2,182],60:[2,182],76:[2,182],81:[2,182],90:[2,182],95:[2,182],97:[2,182],106:[2,182],108:[2,182],109:[2,182],110:[2,182],114:[2,182],122:[2,182],130:[2,182],133:[2,182],134:[2,182],139:[2,182],140:[2,182],141:[2,182],142:[2,182],143:[2,182],144:[2,182],145:[2,182]},{14:318,28:[1,120]},{29:[2,185],125:[2,185],127:[2,185]},{14:319,28:[1,120],57:[1,320]},{28:[2,138],57:[2,138],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,104],6:[2,104],28:[2,104],29:[2,104],52:[2,104],57:[2,104],60:[2,104],76:[2,104],81:[2,104],90:[2,104],95:[2,104],97:[2,104],106:[2,104],108:[2,104],109:[2,104],110:[2,104],114:[2,104],122:[2,104],130:[2,104],133:[2,104],134:[2,104],139:[2,104],140:[2,104],141:[2,104],142:[2,104],143:[2,104],144:[2,104],145:[2,104]},{1:[2,107],6:[2,107],14:321,28:[1,120],29:[2,107],52:[2,107],57:[2,107],60:[2,107],76:[2,107],81:[2,107],90:[2,107],95:[2,107],97:[2,107],106:[2,107],107:89,108:[1,69],109:[2,107],110:[1,70],113:90,114:[1,72],115:73,122:[2,107],130:[2,107],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{106:[1,322]},{95:[1,323],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,122],6:[2,122],28:[2,122],29:[2,122],43:[2,122],52:[2,122],57:[2,122],60:[2,122],69:[2,122],70:[2,122],71:[2,122],72:[2,122],74:[2,122],76:[2,122],77:[2,122],81:[2,122],88:[2,122],89:[2,122],90:[2,122],95:[2,122],97:[2,122],106:[2,122],108:[2,122],109:[2,122],110:[2,122],114:[2,122],120:[2,122],121:[2,122],122:[2,122],130:[2,122],133:[2,122],134:[2,122],139:[2,122],140:[2,122],141:[2,122],142:[2,122],143:[2,122],144:[2,122],145:[2,122]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],98:324,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:325,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,131],28:[2,131],29:[2,131],57:[2,131],90:[2,131],95:[2,131]},{6:[1,289],28:[1,290],29:[1,326]},{1:[2,151],6:[2,151],28:[2,151],29:[2,151],52:[2,151],57:[2,151],60:[2,151],76:[2,151],81:[2,151],90:[2,151],95:[2,151],97:[2,151],106:[2,151],107:89,108:[1,69],109:[2,151],110:[1,70],113:90,114:[1,72],115:73,122:[2,151],130:[2,151],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,153],6:[2,153],28:[2,153],29:[2,153],52:[2,153],57:[2,153],60:[2,153],76:[2,153],81:[2,153],90:[2,153],95:[2,153],97:[2,153],106:[2,153],107:89,108:[1,69],109:[2,153],110:[1,70],113:90,114:[1,72],115:73,122:[2,153],130:[2,153],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{120:[2,172],121:[2,172]},{7:327,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:328,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:329,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,95],6:[2,95],28:[2,95],29:[2,95],43:[2,95],52:[2,95],57:[2,95],60:[2,95],69:[2,95],70:[2,95],71:[2,95],72:[2,95],74:[2,95],76:[2,95],77:[2,95],81:[2,95],88:[2,95],89:[2,95],90:[2,95],95:[2,95],97:[2,95],106:[2,95],108:[2,95],109:[2,95],110:[2,95],114:[2,95],120:[2,95],121:[2,95],122:[2,95],130:[2,95],133:[2,95],134:[2,95],139:[2,95],140:[2,95],141:[2,95],142:[2,95],143:[2,95],144:[2,95],145:[2,95]},{10:181,30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:330,45:180,47:184,49:[1,49],93:[1,117]},{6:[2,96],10:181,28:[2,96],29:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:331,93:[1,117]},{6:[2,98],28:[2,98],29:[2,98],57:[2,98],81:[2,98]},{6:[2,43],28:[2,43],29:[2,43],57:[2,43],81:[2,43],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:332,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,126],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,41],6:[2,41],28:[2,41],29:[2,41],52:[2,41],57:[2,41],60:[2,41],76:[2,41],81:[2,41],90:[2,41],95:[2,41],97:[2,41],106:[2,41],108:[2,41],109:[2,41],110:[2,41],114:[2,41],122:[2,41],130:[2,41],133:[2,41],134:[2,41],139:[2,41],140:[2,41],141:[2,41],142:[2,41],143:[2,41],144:[2,41],145:[2,41]},{1:[2,117],6:[2,117],28:[2,117],29:[2,117],43:[2,117],52:[2,117],57:[2,117],60:[2,117],69:[2,117],70:[2,117],71:[2,117],72:[2,117],74:[2,117],76:[2,117],77:[2,117],81:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],95:[2,117],97:[2,117],106:[2,117],108:[2,117],109:[2,117],110:[2,117],114:[2,117],122:[2,117],130:[2,117],133:[2,117],134:[2,117],137:[2,117],138:[2,117],139:[2,117],140:[2,117],141:[2,117],142:[2,117],143:[2,117],144:[2,117],145:[2,117],146:[2,117]},{1:[2,52],6:[2,52],28:[2,52],29:[2,52],52:[2,52],57:[2,52],60:[2,52],76:[2,52],81:[2,52],90:[2,52],95:[2,52],97:[2,52],106:[2,52],108:[2,52],109:[2,52],110:[2,52],114:[2,52],122:[2,52],130:[2,52],133:[2,52],134:[2,52],139:[2,52],140:[2,52],141:[2,52],142:[2,52],143:[2,52],144:[2,52],145:[2,52]},{6:[2,61],28:[2,61],29:[2,61],52:[2,61],57:[2,61]},{6:[2,56],28:[2,56],29:[2,56],56:333,57:[1,217]},{1:[2,215],6:[2,215],28:[2,215],29:[2,215],52:[2,215],57:[2,215],60:[2,215],76:[2,215],81:[2,215],90:[2,215],95:[2,215],97:[2,215],106:[2,215],108:[2,215],109:[2,215],110:[2,215],114:[2,215],122:[2,215],130:[2,215],133:[2,215],134:[2,215],139:[2,215],140:[2,215],141:[2,215],142:[2,215],143:[2,215],144:[2,215],145:[2,215]},{1:[2,189],6:[2,189],28:[2,189],29:[2,189],52:[2,189],57:[2,189],60:[2,189],76:[2,189],81:[2,189],90:[2,189],95:[2,189],97:[2,189],106:[2,189],108:[2,189],109:[2,189],110:[2,189],114:[2,189],122:[2,189],125:[2,189],130:[2,189],133:[2,189],134:[2,189],139:[2,189],140:[2,189],141:[2,189],142:[2,189],143:[2,189],144:[2,189],145:[2,189]},{1:[2,143],6:[2,143],28:[2,143],29:[2,143],52:[2,143],57:[2,143],60:[2,143],76:[2,143],81:[2,143],90:[2,143],95:[2,143],97:[2,143],106:[2,143],108:[2,143],109:[2,143],110:[2,143],114:[2,143],122:[2,143],130:[2,143],133:[2,143],134:[2,143],139:[2,143],140:[2,143],141:[2,143],142:[2,143],143:[2,143],144:[2,143],145:[2,143]},{1:[2,144],6:[2,144],28:[2,144],29:[2,144],52:[2,144],57:[2,144],60:[2,144],76:[2,144],81:[2,144],90:[2,144],95:[2,144],97:[2,144],102:[2,144],106:[2,144],108:[2,144],109:[2,144],110:[2,144],114:[2,144],122:[2,144],130:[2,144],133:[2,144],134:[2,144],139:[2,144],140:[2,144],141:[2,144],142:[2,144],143:[2,144],144:[2,144],145:[2,144]},{1:[2,145],6:[2,145],28:[2,145],29:[2,145],52:[2,145],57:[2,145],60:[2,145],76:[2,145],81:[2,145],90:[2,145],95:[2,145],97:[2,145],102:[2,145],106:[2,145],108:[2,145],109:[2,145],110:[2,145],114:[2,145],122:[2,145],130:[2,145],133:[2,145],134:[2,145],139:[2,145],140:[2,145],141:[2,145],142:[2,145],143:[2,145],144:[2,145],145:[2,145]},{1:[2,180],6:[2,180],28:[2,180],29:[2,180],52:[2,180],57:[2,180],60:[2,180],76:[2,180],81:[2,180],90:[2,180],95:[2,180],97:[2,180],106:[2,180],108:[2,180],109:[2,180],110:[2,180],114:[2,180],122:[2,180],130:[2,180],133:[2,180],134:[2,180],139:[2,180],140:[2,180],141:[2,180],142:[2,180],143:[2,180],144:[2,180],145:[2,180]},{14:334,28:[1,120]},{29:[1,335]},{6:[1,336],29:[2,186],125:[2,186],127:[2,186]},{7:337,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,108],6:[2,108],28:[2,108],29:[2,108],52:[2,108],57:[2,108],60:[2,108],76:[2,108],81:[2,108],90:[2,108],95:[2,108],97:[2,108],106:[2,108],108:[2,108],109:[2,108],110:[2,108],114:[2,108],122:[2,108],130:[2,108],133:[2,108],134:[2,108],139:[2,108],140:[2,108],141:[2,108],142:[2,108],143:[2,108],144:[2,108],145:[2,108]},{1:[2,149],6:[2,149],28:[2,149],29:[2,149],52:[2,149],57:[2,149],60:[2,149],69:[2,149],70:[2,149],71:[2,149],72:[2,149],74:[2,149],76:[2,149],77:[2,149],81:[2,149],88:[2,149],89:[2,149],90:[2,149],95:[2,149],97:[2,149],106:[2,149],108:[2,149],109:[2,149],110:[2,149],114:[2,149],122:[2,149],130:[2,149],133:[2,149],134:[2,149],139:[2,149],140:[2,149],141:[2,149],142:[2,149],143:[2,149],144:[2,149],145:[2,149]},{1:[2,125],6:[2,125],28:[2,125],29:[2,125],52:[2,125],57:[2,125],60:[2,125],69:[2,125],70:[2,125],71:[2,125],72:[2,125],74:[2,125],76:[2,125],77:[2,125],81:[2,125],88:[2,125],89:[2,125],90:[2,125],95:[2,125],97:[2,125],106:[2,125],108:[2,125],109:[2,125],110:[2,125],114:[2,125],122:[2,125],130:[2,125],133:[2,125],134:[2,125],139:[2,125],140:[2,125],141:[2,125],142:[2,125],143:[2,125],144:[2,125],145:[2,125]},{6:[2,132],28:[2,132],29:[2,132],57:[2,132],90:[2,132],95:[2,132]},{6:[2,56],28:[2,56],29:[2,56],56:338,57:[1,245]},{6:[2,133],28:[2,133],29:[2,133],57:[2,133],90:[2,133],95:[2,133]},{1:[2,175],6:[2,175],28:[2,175],29:[2,175],52:[2,175],57:[2,175],60:[2,175],76:[2,175],81:[2,175],90:[2,175],95:[2,175],97:[2,175],106:[2,175],107:89,108:[2,175],109:[2,175],110:[2,175],113:90,114:[2,175],115:73,122:[1,339],130:[2,175],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,177],6:[2,177],28:[2,177],29:[2,177],52:[2,177],57:[2,177],60:[2,177],76:[2,177],81:[2,177],90:[2,177],95:[2,177],97:[2,177],106:[2,177],107:89,108:[2,177],109:[1,340],110:[2,177],113:90,114:[2,177],115:73,122:[2,177],130:[2,177],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,176],6:[2,176],28:[2,176],29:[2,176],52:[2,176],57:[2,176],60:[2,176],76:[2,176],81:[2,176],90:[2,176],95:[2,176],97:[2,176],106:[2,176],107:89,108:[2,176],109:[2,176],110:[2,176],113:90,114:[2,176],115:73,122:[2,176],130:[2,176],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,99],28:[2,99],29:[2,99],57:[2,99],81:[2,99]},{6:[2,56],28:[2,56],29:[2,56],56:341,57:[1,255]},{29:[1,342],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,266],28:[1,267],29:[1,343]},{29:[1,344]},{1:[2,183],6:[2,183],28:[2,183],29:[2,183],52:[2,183],57:[2,183],60:[2,183],76:[2,183],81:[2,183],90:[2,183],95:[2,183],97:[2,183],106:[2,183],108:[2,183],109:[2,183],110:[2,183],114:[2,183],122:[2,183],130:[2,183],133:[2,183],134:[2,183],139:[2,183],140:[2,183],141:[2,183],142:[2,183],143:[2,183],144:[2,183],145:[2,183]},{29:[2,187],125:[2,187],127:[2,187]},{28:[2,139],57:[2,139],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],29:[1,345]},{7:346,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:347,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[1,300],28:[1,301],29:[1,348]},{6:[2,44],28:[2,44],29:[2,44],57:[2,44],81:[2,44]},{6:[2,62],28:[2,62],29:[2,62],52:[2,62],57:[2,62]},{1:[2,181],6:[2,181],28:[2,181],29:[2,181],52:[2,181],57:[2,181],60:[2,181],76:[2,181],81:[2,181],90:[2,181],95:[2,181],97:[2,181],106:[2,181],108:[2,181],109:[2,181],110:[2,181],114:[2,181],122:[2,181],130:[2,181],133:[2,181],134:[2,181],139:[2,181],140:[2,181],141:[2,181],142:[2,181],143:[2,181],144:[2,181],145:[2,181]},{6:[2,134],28:[2,134],29:[2,134],57:[2,134],90:[2,134],95:[2,134]},{1:[2,178],6:[2,178],28:[2,178],29:[2,178],52:[2,178],57:[2,178],60:[2,178],76:[2,178],81:[2,178],90:[2,178],95:[2,178],97:[2,178],106:[2,178],107:89,108:[2,178],109:[2,178],110:[2,178],113:90,114:[2,178],115:73,122:[2,178],130:[2,178],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,179],6:[2,179],28:[2,179],29:[2,179],52:[2,179],57:[2,179],60:[2,179],76:[2,179],81:[2,179],90:[2,179],95:[2,179],97:[2,179],106:[2,179],107:89,108:[2,179],109:[2,179],110:[2,179],113:90,114:[2,179],115:73,122:[2,179],130:[2,179],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,100],28:[2,100],29:[2,100],57:[2,100],81:[2,100]}],defaultActions:{64:[2,54],65:[2,55],96:[2,115],204:[2,94]},parseError:function(e,t){if(!t.recoverable)throw Error(e); +this.trace(e)},parse:function(e){function t(){var e;return e=n.lexer.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],o=[],s=this.table,a="",c=0,u=0,l=0,h=2,p=1,d=o.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,this.lexer.yylloc===void 0&&(this.lexer.yylloc={});var f=this.lexer.yylloc;o.push(f);var m=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var w,g,b,y,v,k,_,C,F,T={};;){if(b=i[i.length-1],this.defaultActions[b]?y=this.defaultActions[b]:((null===w||w===void 0)&&(w=t()),y=s[b]&&s[b][w]),y===void 0||!y.length||!y[0]){var L="";F=[];for(k in s[b])this.terminals_[k]&&k>h&&F.push("'"+this.terminals_[k]+"'");L=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+F.join(", ")+", got '"+(this.terminals_[w]||w)+"'":"Parse error on line "+(c+1)+": Unexpected "+(w==p?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(L,{text:this.lexer.match,token:this.terminals_[w]||w,line:this.lexer.yylineno,loc:f,expected:F})}if(y[0]instanceof Array&&y.length>1)throw Error("Parse Error: multiple actions possible at state: "+b+", token: "+w);switch(y[0]){case 1:i.push(w),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),i.push(y[1]),w=null,g?(w=g,g=null):(u=this.lexer.yyleng,a=this.lexer.yytext,c=this.lexer.yylineno,f=this.lexer.yylloc,l>0&&l--);break;case 2:if(_=this.productions_[y[1]][1],T.$=r[r.length-_],T._$={first_line:o[o.length-(_||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(_||1)].first_column,last_column:o[o.length-1].last_column},m&&(T._$.range=[o[o.length-(_||1)].range[0],o[o.length-1].range[1]]),v=this.performAction.apply(T,[a,u,c,this.yy,y[1],r,o].concat(d)),v!==void 0)return v;_&&(i=i.slice(0,2*-1*_),r=r.slice(0,-1*_),o=o.slice(0,-1*_)),i.push(this.productions_[y[1]][0]),r.push(T.$),o.push(T._$),C=s[i[i.length-2]][i[i.length-1]],i.push(C);break;case 3:return!0}}return!0}};return e.prototype=t,t.Parser=e,new e}();e!==void 0&&n!==void 0&&(n.parser=r,n.Parser=r.Parser,n.parse=function(){return r.parse.apply(r,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),i.exit(1));var r=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(r)},t!==void 0&&e.main===t&&n.main(i.argv.slice(1)))}).call(this,e("g5I+bs"))},{fs:12,"g5I+bs":19,path:18}],8:[function(e){(function(){var t,n,i,r,o,s,a,c,u,l,h,p,d;if(t=e("./coffee-script"),r=e("child_process"),c=e("./helpers"),l=e("path"),u=function(e,n){var i;return i=t._compileFile(n,!1,{runtime:"interp"}),e._compile(i,n)},e.extensions){for(d=t.FILE_EXTENSIONS,h=0,p=d.length;p>h;h++)o=d[h],e.extensions[o]=u;n=e("module"),s=function(e){var t,i;for(i=l.basename(e).split("."),""===i[0]&&i.shift();i.shift();)if(t="."+i.join("."),n._extensions[t])return t;return".js"},n.prototype.load=function(e){var t;return this.filename=e,this.paths=n._nodeModulePaths(l.dirname(e)),t=s(e),n._extensions[t](this,e),this.loaded=!0}}r&&(a=r.fork,i=e.resolve("../../bin/coffee"),r.fork=function(e,t,n){return c.isCoffee(e)&&(Array.isArray(t)||(n=t||{},t=[]),t=[e].concat(t),e=i),a(e,t,n)})}).call(this)},{"./coffee-script":2,"./helpers":3,child_process:12,module:12,path:18}],9:[function(e,t,n){(function(){var e,t,i,r,o,s,a,c,u,l,h,p,d,f,m,w,g,b,y,v=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},k=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},n.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,u;for(a=this.tokens,i=0;s=a[e];){if(0===i&&t.call(this,s,e))return n.call(this,s,e);if(!s||0>i)return n.call(this,s,e-1);c=s[0],v.call(o,c)>=0?i+=1:(u=s[0],v.call(r,u)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(r=this.tokens,e=n=0,i=r.length;i>n&&(t=r[e][0],"TERMINATOR"===t);e=++n);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.matchTags=function(){var e,t,n,i,r,o,s;for(t=arguments[0],i=arguments.length>=2?k.call(arguments,1):[],e=0,n=r=0,o=i.length;o>=0?o>r:r>o;n=o>=0?++r:--r){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=i[n]&&("string"==typeof i[n]&&(i[n]=[i[n]]),s=this.tag(t+n+e),0>v.call(i[n],s)))return!1}return!0},e.prototype.looksObjectish=function(e){return this.matchTags(e,"@",null,":")||this.matchTags(e,null,":")},e.prototype.findTagsBackwards=function(e,t){var n,i,s,a,c,u,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>v.call(t,a)&&(c=this.tag(e),0>v.call(o,c)||this.tokens[e].generated)&&(u=this.tag(e),0>v.call(h,u))));)i=this.tag(e),v.call(r,i)>=0&&n.push(this.tag(e)),s=this.tag(e),v.call(o,s)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),v.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e;return e=[],this.scanTokens(function(n,i,l){var p,d,m,w,g,b,y,k,_,C,F,T,L,x,N,E,D,S,A,I,R,O,$,j,P,B,M,V,U;if($=n[0],F=(T=i>0?l[i-1]:[])[0],_=(l.length-1>i?l[i+1]:[])[0],S=function(){return e[e.length-1]},A=i,m=function(e){return i-A+e},w=function(){var e,t;return null!=(e=S())?null!=(t=e[2])?t.ours:void 0:void 0},g=function(){var e;return w()&&"("===(null!=(e=S())?e[0]:void 0)},y=function(){var e;return w()&&"{"===(null!=(e=S())?e[0]:void 0)},b=function(){var e;return w&&"CONTROL"===(null!=(e=S())?e[0]:void 0)},I=function(t){var n;return n=null!=t?t:i,e.push(["(",n,{ours:!0}]),l.splice(n,0,f("CALL_START","(")),null==t?i+=1:void 0},p=function(){return e.pop(),l.splice(i,0,f("CALL_END",")")),i+=1},R=function(t,r){var o;return null==r&&(r=!0),o=null!=t?t:i,e.push(["{",o,{sameLine:!0,startsLine:r,ours:!0}]),l.splice(o,0,f("{",f(new String("{")),n)),null==t?i+=1:void 0},d=function(t){return t=null!=t?t:i,e.pop(),l.splice(t,0,f("}","}",n)),i+=1},g()&&("IF"===$||"TRY"===$||"FINALLY"===$||"CATCH"===$||"CLASS"===$||"SWITCH"===$))return e.push(["CONTROL",i,{ours:!0}]),m(1);if("INDENT"===$&&w()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;g();)p();return b()&&e.pop(),e.push([$,i]),m(1)}if(v.call(o,$)>=0)return e.push([$,i]),m(1);if(v.call(r,$)>=0){for(;w();)g()?p():y()?d():e.pop();e.pop()}if((v.call(c,$)>=0&&n.spaced&&!n.stringEnd||"?"===$&&i>0&&!l[i-1].spaced)&&(v.call(s,_)>=0||v.call(u,_)>=0&&!(null!=(j=l[i+1])?j.spaced:void 0)&&!(null!=(P=l[i+1])?P.newLine:void 0)))return"?"===$&&($=n[0]="FUNC_EXIST"),I(i+1),L=m(2);if(v.call(c,$)>=0&&this.matchTags(i+1,"INDENT",null,":")&&!this.findTagsBackwards(i,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return I(i+1),e.push(["INDENT",i+2]),m(3);if(":"===$){for(x="@"===this.tag(i-2)?i-2:i-1;"HERECOMMENT"===this.tag(x-2);)x-=2;return this.insideForDeclaration="FOR"===_,O=0===x||(B=this.tag(x-1),v.call(h,B)>=0)||l[x-1].newLine,S()&&(M=S(),D=M[0],E=M[1],("{"===D||"INDENT"===D&&"{"===this.tag(E-1))&&(O||","===this.tag(x-1)||"{"===this.tag(x-1)))?m(1):(R(x,!!O),m(2))}if(y()&&v.call(h,$)>=0&&(S()[2].sameLine=!1),k="OUTDENT"===F||T.newLine,v.call(a,$)>=0||v.call(t,$)>=0&&k)for(;w();)if(V=S(),D=V[0],E=V[1],U=V[2],N=U.sameLine,O=U.startsLine,g()&&","!==F)p();else if(y()&&!this.insideForDeclaration&&N&&"TERMINATOR"!==$&&":"!==F&&d());else{if(!y()||"TERMINATOR"!==$||","===F||O&&this.looksObjectish(i+1))break;d()}if(!(","!==$||this.looksObjectish(i+1)||!y()||this.insideForDeclaration||"TERMINATOR"===_&&this.looksObjectish(i+2)))for(C="OUTDENT"===_?1:0;y();)d(i+C);return m(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,n,r,o,s;return s=r=o=null,n=function(e,n){var r,o,a,c;return";"!==e[1]&&(r=e[0],v.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(o=this.tag(n+1),v.call(i,o)>=0))&&!("ELSE"===e[0]&&"THEN"!==s)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==s&&"=>"!==s)||(c=e[0],v.call(t,c)>=0&&this.tokens[n-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,o)},this.scanTokens(function(t,a,c){var u,l,h,p,f,m;if(l=t[0],"TERMINATOR"===l){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(k.call(this.indentation()))),1;if(p=this.tag(a+1),v.call(i,p)>=0)return c.splice(a,1),0}if("CATCH"===l)for(u=h=1;2>=h;u=++h)if("OUTDENT"===(f=this.tag(a+u))||"TERMINATOR"===f||"FINALLY"===f)return c.splice.apply(c,[a+u,0].concat(k.call(this.indentation()))),2+u;return v.call(d,l)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==l||"IF"!==this.tag(a+1))?(s=l,m=this.indentation(c[a]),r=m[0],o=m[1],"THEN"===s&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,n,e),"THEN"===l&&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>v.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}(),e=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],n.INVERSES=l={},o=[],r=[],g=0,b=e.length;b>g;g++)y=e[g],m=y[0],w=y[1],o.push(l[w]=m),r.push(l[m]=w);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],s=["IDENTIFIER","NUMBER","STRING","JS","REGEX","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],u=["+","-"],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"],t=[".","?.","::","?::"],c.push("DEFER"),s.push("DEFER"),a.push("AWAIT")}).call(this)},{}],10:[function(e,t,n){(function(){var t,i,r,o,s;s=e("./helpers"),i=s.extend,o=s.last,r=e("iced-runtime"),n.Scope=t=function(){function e(t,n,i){this.parent=t,this.expressions=n,this.method=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(e.root=this)}return e.root=null,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){return e.length>1?"_"+e+(t>1?t-1:""):"_"+(t+parseInt(e,36)).toString(36).replace(/\d/g,"a")},e.prototype.type=function(e){var t,n,i,r;for(r=this.variables,n=0,i=r.length;i>n;n++)if(t=r[n],t.name===e)return t.type;return null},e.prototype.freeVariable=function(e,t){var n,i;for(null==t&&(t=!0),n=0;this.check(i=this.temporary(e,n));)n++;return t&&this.add(i,"var",!0),i},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,t,n,i,r,o;for(e=[],t=[],o=this.variables,i=0,r=o.length;r>i;i++)n=o[i],"var"===n.type&&("_"===n.name.charAt(0)?t:e).push(n.name);return e.sort().concat(t.sort())},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],e.type.assigned&&r.push(""+e.name+" = "+e.type.value);return r},e}()}).call(this)},{"./helpers":3,"iced-runtime":15}],11:[function(e,t,n){(function(){var e,t;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}(),t=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={}),o=n[0],r=n[1],s=(a=this.lines)[o]||(a[o]=new e(o)),s.add(r,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,u,l,h,p,d,f,m,w,g;for(null==e&&(e={}),null==t&&(t=null),h=0,i=0,o=0,r=0,u=!1,n="",w=this.lines,a=p=0,f=w.length;f>p;a=++p)if(s=w[a])for(g=s.columns,d=0,m=g.length;m>d;d++)if(c=g[d]){for(;c.line>h;)i=0,u=!1,n+=";",h++;u&&(n+=",",u=!1),n+=this.encodeVlq(c.column-i),i=c.column,n+=this.encodeVlq(0),n+=this.encodeVlq(c.sourceLine-o),o=c.sourceLine,n+=this.encodeVlq(c.sourceColumn-r),r=c.sourceColumn,u=!0}return l={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(l.sourcesContent=[t]),JSON.stringify(l,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+s;a||!t;)n=a&o,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),n.SourceMap=t}).call(this)},{}],12:[function(){},{}],13:[function(e,t){(function(){t.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context",defer_arg:"__iced_defer_"}}).call(this)},{}],14:[function(e,t,n){(function(){var t,i,r,o,s,a,c,u,l=[].slice;o=s=function(){},t=e("./const"),n.iced=r=e("./runtime"),u=function(e,t,n,i){var o,a,c,u,h,p;p=s,u=r.findDeferral(arguments),a=new r.Rendezvous,i[0]=a.id(!0).defer({assign_fn:function(){return function(){return function(){return o=l.call(arguments,0)}}}(this)(),lineno:20,context:h}),setTimeout(a.id(!1).defer({lineno:21,context:h}),t),function(){return function(e){h=new r.Deferrals(e,{parent:u,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),a.wait(h.defer({assign_fn:function(){return function(){return c=arguments[0]}}(),lineno:22})),h._fulfill()}}(this)(function(){return function(){return n&&(n[0]=c),e.apply(null,o)}}(this))},n.timeout=function(e,t,n){var i;return i=[],u(e,t,n,i),i[0]},a=function(e,t,n){var i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(e){a=new r.Deferrals(e,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=a.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:39}),a._fulfill()}}(this)(function(){return function(){return i||(t[0]=!1),e()}}(this))},n.iand=function(e,t){var n;return n=[],a(e,t,n),n[0]},c=function(e,t,n){var i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(e){a=new r.Deferrals(e,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),n[0]=a.defer({assign_fn:function(){return function(){return i=arguments[0]}}(),lineno:58}),a._fulfill()}}(this)(function(){return function(){return i&&(t[0]=!0),e()}}(this))},n.ior=function(e,t){var n;return n=[],c(e,t,n),n[0]},n.Pipeliner=i=function(){function e(e,n){this.window=e||1,this.delay=n||0,this.queue=[],this.n_out=0,this.cb=null,this[t.deferrals]=this,this.defer=this._defer}return e.prototype.waitInQueue=function(e){var t,n,i;i=s,t=r.findDeferral(arguments),function(e){return function(i){var o;o=function(i){var s,a,c;return s=i,a=function(){return r.trampoline(function(){return o(i)})},c=a,e.n_out>=e.window?(function(i){n=new r.Deferrals(i,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),e.cb=n.defer({lineno:100}),n._fulfill()}(c),void 0):s()},o(i)}}(this)(function(i){return function(){i.n_out++,function(e){return i.delay?(function(e){n=new r.Deferrals(e,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(n.defer({lineno:108}),i.delay),n._fulfill()}(e),void 0):e()}(function(){return e()})}}(this))},e.prototype.__defer=function(e,t){var n,i,o,a,c;c=s,o=r.findDeferral(arguments),function(){return function(n){a=new r.Deferrals(n,{parent:o,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),i=a.defer({lineno:122}),e[0]=function(){var e,n;return e=arguments.length>=1?l.call(arguments,0):[],null!=(n=t.assign_fn)&&n.apply(null,e),i()},a._fulfill()}}(this)(function(e){return function(){return e.n_out--,e.cb?(n=e.cb,e.cb=null,n()):void 0}}(this))},e.prototype._defer=function(e){var t;return t=[],this.__defer(t,e),t[0]},e.prototype.flush=function(e){var t,n,i;n=e,t=r.findDeferral(arguments),i=function(e){var n;return function(o){var s,a,c;return s=o,a=function(){return r.trampoline(function(){return i(o)})},c=a,e.n_out?(function(i){n=new r.Deferrals(i,{parent:t,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),e.cb=n.defer({lineno:151}),n._fulfill()}(c),void 0):s()}}(this),i(n)},e}()}).call(this)},{"./const":13,"./runtime":16}],15:[function(e,t,n){(function(){var t,i,r,o,s,a;for(n["const"]=e("./const"),r=[e("./runtime"),e("./library")],s=0,a=r.length;a>s;s++){i=r[s];for(t in i)o=i[t],n[t]=o}}).call(this)},{"./const":13,"./library":14,"./runtime":16}],16:[function(e,t,n){(function(t){(function(){var i,r,o,s,a,c,u,l,h,p,d,f,m,w=[].slice;i=e("./const"),c=function(e,t,n,r,o){var s,a,c,u;c={};for(s in r)u=r[s],c[s]=u;return c[i.lineno]=null!=t?t[i.lineno]:void 0,a=function(){var i,r,s;return i=arguments.length>=1?w.call(arguments,0):[],null!=t&&null!=(s=t.assign_fn)&&s.apply(null,i),e?(r=e,o||(e=null),r._fulfill(n,c)):p("overused deferral at "+m(c))},a[i.trace]=c,a},f=0,l=function(e){return f++,0===f%e?(f=0,!0):!1},d=null,m=function(e){var t;return t=e[i.funcname]||"",""+t+" ("+e[i.filename]+":"+(e[i.lineno]+1)+")"},p=function(e){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+e):void 0},n.trampoline=h=function(e){return l(500)?null!=(t!==void 0&&null!==t?t.nextTick:void 0)?t.nextTick(e):setTimeout(e):e()},n.Deferrals=r=function(){function e(e,t){this.trace=t,this.continuation=e,this.count=1,this.ret=null}return e.prototype._call=function(e){var t;return this.continuation?(d=e,t=this.continuation,this.continuation=null,t(this.ret)):p("Entered dead await at "+m(e))},e.prototype._fulfill=function(e,t){return--this.count>0?void 0:h(function(e){return function(){return e._call(t)}}(this))},e.prototype.defer=function(e){var t;return this.count++,t=this,c(t,e,null,this.trace)},e}(),n.findDeferral=a=function(e){var t,n,r;for(n=0,r=e.length;r>n;n++)if(t=e[n],null!=t?t[i.trace]:void 0)return t;return null},n.Rendezvous=o=function(){function e(){this.completed=[],this.waiters=[],this.defer_id=0}var t;return t=function(){function e(e,t,n){this.rv=e,this.id=t,this.multi=n}return e.prototype.defer=function(e){return this.rv._defer_with_id(this.id,e,this.multi)},e}(),e.prototype.wait=function(e){var t;return this.completed.length?(t=this.completed.shift(),e(t)):this.waiters.push(e)},e.prototype.defer=function(e){var t;return t=this.defer_id++,this._defer_with_id(t,e)},e.prototype.id=function(e,n){return n=!!n,new t(this,e,n)},e.prototype._fulfill=function(e){var t;return this.waiters.length?(t=this.waiters.shift(),t(e)):this.completed.push(e)},e.prototype._defer_with_id=function(e,t,n){return this.count++,c(this,t,e,{},n)},e}(),n.stackWalk=u=function(e){var t,n,r,o;for(n=[],r=e?e[i.trace]:d;r;)t=" at "+m(r),n.push(t),r=null!=r?null!=(o=r[i.parent])?o[i.trace]:void 0:void 0;return n},n.exceptionHandler=s=function(e,t){var n;return t||(t=console.error),t(e.stack),n=u(),n.length?(t("Iced 'stack' trace (w/ real line numbers):"),t(n.join("\n"))):void 0},n.catchExceptions=function(e){return t!==void 0&&null!==t?t.on("uncaughtException",function(n){return s(n,e),t.exit(1)}):void 0}}).call(this)}).call(this,e("g5I+bs"))},{"./const":13,"g5I+bs":19}],17:[function(e,t){var n=[].indexOf;t.exports=function(e,t){if(n)return e.indexOf(t);for(var i=0;e.length>i;++i)if(e[i]===t)return i;return-1}},{}],18:[function(e,t,n){(function(e){function t(e,t){for(var n=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),n++):n&&(e.splice(i,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],i=0;e.length>i;i++)t(e[i],i,e)&&n.push(e[i]);return n}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return r.exec(e).slice(1)};n.resolve=function(){for(var n="",r=!1,o=arguments.length-1;o>=-1&&!r;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,r="/"===s.charAt(0))}return n=t(i(n.split("/"),function(e){return!!e}),!r).join("/"),(r?"/":"")+n||"."},n.normalize=function(e){var r=n.isAbsolute(e),o="/"===s(e,-1);return e=t(i(e.split("/"),function(e){return!!e}),!r).join("/"),e||r||(e="."),e&&o&&(e+="/"),(r?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(i(e,function(e){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function i(e){for(var t=0;e.length>t&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var r=i(e.split("/")),o=i(t.split("/")),s=Math.min(r.length,o.length),a=s,c=0;s>c;c++)if(r[c]!==o[c]){a=c;break}for(var u=[],c=a;r.length>c;c++)u.push("..");return u=u.concat(o.slice(a)),u.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=o(e),n=t[0],i=t[1];return n||i?(i&&(i=i.substr(0,i.length-1)),n+i):"."},n.basename=function(e,t){var n=o(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return o(e)[3]};var s="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return 0>t&&(t=e.length+t),e.substr(t,n)}}).call(this,e("g5I+bs"))},{"g5I+bs":19}],19:[function(e,t){function n(){}var i=t.exports={};i.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var i=n.shift();i()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=n,i.addListener=n,i.once=n,i.off=n,i.removeListener=n,i.removeAllListeners=n,i.emit=n,i.binding=function(){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(){throw Error("process.chdir is not supported")}},{}],20:[function(_dereq_,module,exports){function Context(){}var indexOf=_dereq_("indexof"),Object_keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t},forEach=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;e.length>n;n++)t(e[n],n,e)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(e,t,n){Object.defineProperty(e,t,{writable:!0,enumerable:!1,configurable:!0,value:n})}}catch(e){return function(e,t,n){e[t]=n}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];Context.prototype={};var Script=exports.Script=function NodeScript(e){return this instanceof Script?(this.code=e,void 0):new Script(e)};Script.prototype.runInContext=function(e){if(!(e instanceof Context))throw new TypeError("needs a 'context' argument.");var t=document.createElement("iframe");t.style||(t.style={}),t.style.display="none",document.body.appendChild(t);var n=t.contentWindow,i=n.eval,r=n.execScript;!i&&r&&(r.call(n,"null"),i=n.eval),forEach(Object_keys(e),function(t){n[t]=e[t]}),forEach(globals,function(t){e[t]&&(n[t]=e[t])});var o=Object_keys(n),s=i.call(n,this.code);return forEach(Object_keys(n),function(t){(t in e||-1===indexOf(o,t))&&(e[t]=n[t])}),forEach(globals,function(t){t in e||defineProp(e,t,n[t])}),document.body.removeChild(t),s},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(e){var t=Script.createContext(e),n=this.runInContext(t);return forEach(Object_keys(t),function(n){e[n]=t[n]}),n},forEach(Object_keys(Script.prototype),function(e){exports[e]=Script[e]=function(t){var n=Script(t);return n[e].apply(n,[].slice.call(arguments,1))}}),exports.createScript=function(e){return exports.Script(e)},exports.createContext=Script.createContext=function(e){var t=new Context;return"object"==typeof e&&forEach(Object_keys(e),function(n){t[n]=e[n]}),t}},{indexof:17}]},{},[1])(1)}),"undefined"!=typeof CoffeeScript&&(root.CoffeeScript=CoffeeScript)})(this); \ No newline at end of file diff --git a/extras/iced-coffee-script-108.0.11.js b/extras/iced-coffee-script-108.0.11.js new file mode 100644 index 0000000000..13644f336e --- /dev/null +++ b/extras/iced-coffee-script-108.0.11.js @@ -0,0 +1,8887 @@ +/** + * IcedCoffeeScript Compiler v108.0.11 + * http://iced-coffee-script.github.io/iced-coffee-script + * + * Copyright 2011, Jeremy Ashkenas, Maxwell Krohn + * Released under the MIT License + */ +(function(root){ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.CoffeeScript=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { + _results.push(s); + } + } + return _results; + })(); + index = 0; + execute = function() { + var param; + param = coffees[index]; + if (param instanceof Array) { + CoffeeScript.run.apply(CoffeeScript, param); + index++; + return execute(); + } + }; + _fn = function(script, i) { + var options; + options = { + literate: script.type === coffeetypes[1] + }; + if (script.src) { + return CoffeeScript.load(script.src, function(param) { + coffees[i] = param; + return execute(); + }, options, true); + } else { + options.sourceFiles = ['embedded']; + return coffees[i] = [script.innerHTML, options]; + } + }; + for (i = _i = 0, _len = coffees.length; _i < _len; i = ++_i) { + script = coffees[i]; + _fn(script, i); + } + return execute(); + }; + + if (window.addEventListener) { + window.addEventListener('DOMContentLoaded', runScripts, false); + } else { + window.attachEvent('onload', runScripts); + } + + window.iced = CoffeeScript.iced; + + module.exports = CoffeeScript; + +}).call(this); + +},{"./coffee-script":2}],2:[function(_dereq_,module,exports){ +(function (process,global){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var Lexer, SourceMap, compile, ext, formatSourcePosition, fs, getSourceMap, helpers, iced_runtime, iced_transform, lexer, parser, path, sourceMaps, vm, withPrettyErrors, _base, _i, _len, _ref, + __hasProp = {}.hasOwnProperty, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + fs = _dereq_('fs'); + + vm = _dereq_('vm'); + + path = _dereq_('path'); + + Lexer = _dereq_('./lexer').Lexer; + + parser = _dereq_('./parser').parser; + + helpers = _dereq_('./helpers'); + + SourceMap = _dereq_('./sourcemap').SourceMap; + + iced_transform = _dereq_('./iced').transform; + + iced_runtime = _dereq_('iced-runtime'); + + exports.VERSION = '108.0.11'; + + exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md', '.iced', '.liticed', '.iced.md']; + + exports.helpers = helpers; + + withPrettyErrors = function(fn) { + return function(code, options) { + var err; + if (options == null) { + options = {}; + } + try { + return fn.call(this, code, options); + } catch (_error) { + err = _error; + throw helpers.updateSyntaxError(err, code, options.filename); + } + }; + }; + + exports.compile = compile = withPrettyErrors(function(code, options) { + var answer, currentColumn, currentLine, extend, fragment, fragments, header, js, map, merge, newLines, _i, _len; + merge = helpers.merge, extend = helpers.extend; + options = extend({}, options); + if (options.sourceMap) { + map = new SourceMap; + } + fragments = (iced_transform(parser.parse(lexer.tokenize(code, options)), options)).compileToFragments(options); + currentLine = 0; + if (options.header) { + currentLine += 1; + } + if (options.shiftLine) { + currentLine += 1; + } + currentColumn = 0; + js = ""; + for (_i = 0, _len = fragments.length; _i < _len; _i++) { + fragment = fragments[_i]; + if (options.sourceMap) { + if (fragment.locationData) { + map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], { + noReplace: true + }); + } + newLines = helpers.count(fragment.code, "\n"); + currentLine += newLines; + if (newLines) { + currentColumn = fragment.code.length - (fragment.code.lastIndexOf("\n") + 1); + } else { + currentColumn += fragment.code.length; + } + } + js += fragment.code; + } + if (options.header) { + header = "Generated by IcedCoffeeScript " + this.VERSION; + js = "// " + header + "\n" + js; + } + if (options.sourceMap) { + answer = { + js: js + }; + answer.sourceMap = map; + answer.v3SourceMap = map.generate(options, code); + return answer; + } else { + return js; + } + }); + + exports.tokens = withPrettyErrors(function(code, options) { + return lexer.tokenize(code, options); + }); + + exports.nodes = withPrettyErrors(function(source, options) { + var ast; + if (typeof source === 'string') { + ast = parser.parse(lexer.tokenize(source, options)); + } else { + ast = parser.parse(source); + } + if (!options.noIcedTransform) { + ast = iced_transform(ast, options); + } + return ast; + }); + + exports.run = function(code, options) { + var answer, dir, mainModule, _ref; + if (options == null) { + options = {}; + } + mainModule = _dereq_.main; + mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; + mainModule.moduleCache && (mainModule.moduleCache = {}); + dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); + mainModule.paths = _dereq_('module')._nodeModulePaths(dir); + if (!helpers.isCoffee(mainModule.filename) || _dereq_.extensions) { + options.runtime = "interp"; + answer = compile(code, options); + code = (_ref = answer.js) != null ? _ref : answer; + } + return mainModule._compile(code, mainModule.filename); + }; + + exports["eval"] = function(code, options) { + var Module, Script, createContext, isContext, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _ref2, _ref3, _require; + if (options == null) { + options = {}; + } + if (!(code = code.trim())) { + return; + } + Script = vm.Script; + if (Script) { + createContext = (_ref = vm.Script.createContext) != null ? _ref : vm.createContext; + isContext = (_ref1 = vm.isContext) != null ? _ref1 : function(ctx) { + return options.sandbox instanceof createContext().constructor; + }; + if (options.sandbox != null) { + if (isContext(options.sandbox)) { + sandbox = options.sandbox; + } else { + sandbox = createContext(); + _ref2 = options.sandbox; + for (k in _ref2) { + if (!__hasProp.call(_ref2, k)) continue; + v = _ref2[k]; + sandbox[k] = v; + } + } + sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox; + } else { + sandbox = global; + } + sandbox.__filename = options.filename || 'eval'; + sandbox.__dirname = path.dirname(sandbox.__filename); + if (!(sandbox !== global || sandbox.module || sandbox.require)) { + Module = _dereq_('module'); + sandbox.module = _module = new Module(options.modulename || 'eval'); + sandbox.require = _require = function(path) { + return Module._load(path, _module, true); + }; + _module.filename = sandbox.__filename; + _ref3 = Object.getOwnPropertyNames(_dereq_); + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + r = _ref3[_i]; + if (r !== 'paths') { + _require[r] = _dereq_[r]; + } + } + _require.paths = _module.paths = Module._nodeModulePaths(process.cwd()); + _require.resolve = function(request) { + return Module._resolveFilename(request, _module); + }; + } + } + o = {}; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + o[k] = v; + } + o.bare = true; + js = compile(code, o); + if (sandbox === global) { + return vm.runInThisContext(js); + } else { + return vm.runInContext(js, sandbox); + } + }; + + exports.register = function() { + return _dereq_('./register'); + }; + + if (_dereq_.extensions) { + _ref = this.FILE_EXTENSIONS; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + ext = _ref[_i]; + if ((_base = _dereq_.extensions)[ext] == null) { + _base[ext] = function() { + throw new Error("Use CoffeeScript.register() or require the coffee-script/register module to require " + ext + " files."); + }; + } + } + } + + exports._compileFile = function(filename, sourceMap, opts_passed) { + var answer, err, k, opts, raw, stripped, v; + if (sourceMap == null) { + sourceMap = false; + } + if (opts_passed == null) { + opts_passed = {}; + } + raw = fs.readFileSync(filename, 'utf8'); + stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw; + opts = { + filename: filename, + sourceMap: sourceMap, + literate: helpers.isLiterate(filename) + }; + for (k in opts_passed) { + v = opts_passed[k]; + opts[k] = v; + } + try { + answer = compile(stripped, opts); + } catch (_error) { + err = _error; + throw helpers.updateSyntaxError(err, stripped, filename); + } + return answer; + }; + + lexer = new Lexer; + + parser.lexer = { + lex: function() { + var tag, token; + token = this.tokens[this.pos++]; + if (token) { + tag = token[0], this.yytext = token[1], this.yylloc = token[2]; + this.errorToken = token.origin || token; + this.yylineno = this.yylloc.first_line; + } else { + tag = ''; + } + return tag; + }, + setInput: function(tokens) { + this.tokens = tokens; + return this.pos = 0; + }, + upcomingInput: function() { + return ""; + } + }; + + parser.yy = _dereq_('./nodes'); + + exports.iced = iced_runtime; + + parser.yy.parseError = function(message, _arg) { + var errorLoc, errorTag, errorText, errorToken, token, tokens, _ref1; + token = _arg.token; + _ref1 = parser.lexer, errorToken = _ref1.errorToken, tokens = _ref1.tokens; + errorTag = errorToken[0], errorText = errorToken[1], errorLoc = errorToken[2]; + errorText = errorToken === tokens[tokens.length - 1] ? 'end of input' : errorTag === 'INDENT' || errorTag === 'OUTDENT' ? 'indentation' : helpers.nameWhitespaceCharacter(errorText); + return helpers.throwSyntaxError("unexpected " + errorText, errorLoc); + }; + + formatSourcePosition = function(frame, getSourceMapping) { + var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; + fileName = void 0; + fileLocation = ''; + if (frame.isNative()) { + fileLocation = "native"; + } else { + if (frame.isEval()) { + fileName = frame.getScriptNameOrSourceURL(); + if (!fileName) { + fileLocation = "" + (frame.getEvalOrigin()) + ", "; + } + } else { + fileName = frame.getFileName(); + } + fileName || (fileName = ""); + line = frame.getLineNumber(); + column = frame.getColumnNumber(); + source = getSourceMapping(fileName, line, column); + fileLocation = source ? "" + fileName + ":" + source[0] + ":" + source[1] : "" + fileName + ":" + line + ":" + column; + } + functionName = frame.getFunctionName(); + isConstructor = frame.isConstructor(); + isMethodCall = !(frame.isToplevel() || isConstructor); + if (isMethodCall) { + methodName = frame.getMethodName(); + typeName = frame.getTypeName(); + if (functionName) { + tp = as = ''; + if (typeName && functionName.indexOf(typeName)) { + tp = "" + typeName + "."; + } + if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) { + as = " [as " + methodName + "]"; + } + return "" + tp + functionName + as + " (" + fileLocation + ")"; + } else { + return "" + typeName + "." + (methodName || '') + " (" + fileLocation + ")"; + } + } else if (isConstructor) { + return "new " + (functionName || '') + " (" + fileLocation + ")"; + } else if (functionName) { + return "" + functionName + " (" + fileLocation + ")"; + } else { + return fileLocation; + } + }; + + sourceMaps = {}; + + getSourceMap = function(filename) { + var answer, _ref1; + if (sourceMaps[filename]) { + return sourceMaps[filename]; + } + if (_ref1 = path != null ? path.extname(filename) : void 0, __indexOf.call(exports.FILE_EXTENSIONS, _ref1) < 0) { + return; + } + answer = exports._compileFile(filename, true); + return sourceMaps[filename] = answer.sourceMap; + }; + + Error.prepareStackTrace = function(err, stack) { + var frame, frames, getSourceMapping; + getSourceMapping = function(filename, line, column) { + var answer, sourceMap; + sourceMap = getSourceMap(filename); + if (sourceMap) { + answer = sourceMap.sourceLocation([line - 1, column - 1]); + } + if (answer) { + return [answer[0] + 1, answer[1] + 1]; + } else { + return null; + } + }; + frames = (function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = stack.length; _j < _len1; _j++) { + frame = stack[_j]; + if (frame.getFunction() === exports.run) { + break; + } + _results.push(" at " + (formatSourcePosition(frame, getSourceMapping))); + } + return _results; + })(); + return "" + (err.toString()) + "\n" + (frames.join('\n')) + "\n"; + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./helpers":3,"./iced":4,"./lexer":5,"./nodes":6,"./parser":7,"./register":8,"./sourcemap":11,"fs":12,"g5I+bs":19,"iced-runtime":15,"module":12,"path":18,"vm":20}],3:[function(_dereq_,module,exports){ +(function (process){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var buildLocationData, extend, flatten, last, repeat, syntaxErrorToString, _ref; + + exports.starts = function(string, literal, start) { + return literal === string.substr(start, literal.length); + }; + + exports.ends = function(string, literal, back) { + var len; + len = literal.length; + return literal === string.substr(string.length - len - (back || 0), len); + }; + + exports.repeat = repeat = function(str, n) { + var res; + res = ''; + while (n > 0) { + if (n & 1) { + res += str; + } + n >>>= 1; + str += str; + } + return res; + }; + + exports.compact = function(array) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + item = array[_i]; + if (item) { + _results.push(item); + } + } + return _results; + }; + + exports.count = function(string, substr) { + var num, pos; + num = pos = 0; + if (!substr.length) { + return 1 / 0; + } + while (pos = 1 + string.indexOf(substr, pos)) { + num++; + } + return num; + }; + + exports.merge = function(options, overrides) { + return extend(extend({}, options), overrides); + }; + + extend = exports.extend = function(object, properties) { + var key, val; + for (key in properties) { + val = properties[key]; + object[key] = val; + } + return object; + }; + + exports.flatten = flatten = function(array) { + var element, flattened, _i, _len; + flattened = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + element = array[_i]; + if (element instanceof Array) { + flattened = flattened.concat(flatten(element)); + } else { + flattened.push(element); + } + } + return flattened; + }; + + exports.del = function(obj, key) { + var val; + val = obj[key]; + delete obj[key]; + return val; + }; + + exports.last = last = function(array, back) { + return array[array.length - (back || 0) - 1]; + }; + + exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) { + var e, _i, _len; + for (_i = 0, _len = this.length; _i < _len; _i++) { + e = this[_i]; + if (fn(e)) { + return true; + } + } + return false; + }; + + exports.invertLiterate = function(code) { + var line, lines, maybe_code; + maybe_code = true; + lines = (function() { + var _i, _len, _ref1, _results; + _ref1 = code.split('\n'); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + line = _ref1[_i]; + if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) { + _results.push(line); + } else if (maybe_code = /^\s*$/.test(line)) { + _results.push(line); + } else { + _results.push('# ' + line); + } + } + return _results; + })(); + return lines.join('\n'); + }; + + buildLocationData = function(first, last) { + if (!last) { + return first; + } else { + return { + first_line: first.first_line, + first_column: first.first_column, + last_line: last.last_line, + last_column: last.last_column + }; + } + }; + + exports.addLocationDataFn = function(first, last) { + return function(obj) { + if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) { + obj.updateLocationDataIfMissing(buildLocationData(first, last)); + } + return obj; + }; + }; + + exports.locationDataToString = function(obj) { + var locationData; + if (("2" in obj) && ("first_line" in obj[2])) { + locationData = obj[2]; + } else if ("first_line" in obj) { + locationData = obj; + } + if (locationData) { + return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1)); + } else { + return "No location data"; + } + }; + + exports.baseFileName = function(file, stripExt, useWinPathSep) { + var parts, pathSep; + if (stripExt == null) { + stripExt = false; + } + if (useWinPathSep == null) { + useWinPathSep = false; + } + pathSep = useWinPathSep ? /\\|\// : /\//; + parts = file.split(pathSep); + file = parts[parts.length - 1]; + if (!(stripExt && file.indexOf('.') >= 0)) { + return file; + } + parts = file.split('.'); + parts.pop(); + if (parts[parts.length - 1] === 'coffee' && parts.length > 1) { + parts.pop(); + } + return parts.join('.'); + }; + + exports.isCoffee = function(file) { + return /\.((lit)?coffee|coffee\.md|iced|liticed|iced\.md)$/.test(file); + }; + + exports.isLiterate = function(file) { + return /\.(litcoffee|coffee\.md|liticed|iced\.md)$/.test(file); + }; + + exports.throwSyntaxError = function(message, location) { + var error; + error = new SyntaxError(message); + error.location = location; + error.toString = syntaxErrorToString; + error.stack = error.toString(); + throw error; + }; + + exports.updateSyntaxError = function(error, code, filename) { + if (error.toString === syntaxErrorToString) { + error.code || (error.code = code); + error.filename || (error.filename = filename); + error.stack = error.toString(); + } + return error; + }; + + syntaxErrorToString = function() { + var codeLine, colorize, colorsEnabled, end, filename, first_column, first_line, last_column, last_line, marker, start, _ref1, _ref2; + if (!(this.code && this.location)) { + return Error.prototype.toString.call(this); + } + _ref1 = this.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column; + if (last_line == null) { + last_line = first_line; + } + if (last_column == null) { + last_column = first_column; + } + filename = this.filename || '[stdin]'; + codeLine = this.code.split('\n')[first_line]; + start = first_column; + end = first_line === last_line ? last_column + 1 : codeLine.length; + marker = codeLine.slice(0, start).replace(/[^\s]/g, ' ') + repeat('^', end - start); + if ((typeof process !== "undefined" && process !== null ? process.stdout : void 0) != null) { + colorsEnabled = process.stdout.isTTY && !process.env.NODE_DISABLE_COLORS; + } + if ((_ref2 = this.colorful) != null ? _ref2 : colorsEnabled) { + colorize = function(str) { + return "\x1B[1;31m" + str + "\x1B[0m"; + }; + codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end); + marker = colorize(marker); + } + return "" + filename + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + this.message + "\n" + codeLine + "\n" + marker; + }; + + exports.nameWhitespaceCharacter = function(string) { + switch (string) { + case ' ': + return 'space'; + case '\n': + return 'newline'; + case '\r': + return 'carriage return'; + case '\t': + return 'tab'; + default: + return string; + } + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs")) +},{"g5I+bs":19}],4:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + exports.transform = function(x, options) { + return x.icedTransform(options); + }; + + exports.runtime = _dereq_('iced-runtime'); + +}).call(this); + +},{"iced-runtime":15}],5:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, UNARY_MATH, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + _ref = _dereq_('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES; + + _ref1 = _dereq_('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; + + exports.Lexer = Lexer = (function() { + function Lexer() {} + + Lexer.prototype.tokenize = function(code, opts) { + var consumed, i, tag, _ref2; + if (opts == null) { + opts = {}; + } + this.literate = opts.literate; + this.indent = 0; + this.baseIndent = 0; + this.indebt = 0; + this.outdebt = 0; + this.indents = []; + this.ends = []; + this.tokens = []; + this.chunkLine = opts.line || 0; + this.chunkColumn = opts.column || 0; + code = this.clean(code); + i = 0; + while (this.chunk = code.slice(i)) { + consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); + _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1]; + i += consumed; + } + this.closeIndentation(); + if (tag = this.ends.pop()) { + this.error("missing " + tag); + } + if (opts.rewrite === false) { + return this.tokens; + } + return (new Rewriter).rewrite(this.tokens); + }; + + Lexer.prototype.clean = function(code) { + if (code.charCodeAt(0) === BOM) { + code = code.slice(1); + } + code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); + if (WHITESPACE.test(code)) { + code = "\n" + code; + this.chunkLine--; + } + if (this.literate) { + code = invertLiterate(code); + } + return code; + }; + + Lexer.prototype.identifierToken = function() { + var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4; + if (!(match = IDENTIFIER.exec(this.chunk))) { + return 0; + } + input = match[0], id = match[1], colon = match[2]; + idLength = id.length; + poppedToken = void 0; + if (id === 'own' && this.tag() === 'FOR') { + this.token('OWN', id); + return id.length; + } + if (id === 'from' && this.tag() === 'YIELD') { + this.token('FROM', id); + return id.length; + } + forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@') && id !== 'defer'; + tag = 'IDENTIFIER'; + if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { + tag = id.toUpperCase(); + if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) { + tag = 'LEADING_WHEN'; + } else if (tag === 'FOR') { + this.seenFor = true; + } else if (tag === 'UNLESS') { + tag = 'IF'; + } else if (__indexOf.call(UNARY, tag) >= 0) { + tag = 'UNARY'; + } else if (__indexOf.call(RELATION, tag) >= 0) { + if (tag !== 'INSTANCEOF' && this.seenFor) { + tag = 'FOR' + tag; + this.seenFor = false; + } else { + tag = 'RELATION'; + if (this.value() === '!') { + poppedToken = this.tokens.pop(); + id = '!' + id; + } + } + } + } + if (__indexOf.call(JS_FORBIDDEN, id) >= 0) { + if (forcedIdentifier) { + tag = 'IDENTIFIER'; + id = new String(id); + id.reserved = true; + } else if (__indexOf.call(RESERVED, id) >= 0) { + this.error("reserved word \"" + id + "\""); + } + } + if (!forcedIdentifier) { + if (__indexOf.call(COFFEE_ALIASES, id) >= 0) { + id = COFFEE_ALIAS_MAP[id]; + } + tag = (function() { + switch (id) { + case '!': + return 'UNARY'; + case '==': + case '!=': + return 'COMPARE'; + case '&&': + case '||': + return 'LOGIC'; + case 'true': + case 'false': + return 'BOOL'; + case 'break': + case 'continue': + return 'STATEMENT'; + default: + return tag; + } + })(); + } + tagToken = this.token(tag, id, 0, idLength); + if (poppedToken) { + _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1]; + } + if (colon) { + colonOffset = input.lastIndexOf(':'); + this.token(':', ':', colonOffset, colon.length); + } + return input.length; + }; + + Lexer.prototype.numberToken = function() { + var binaryLiteral, lexedLength, match, number, octalLiteral; + if (!(match = NUMBER.exec(this.chunk))) { + return 0; + } + number = match[0]; + if (/^0[BOX]/.test(number)) { + this.error("radix prefix '" + number + "' must be lowercase"); + } else if (/E/.test(number) && !/^0x/.test(number)) { + this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'"); + } else if (/^0\d*[89]/.test(number)) { + this.error("decimal literal '" + number + "' must not be prefixed with '0'"); + } else if (/^0\d+/.test(number)) { + this.error("octal literal '" + number + "' must be prefixed with '0o'"); + } + lexedLength = number.length; + if (octalLiteral = /^0o([0-7]+)/.exec(number)) { + number = '0x' + parseInt(octalLiteral[1], 8).toString(16); + } + if (binaryLiteral = /^0b([01]+)/.exec(number)) { + number = '0x' + parseInt(binaryLiteral[1], 2).toString(16); + } + this.token('NUMBER', number, 0, lexedLength); + return lexedLength; + }; + + Lexer.prototype.stringToken = function() { + var inner, innerLen, numBreak, octalEsc, pos, quote, string, trimmed; + switch (quote = this.chunk.charAt(0)) { + case "'": + string = (SIMPLESTR.exec(this.chunk) || [])[0]; + break; + case '"': + string = this.balancedString(this.chunk, '"'); + } + if (!string) { + return 0; + } + inner = string.slice(1, -1); + trimmed = this.removeNewlines(inner); + if (quote === '"' && 0 < string.indexOf('#{', 1)) { + numBreak = pos = 0; + innerLen = inner.length; + while (inner.charAt(pos++) === '\n' && pos < innerLen) { + numBreak++; + } + this.interpolateString(trimmed, { + strOffset: 1 + numBreak, + lexedLength: string.length + }); + } else { + this.token('STRING', quote + this.escapeLines(trimmed) + quote, 0, string.length); + } + if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) { + this.error("octal escape sequences " + string + " are not allowed"); + } + return string.length; + }; + + Lexer.prototype.heredocToken = function() { + var doc, heredoc, match, quote, strOffset; + if (!(match = HEREDOC.exec(this.chunk))) { + return 0; + } + heredoc = match[0]; + quote = heredoc.charAt(0); + doc = this.sanitizeHeredoc(match[2], { + quote: quote, + indent: null + }); + if (quote === '"' && 0 <= doc.indexOf('#{')) { + strOffset = match[2].charAt(0) === '\n' ? 4 : 3; + this.interpolateString(doc, { + heredoc: true, + strOffset: strOffset, + lexedLength: heredoc.length + }); + } else { + this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length); + } + return heredoc.length; + }; + + Lexer.prototype.commentToken = function() { + var comment, here, match; + if (!(match = this.chunk.match(COMMENT))) { + return 0; + } + comment = match[0], here = match[1]; + if (here) { + this.token('HERECOMMENT', this.sanitizeHeredoc(here, { + herecomment: true, + indent: repeat(' ', this.indent) + }), 0, comment.length); + } + return comment.length; + }; + + Lexer.prototype.jsToken = function() { + var match, script; + if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) { + return 0; + } + this.token('JS', (script = match[0]).slice(1, -1), 0, script.length); + return script.length; + }; + + Lexer.prototype.regexToken = function() { + var flags, length, match, prev, regex, _ref2, _ref3; + if (this.chunk.charAt(0) !== '/') { + return 0; + } + if (length = this.heregexToken()) { + return length; + } + prev = last(this.tokens); + if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) { + return 0; + } + if (!(match = REGEX.exec(this.chunk))) { + return 0; + } + _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2]; + if (regex === '//') { + return 0; + } + if (regex.slice(0, 2) === '/*') { + this.error('regular expressions cannot begin with `*`'); + } + this.token('REGEX', "" + regex + flags, 0, match.length); + return match.length; + }; + + Lexer.prototype.heregexToken = function() { + var body, flags, flagsOffset, heregex, match, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; + if (!(match = HEREGEX.exec(this.chunk))) { + return 0; + } + heregex = match[0], body = match[1], flags = match[2]; + if (0 > body.indexOf('#{')) { + re = this.escapeLines(body.replace(HEREGEX_OMIT, '$1$2').replace(/\//g, '\\/'), true); + if (re.match(/^\*/)) { + this.error('regular expressions cannot begin with `*`'); + } + this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length); + return heregex.length; + } + this.token('IDENTIFIER', 'RegExp', 0, 0); + this.token('CALL_START', '(', 0, 0); + tokens = []; + _ref2 = this.interpolateString(body, { + regex: true, + strOffset: 3 + }); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + token = _ref2[_i]; + tag = token[0], value = token[1]; + if (tag === 'TOKENS') { + tokens.push.apply(tokens, value); + } else if (tag === 'NEOSTRING') { + if (!(value = value.replace(HEREGEX_OMIT, '$1$2'))) { + continue; + } + value = value.replace(/\\/g, '\\\\'); + token[0] = 'STRING'; + token[1] = this.makeString(value, '"', true); + tokens.push(token); + } else { + this.error("Unexpected " + tag); + } + prev = last(this.tokens); + plusToken = ['+', '+']; + plusToken[2] = prev[2]; + tokens.push(plusToken); + } + tokens.pop(); + if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') { + this.token('STRING', '""', 0, 0); + this.token('+', '+', 0, 0); + } + (_ref4 = this.tokens).push.apply(_ref4, tokens); + if (flags) { + flagsOffset = heregex.lastIndexOf(flags); + this.token(',', ',', flagsOffset, 0); + this.token('STRING', '"' + flags + '"', flagsOffset, flags.length); + } + this.token(')', ')', heregex.length - 1, 0); + return heregex.length; + }; + + Lexer.prototype.lineToken = function() { + var diff, indent, match, noNewlines, size; + if (!(match = MULTI_DENT.exec(this.chunk))) { + return 0; + } + indent = match[0]; + this.seenFor = false; + size = indent.length - 1 - indent.lastIndexOf('\n'); + noNewlines = this.unfinished(); + if (size - this.indebt === this.indent) { + if (noNewlines) { + this.suppressNewlines(); + } else { + this.newlineToken(0); + } + return indent.length; + } + if (size > this.indent) { + if (noNewlines) { + this.indebt = size - this.indent; + this.suppressNewlines(); + return indent.length; + } + if (!this.tokens.length) { + this.baseIndent = this.indent = size; + return indent.length; + } + diff = size - this.indent + this.outdebt; + this.token('INDENT', diff, indent.length - size, size); + this.indents.push(diff); + this.ends.push('OUTDENT'); + this.outdebt = this.indebt = 0; + this.indent = size; + } else if (size < this.baseIndent) { + this.error('missing indentation', indent.length); + } else { + this.indebt = 0; + this.outdentToken(this.indent - size, noNewlines, indent.length); + } + return indent.length; + }; + + Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) { + var decreasedIndent, dent, lastIndent, _ref2; + decreasedIndent = this.indent - moveOut; + while (moveOut > 0) { + lastIndent = this.indents[this.indents.length - 1]; + if (!lastIndent) { + moveOut = 0; + } else if (lastIndent === this.outdebt) { + moveOut -= this.outdebt; + this.outdebt = 0; + } else if (lastIndent < this.outdebt) { + this.outdebt -= lastIndent; + moveOut -= lastIndent; + } else { + dent = this.indents.pop() + this.outdebt; + if (outdentLength && (_ref2 = this.chunk[outdentLength], __indexOf.call(INDENTABLE_CLOSERS, _ref2) >= 0)) { + decreasedIndent -= dent - moveOut; + moveOut = dent; + } + this.outdebt = 0; + this.pair('OUTDENT'); + this.token('OUTDENT', moveOut, 0, outdentLength); + moveOut -= dent; + } + } + if (dent) { + this.outdebt -= moveOut; + } + while (this.value() === ';') { + this.tokens.pop(); + } + if (!(this.tag() === 'TERMINATOR' || noNewlines)) { + this.token('TERMINATOR', '\n', outdentLength, 0); + } + this.indent = decreasedIndent; + return this; + }; + + Lexer.prototype.whitespaceToken = function() { + var match, nline, prev; + if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { + return 0; + } + prev = last(this.tokens); + if (prev) { + prev[match ? 'spaced' : 'newLine'] = true; + } + if (match) { + return match[0].length; + } else { + return 0; + } + }; + + Lexer.prototype.newlineToken = function(offset) { + while (this.value() === ';') { + this.tokens.pop(); + } + if (this.tag() !== 'TERMINATOR') { + this.token('TERMINATOR', '\n', offset, 0); + } + return this; + }; + + Lexer.prototype.suppressNewlines = function() { + if (this.value() === '\\') { + this.tokens.pop(); + } + return this; + }; + + Lexer.prototype.literalToken = function() { + var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5; + if (match = OPERATOR.exec(this.chunk)) { + value = match[0]; + if (CODE.test(value)) { + this.tagParameters(); + } + } else { + value = this.chunk.charAt(0); + } + tag = value; + prev = last(this.tokens); + if (value === '=' && prev) { + if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) { + this.error("reserved word \"" + (this.value()) + "\" can't be assigned"); + } + if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') { + prev[0] = 'COMPOUND_ASSIGN'; + prev[1] += '='; + return value.length; + } + } + if (value === ';') { + this.seenFor = false; + tag = 'TERMINATOR'; + } else if (__indexOf.call(MATH, value) >= 0) { + tag = 'MATH'; + } else if (__indexOf.call(COMPARE, value) >= 0) { + tag = 'COMPARE'; + } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) { + tag = 'COMPOUND_ASSIGN'; + } else if (__indexOf.call(UNARY, value) >= 0) { + tag = 'UNARY'; + } else if (__indexOf.call(UNARY_MATH, value) >= 0) { + tag = 'UNARY_MATH'; + } else if (__indexOf.call(SHIFT, value) >= 0) { + tag = 'SHIFT'; + } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { + tag = 'LOGIC'; + } else if (prev && !prev.spaced) { + if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) { + if (prev[0] === '?') { + prev[0] = 'FUNC_EXIST'; + } + tag = 'CALL_START'; + } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) { + tag = 'INDEX_START'; + switch (prev[0]) { + case '?': + prev[0] = 'INDEX_SOAK'; + } + } + } + switch (value) { + case '(': + case '{': + case '[': + this.ends.push(INVERSES[value]); + break; + case ')': + case '}': + case ']': + this.pair(value); + } + this.token(tag, value); + return value.length; + }; + + Lexer.prototype.sanitizeHeredoc = function(doc, options) { + var attempt, herecomment, indent, match, _ref2; + indent = options.indent, herecomment = options.herecomment; + if (herecomment) { + if (HEREDOC_ILLEGAL.test(doc)) { + this.error("block comment cannot contain \"*/\", starting"); + } + if (doc.indexOf('\n') < 0) { + return doc; + } + } else { + while (match = HEREDOC_INDENT.exec(doc)) { + attempt = match[1]; + if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) { + indent = attempt; + } + } + } + if (indent) { + doc = doc.replace(RegExp("\\n" + indent, "g"), '\n'); + } + if (!herecomment) { + doc = doc.replace(/^\n/, ''); + } + return doc; + }; + + Lexer.prototype.tagParameters = function() { + var i, stack, tok, tokens; + if (this.tag() !== ')') { + return this; + } + stack = []; + tokens = this.tokens; + i = tokens.length; + tokens[--i][0] = 'PARAM_END'; + while (tok = tokens[--i]) { + switch (tok[0]) { + case ')': + stack.push(tok); + break; + case '(': + case 'CALL_START': + if (stack.length) { + stack.pop(); + } else if (tok[0] === '(') { + tok[0] = 'PARAM_START'; + return this; + } else { + return this; + } + } + } + return this; + }; + + Lexer.prototype.closeIndentation = function() { + return this.outdentToken(this.indent); + }; + + Lexer.prototype.balancedString = function(str, end) { + var continueCount, i, letter, match, prev, stack, _i, _ref2; + continueCount = 0; + stack = [end]; + for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) { + if (continueCount) { + --continueCount; + continue; + } + switch (letter = str.charAt(i)) { + case '\\': + ++continueCount; + continue; + case end: + stack.pop(); + if (!stack.length) { + return str.slice(0, +i + 1 || 9e9); + } + end = stack[stack.length - 1]; + continue; + } + if (end === '}' && (letter === '"' || letter === "'")) { + stack.push(end = letter); + } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) { + continueCount += match[0].length - 1; + } else if (end === '}' && letter === '{') { + stack.push(end = '}'); + } else if (end === '"' && prev === '#' && letter === '{') { + stack.push(end = '}'); + } + prev = letter; + } + return this.error("missing " + (stack.pop()) + ", starting"); + }; + + Lexer.prototype.interpolateString = function(str, options) { + var column, errorToken, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; + if (options == null) { + options = {}; + } + heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength; + offsetInChunk || (offsetInChunk = 0); + strOffset || (strOffset = 0); + lexedLength || (lexedLength = str.length); + tokens = []; + pi = 0; + i = -1; + while (letter = str.charAt(i += 1)) { + if (letter === '\\') { + i += 1; + continue; + } + if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) { + continue; + } + if (pi < i) { + tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi)); + } + if (!errorToken) { + errorToken = this.makeToken('', 'string interpolation', offsetInChunk + i + 1, 2); + } + inner = expr.slice(1, -1); + if (inner.length) { + _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 2), line = _ref2[0], column = _ref2[1]; + nested = new Lexer().tokenize(inner, { + line: line, + column: column, + rewrite: false + }); + popped = nested.pop(); + if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') { + popped = nested.shift(); + } + if (len = nested.length) { + if (len > 1) { + nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0)); + nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0)); + } + tokens.push(['TOKENS', nested]); + } + } + i += expr.length; + pi = i + 1; + } + if ((i > pi && pi < str.length)) { + tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi)); + } + if (regex) { + return tokens; + } + if (!tokens.length) { + return this.token('STRING', '""', offsetInChunk, lexedLength); + } + if (tokens[0][0] !== 'NEOSTRING') { + tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk)); + } + if (interpolated = tokens.length > 1) { + this.token('(', '(', offsetInChunk, 0, errorToken); + } + for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { + token = tokens[i]; + tag = token[0], value = token[1]; + if (i) { + if (i) { + plusToken = this.token('+', '+'); + } + locationToken = tag === 'TOKENS' ? value[0] : token; + plusToken[2] = { + first_line: locationToken[2].first_line, + first_column: locationToken[2].first_column, + last_line: locationToken[2].first_line, + last_column: locationToken[2].first_column + }; + } + if (tag === 'TOKENS') { + (_ref4 = this.tokens).push.apply(_ref4, value); + } else if (tag === 'NEOSTRING') { + token[0] = 'STRING'; + token[1] = this.makeString(value, '"', heredoc); + this.tokens.push(token); + } else { + this.error("Unexpected " + tag); + } + } + if (interpolated) { + rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0); + rparen.stringEnd = true; + this.tokens.push(rparen); + } + return tokens; + }; + + Lexer.prototype.pair = function(tag) { + var wanted; + if (tag !== (wanted = last(this.ends))) { + if ('OUTDENT' !== wanted) { + this.error("unmatched " + tag); + } + this.outdentToken(last(this.indents), true); + return this.pair(tag); + } + return this.ends.pop(); + }; + + Lexer.prototype.getLineAndColumnFromChunk = function(offset) { + var column, lineCount, lines, string; + if (offset === 0) { + return [this.chunkLine, this.chunkColumn]; + } + if (offset >= this.chunk.length) { + string = this.chunk; + } else { + string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9); + } + lineCount = count(string, '\n'); + column = this.chunkColumn; + if (lineCount > 0) { + lines = string.split('\n'); + column = last(lines).length; + } else { + column += string.length; + } + return [this.chunkLine + lineCount, column]; + }; + + Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) { + var lastCharacter, locationData, token, _ref2, _ref3; + if (offsetInChunk == null) { + offsetInChunk = 0; + } + if (length == null) { + length = value.length; + } + locationData = {}; + _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1]; + lastCharacter = Math.max(0, length - 1); + _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1]; + token = [tag, value, locationData]; + return token; + }; + + Lexer.prototype.token = function(tag, value, offsetInChunk, length, origin) { + var token; + token = this.makeToken(tag, value, offsetInChunk, length); + if (origin) { + token.origin = origin; + } + this.tokens.push(token); + return token; + }; + + Lexer.prototype.tag = function(index, tag) { + var tok; + return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]); + }; + + Lexer.prototype.value = function(index, val) { + var tok; + return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]); + }; + + Lexer.prototype.unfinished = function() { + var _ref2; + return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === 'UNARY_MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'YIELD' || _ref2 === '**' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); + }; + + Lexer.prototype.removeNewlines = function(str) { + return str.replace(/^\s*\n\s*/, '').replace(/([^\\]|\\\\)\s*\n\s*$/, '$1'); + }; + + Lexer.prototype.escapeLines = function(str, heredoc) { + str = str.replace(/\\[^\S\n]*(\n|\\)\s*/g, function(escaped, character) { + if (character === '\n') { + return ''; + } else { + return escaped; + } + }); + if (heredoc) { + return str.replace(MULTILINER, '\\n'); + } else { + return str.replace(/\s*\n\s*/g, ' '); + } + }; + + Lexer.prototype.makeString = function(body, quote, heredoc) { + if (!body) { + return quote + quote; + } + body = body.replace(RegExp("\\\\(" + quote + "|\\\\)", "g"), function(match, contents) { + if (contents === quote) { + return contents; + } else { + return match; + } + }); + body = body.replace(RegExp("" + quote, "g"), '\\$&'); + return quote + this.escapeLines(body, heredoc) + quote; + }; + + Lexer.prototype.error = function(message, offset) { + var first_column, first_line, _ref2; + if (offset == null) { + offset = 0; + } + _ref2 = this.getLineAndColumnFromChunk(offset), first_line = _ref2[0], first_column = _ref2[1]; + return throwSyntaxError(message, { + first_line: first_line, + first_column: first_column + }); + }; + + return Lexer; + + })(); + + JS_KEYWORDS = ['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']; + + COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; + + COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(['await', 'defer']); + + COFFEE_ALIAS_MAP = { + and: '&&', + or: '||', + is: '==', + isnt: '!=', + not: '!', + yes: 'true', + no: 'false', + on: 'true', + off: 'false' + }; + + COFFEE_ALIASES = (function() { + var _results; + _results = []; + for (key in COFFEE_ALIAS_MAP) { + _results.push(key); + } + return _results; + })(); + + COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); + + RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; + + STRICT_PROSCRIBED = ['arguments', 'eval', 'yield*']; + + JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); + + exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED); + + exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; + + BOM = 65279; + + IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/; + + NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; + + HEREDOC = /^("""|''')((?:\\[\s\S]|[^\\])*?)(?:\n[^\n\S]*)?\1/; + + OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/; + + WHITESPACE = /^[^\n\S]+/; + + COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/; + + CODE = /^[-=]>/; + + MULTI_DENT = /^(?:\n[^\n\S]*)+/; + + SIMPLESTR = /^'[^\\']*(?:\\[\s\S][^\\']*)*'/; + + JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/; + + REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/; + + HEREGEX = /^\/{3}((?:\\?[\s\S])+?)\/{3}([imgy]{0,4})(?!\w)/; + + HEREGEX_OMIT = /((?:\\\\)+)|\\(\s|\/)|\s+(?:#.*)?/g; + + MULTILINER = /\n/g; + + HEREDOC_INDENT = /\n+([^\n\S]*)/g; + + HEREDOC_ILLEGAL = /\*\//; + + LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; + + TRAILING_SPACES = /\s+$/; + + COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '**=', '//=', '%%=']; + + UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO']; + + UNARY_MATH = ['!', '~']; + + LOGIC = ['&&', '||', '&', '|', '^']; + + SHIFT = ['<<', '>>', '>>>']; + + COMPARE = ['==', '!=', '<', '>', '<=', '>=']; + + MATH = ['*', '/', '%', '//', '%%']; + + RELATION = ['IN', 'OF', 'INSTANCEOF']; + + BOOL = ['TRUE', 'FALSE']; + + NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--']; + + NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']'); + + CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER']; + + INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED'); + + LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; + + INDENTABLE_CLOSERS = [')', '}', ']']; + + CALLABLE.push('DEFER'); + +}).call(this); + +},{"./helpers":3,"./rewriter":9}],6:[function(_dereq_,module,exports){ +(function (__dirname){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var Access, Arr, Assign, Await, Base, Block, Call, Class, Closure, Code, CodeFragment, Comment, CpsCascade, Defer, Existence, Expansion, Extends, For, HEXNUM, IDENTIFIER, IDENTIFIER_STR, IS_REGEX, IS_STRING, IcedReturnValue, IcedRuntime, IcedTailCall, If, In, Index, InlineRuntime, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, NULL, NUMBER, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Slot, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, iced, isLiteralArguments, isLiteralThis, last, locationDataToString, merge, multident, parseNum, pathmod, quote_funcname_for_debug, quote_path_for_emission, require_top_dir, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.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; }, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + __slice = [].slice; + + Error.stackTraceLimit = Infinity; + + Scope = _dereq_('./scope').Scope; + + _ref = _dereq_('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED; + + iced = _dereq_('iced-runtime'); + + pathmod = _dereq_('path'); + + _ref1 = _dereq_('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; + + exports.extend = extend; + + exports.addLocationDataFn = addLocationDataFn; + + YES = function() { + return true; + }; + + NO = function() { + return false; + }; + + THIS = function() { + return this; + }; + + NEGATE = function() { + this.negated = !this.negated; + return this; + }; + + NULL = function() { + return new Value(new Literal('null')); + }; + + exports.CodeFragment = CodeFragment = (function() { + function CodeFragment(parent, code) { + var _ref2; + this.code = "" + code; + this.locationData = parent != null ? parent.locationData : void 0; + this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown'; + } + + CodeFragment.prototype.toString = function() { + return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : ''); + }; + + return CodeFragment; + + })(); + + fragmentsToText = function(fragments) { + var fragment; + return ((function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = fragments.length; _i < _len; _i++) { + fragment = fragments[_i]; + _results.push(fragment.code); + } + return _results; + })()).join(''); + }; + + exports.Base = Base = (function() { + function Base() { + this.icedContinuationBlock = null; + this.icedLoopFlag = false; + this.icedNodeFlag = false; + this.icedGotCpsSplitFlag = false; + this.icedCpsPivotFlag = false; + this.icedHasAutocbFlag = false; + this.icedFoundArguments = false; + this.icedParentAwait = null; + this.icedCallContinuationFlag = false; + } + + Base.prototype.compile = function(o, lvl) { + return fragmentsToText(this.compileToFragments(o, lvl)); + }; + + Base.prototype.compileToFragments = function(o, lvl) { + var node; + o = extend({}, o); + if (lvl) { + o.level = lvl; + } + node = this.unfoldSoak(o) || this; + node.tab = o.indent; + if (node.icedHasContinuation() && !node.icedGotCpsSplitFlag) { + return node.icedCompileCps(o); + } else if (o.level === LEVEL_TOP || !node.isStatement(o)) { + return node.compileNode(o); + } else { + return node.compileClosure(o); + } + }; + + Base.prototype.compileClosure = function(o) { + var args, argumentsNode, func, jumpNode, meth; + if (jumpNode = this.jumps()) { + jumpNode.error('cannot use a pure statement in an expression'); + } + o.sharedScope = true; + this.icedClearAutocbFlags(); + func = new Code([], Block.wrap([this])); + args = []; + if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { + args = [new Literal('this')]; + if (argumentsNode) { + meth = 'apply'; + args.push(new Literal('arguments')); + } else { + meth = 'call'; + } + func = new Value(func, [new Access(new Literal(meth))]); + } + return (new Call(func, args)).compileNode(o); + }; + + Base.prototype.cache = function(o, level, reused) { + var ref, sub; + if (!this.isComplex()) { + ref = level ? this.compileToFragments(o, level) : this; + return [ref, ref]; + } else { + ref = new Literal(reused || o.scope.freeVariable('ref')); + sub = new Assign(ref, this); + if (level) { + return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]]; + } else { + return [sub, ref]; + } + } + }; + + Base.prototype.cacheToCodeFragments = function(cacheValues) { + return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])]; + }; + + Base.prototype.makeReturn = function(res) { + var me; + me = this.unwrapAll(); + if (res) { + return new Call(new Literal("" + res + ".push"), [me]); + } else { + return new Return(me, this.icedHasAutocbFlag); + } + }; + + Base.prototype.contains = function(pred) { + var node; + node = void 0; + this.traverseChildren(false, function(n) { + if (pred(n)) { + node = n; + return false; + } + }); + return node; + }; + + Base.prototype.lastNonComment = function(list) { + var i; + i = list.length; + while (i--) { + if (!(list[i] instanceof Comment)) { + return list[i]; + } + } + return null; + }; + + Base.prototype.toString = function(idt, name) { + var extras, tree; + if (idt == null) { + idt = ''; + } + if (name == null) { + name = this.constructor.name; + } + extras = []; + if (this.icedNodeFlag) { + extras.push("A"); + } + if (this.icedLoopFlag) { + extras.push("L"); + } + if (this.icedCpsPivotFlag) { + extras.push("P"); + } + if (this.icedIsAutocbCode) { + extras.push("B"); + } + if (this.icedHasAutocbFlag) { + extras.push("C"); + } + if (this.icedParentAwait) { + extras.push("D"); + } + if (this.icedFoundArguments) { + extras.push("G"); + } + if (extras.length) { + extras = " (" + extras.join('') + ")"; + } + tree = '\n' + idt + name; + tree = '\n' + idt + name; + if (this.soak) { + tree += '?'; + } + tree += extras; + this.eachChild(function(node) { + return tree += node.toString(idt + TAB); + }); + if (this.icedContinuationBlock) { + idt += TAB; + tree += '\n' + idt + "Continuation"; + tree += this.icedContinuationBlock.toString(idt + TAB); + } + return tree; + }; + + Base.prototype.eachChild = function(func) { + var attr, child, _i, _j, _len, _len1, _ref2, _ref3; + if (!this.children) { + return this; + } + _ref2 = this.children; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + attr = _ref2[_i]; + if (this[attr]) { + _ref3 = flatten([this[attr]]); + for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { + child = _ref3[_j]; + if (func(child) === false) { + return this; + } + } + } + } + return this; + }; + + Base.prototype.traverseChildren = function(crossScope, func) { + return this.eachChild(function(child) { + var recur; + recur = func(child); + if (recur !== false) { + return child.traverseChildren(crossScope, func); + } + }); + }; + + Base.prototype.invert = function() { + return new Op('!', this); + }; + + Base.prototype.unwrapAll = function() { + var node; + node = this; + while (node !== (node = node.unwrap())) { + continue; + } + return node; + }; + + Base.prototype.flattenChildren = function() { + var attr, child, out, _i, _j, _len, _len1, _ref2, _ref3; + out = []; + _ref2 = this.children; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + attr = _ref2[_i]; + if (this[attr]) { + _ref3 = flatten([this[attr]]); + for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { + child = _ref3[_j]; + out.push(child); + } + } + } + return out; + }; + + Base.prototype.icedCompileCps = function(o) { + var code; + this.icedGotCpsSplitFlag = true; + code = CpsCascade.wrap(this, this.icedContinuationBlock, null, o); + o.sharedScope = true; + return code.compileNode(o); + }; + + Base.prototype.icedWalkAst = function(p, o) { + var child, _i, _len, _ref2; + this.icedParentAwait = p; + this.icedHasAutocbFlag = o.foundAutocb; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkAst(p, o)) { + this.icedNodeFlag = true; + } + } + return this.icedNodeFlag; + }; + + Base.prototype.icedWalkAstLoops = function(flood) { + var child, _i, _len, _ref2; + if (this.isLoop() && this.icedNodeFlag) { + flood = true; + } + if (this.isLoop() && !this.icedNodeFlag) { + flood = false; + } + this.icedLoopFlag = flood; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkAstLoops(flood)) { + this.icedLoopFlag = true; + } + } + return this.icedLoopFlag; + }; + + Base.prototype.icedWalkCpsPivots = function() { + var child, _i, _len, _ref2; + if (this.icedNodeFlag || (this.icedLoopFlag && this.icedIsJump())) { + this.icedCpsPivotFlag = true; + } + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + if (child.icedWalkCpsPivots()) { + this.icedCpsPivotFlag = true; + } + } + return this.icedCpsPivotFlag; + }; + + Base.prototype.icedClearAutocbFlags = function() { + this.icedHasAutocbFlag = false; + return this.traverseChildren(false, function(node) { + node.icedHasAutocbFlag = false; + return true; + }); + }; + + Base.prototype.icedCpsRotate = function() { + var child, _i, _len, _ref2; + _ref2 = this.flattenChildren(); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + child = _ref2[_i]; + child.icedCpsRotate(); + } + return this; + }; + + Base.prototype.icedIsCpsPivot = function() { + return this.icedCpsPivotFlag; + }; + + Base.prototype.icedNestContinuationBlock = function(b) { + return this.icedContinuationBlock = b; + }; + + Base.prototype.icedHasContinuation = function() { + return !!this.icedContinuationBlock; + }; + + Base.prototype.icedCallContinuation = function() { + return this.icedCallContinuationFlag = true; + }; + + Base.prototype.icedWrapContinuation = NO; + + Base.prototype.icedIsJump = NO; + + Base.prototype.icedUnwrap = function(e) { + if (e.icedHasContinuation() && this.icedHasContinuation()) { + return this; + } else { + if (this.icedHasContinuation()) { + e.icedContinuationBlock = this.icedContinuationBlock; + } + return e; + } + }; + + Base.prototype.icedStatementAssertion = function() { + if (this.icedIsCpsPivot()) { + return this.error("await'ed statements can't act as expressions"); + } + }; + + Base.prototype.children = []; + + Base.prototype.isStatement = NO; + + Base.prototype.jumps = NO; + + Base.prototype.isComplex = YES; + + Base.prototype.isChainable = NO; + + Base.prototype.isAssignable = NO; + + Base.prototype.isLoop = NO; + + Base.prototype.unwrap = THIS; + + Base.prototype.unfoldSoak = NO; + + Base.prototype.assigns = NO; + + Base.prototype.updateLocationDataIfMissing = function(locationData) { + if (this.locationData) { + return this; + } + this.locationData = locationData; + return this.eachChild(function(child) { + return child.updateLocationDataIfMissing(locationData); + }); + }; + + Base.prototype.error = function(message) { + return throwSyntaxError(message, this.locationData); + }; + + Base.prototype.makeCode = function(code) { + return new CodeFragment(this, code); + }; + + Base.prototype.wrapInBraces = function(fragments) { + return [].concat(this.makeCode('('), fragments, this.makeCode(')')); + }; + + Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) { + var answer, fragments, i, _i, _len; + answer = []; + for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) { + fragments = fragmentsList[i]; + if (i) { + answer.push(this.makeCode(joinStr)); + } + answer = answer.concat(fragments); + } + return answer; + }; + + return Base; + + })(); + + exports.Block = Block = (function(_super) { + __extends(Block, _super); + + function Block(nodes) { + Block.__super__.constructor.call(this); + this.expressions = compact(flatten(nodes || [])); + } + + Block.prototype.children = ['expressions']; + + Block.prototype.push = function(node) { + this.expressions.push(node); + return this; + }; + + Block.prototype.pop = function() { + return this.expressions.pop(); + }; + + Block.prototype.unshift = function(node) { + this.expressions.unshift(node); + return this; + }; + + Block.prototype.unwrap = function() { + if (this.expressions.length === 1) { + return this.icedUnwrap(this.expressions[0]); + } else { + return this; + } + }; + + Block.prototype.isEmpty = function() { + return !this.expressions.length; + }; + + Block.prototype.isStatement = function(o) { + var exp, _i, _len, _ref2; + _ref2 = this.expressions; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + exp = _ref2[_i]; + if (exp.isStatement(o)) { + return true; + } + } + return false; + }; + + Block.prototype.jumps = function(o) { + var exp, jumpNode, _i, _len, _ref2; + _ref2 = this.expressions; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + exp = _ref2[_i]; + if (jumpNode = exp.jumps(o)) { + return jumpNode; + } + } + }; + + Block.prototype.makeReturn = function(res) { + var expr, foundReturn, len; + len = this.expressions.length; + foundReturn = false; + while (len--) { + expr = this.expressions[len]; + if (!(expr instanceof Comment)) { + this.expressions[len] = expr.makeReturn(res); + if (expr instanceof Return && !expr.expression && !expr.icedHasAutocbFlag) { + this.expressions.splice(len, 1); + foundReturn = true; + } else if (!(expr instanceof If) || expr.elseBody) { + foundReturn = true; + } + break; + } + } + if (this.icedHasAutocbFlag && !this.icedNodeFlag && !foundReturn) { + this.expressions.push(new Return(null, true)); + } + return this; + }; + + Block.prototype.compileToFragments = function(o, level) { + if (o == null) { + o = {}; + } + if (o.scope) { + return Block.__super__.compileToFragments.call(this, o, level); + } else { + return this.compileRoot(o); + } + }; + + Block.prototype.compileNode = function(o) { + var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2; + this.tab = o.indent; + top = o.level === LEVEL_TOP; + compiledNodes = []; + _ref2 = this.expressions; + for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) { + node = _ref2[index]; + node = node.unwrapAll(); + node = node.unfoldSoak(o) || node; + if (node instanceof Block) { + compiledNodes.push(node.compileNode(o)); + } else if (top) { + node.front = true; + fragments = node.compileToFragments(o); + if (!node.isStatement(o)) { + fragments.unshift(this.makeCode("" + this.tab)); + fragments.push(this.makeCode(";")); + } + compiledNodes.push(fragments); + } else { + compiledNodes.push(node.compileToFragments(o, LEVEL_LIST)); + } + } + if (top) { + if (this.spaced) { + return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n")); + } else { + return this.joinFragmentArrays(compiledNodes, '\n'); + } + } + if (compiledNodes.length) { + answer = this.joinFragmentArrays(compiledNodes, ', '); + } else { + answer = [this.makeCode("void 0")]; + } + if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Block.prototype.compileRoot = function(o) { + var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2; + o.indent = o.bare ? '' : TAB; + o.level = LEVEL_TOP; + this.spaced = true; + o.scope = new Scope(null, this, null); + _ref2 = o.locals || []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + name = _ref2[_i]; + o.scope.parameter(name); + } + prelude = []; + if (!o.bare) { + preludeExps = (function() { + var _j, _len1, _ref3, _results; + _ref3 = this.expressions; + _results = []; + for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) { + exp = _ref3[i]; + if (!(exp.unwrap() instanceof Comment)) { + break; + } + _results.push(exp); + } + return _results; + }).call(this); + rest = this.expressions.slice(preludeExps.length); + this.expressions = preludeExps; + if (preludeExps.length) { + prelude = this.compileNode(merge(o, { + indent: '' + })); + prelude.push(this.makeCode("\n")); + } + this.expressions = rest; + } + fragments = this.compileWithDeclarations(o); + if (o.bare) { + return fragments; + } + return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n")); + }; + + Block.prototype.compileWithDeclarations = function(o) { + var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4; + fragments = []; + post = []; + _ref2 = this.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + exp = _ref2[i]; + exp = exp.unwrap(); + if (!(exp instanceof Comment || exp instanceof Literal)) { + break; + } + } + o = merge(o, { + level: LEVEL_TOP + }); + if (i) { + rest = this.expressions.splice(i, 9e9); + _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1]; + _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1]; + this.expressions = rest; + } + post = this.compileNode(o); + scope = o.scope; + if (scope.expressions === this) { + declars = o.scope.hasDeclarations(); + assigns = scope.hasAssignments; + if (declars || assigns) { + if (i) { + fragments.push(this.makeCode('\n')); + } + fragments.push(this.makeCode("" + this.tab + "var ")); + if (declars) { + fragments.push(this.makeCode(scope.declaredVariables().join(', '))); + } + if (assigns) { + if (declars) { + fragments.push(this.makeCode(",\n" + (this.tab + TAB))); + } + fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB)))); + } + fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : ''))); + } else if (fragments.length && post.length) { + fragments.push(this.makeCode("\n")); + } + } + return fragments.concat(post); + }; + + Block.wrap = function(nodes) { + if (nodes.length === 1 && nodes[0] instanceof Block) { + return nodes[0]; + } + return new Block(nodes); + }; + + Block.prototype.icedThreadReturn = function(call) { + var expr, len; + call = call || new IcedTailCall; + len = this.expressions.length; + while (len--) { + expr = this.expressions[len]; + if (expr.isStatement()) { + break; + } + if (!(expr instanceof Comment) && !(expr instanceof Return)) { + call.assignValue(expr); + this.expressions[len] = call; + return; + } + } + return this.expressions.push(call); + }; + + Block.prototype.icedCompileCps = function(o) { + this.icedGotCpsSplitFlag = true; + if (this.expressions.length > 1) { + return Block.__super__.icedCompileCps.call(this, o); + } else { + return this.compileNode(o); + } + }; + + Block.prototype.icedCpsRotate = function() { + var child, e, i, pivot, rest, _i, _j, _len, _len1, _ref2; + pivot = null; + _ref2 = this.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + e = _ref2[i]; + if (e.icedIsCpsPivot()) { + pivot = e; + pivot.icedCallContinuation(); + } + e.icedCpsRotate(); + if (pivot) { + break; + } + } + if (!pivot) { + return this; + } + if (pivot.icedContinuationBlock) { + throw SyntaxError("unexpected continuation block in node"); + } + rest = this.expressions.slice(i + 1); + this.expressions = this.expressions.slice(0, i + 1); + if (rest.length) { + child = new Block(rest); + pivot.icedNestContinuationBlock(child); + for (_j = 0, _len1 = rest.length; _j < _len1; _j++) { + e = rest[_j]; + if (e.icedNodeFlag) { + child.icedNodeFlag = true; + } + if (e.icedLoopFlag) { + child.icedLoopFlag = true; + } + if (e.icedCpsPivotFlag) { + child.icedCpsPivotFlag = true; + } + if (e.icedHasAutocbFlag) { + child.icedHasAutocbFlag = true; + } + } + child.icedCpsRotate(); + } + return this; + }; + + Block.prototype.icedAddRuntime = function(foundDefer, foundAwait) { + var index, node; + index = 0; + while ((node = this.expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { + index++; + } + return this.expressions.splice(index, 0, new IcedRuntime(foundDefer, foundAwait)); + }; + + Block.prototype.icedTransform = function(opts) { + var obj; + obj = {}; + this.icedWalkAst(null, obj); + if (!(opts != null ? opts.repl : void 0) && (obj.foundDefer || obj.foundAwait || opts.runforce)) { + this.icedAddRuntime(obj.foundDefer, obj.foundAwait); + } + if (obj.foundAwait) { + this.icedWalkAstLoops(false); + this.icedWalkCpsPivots(); + this.icedCpsRotate(); + } + return this; + }; + + Block.prototype.icedGetSingle = function() { + if (this.expressions.length === 1) { + return this.expressions[0]; + } else { + return null; + } + }; + + return Block; + + })(Base); + + exports.Literal = Literal = (function(_super) { + __extends(Literal, _super); + + function Literal(value) { + this.value = value; + if (this.value == null) { + throw new Error("whoops!"); + } + Literal.__super__.constructor.call(this); + } + + Literal.prototype.makeReturn = function() { + if (this.isStatement()) { + return this; + } else { + return Literal.__super__.makeReturn.apply(this, arguments); + } + }; + + Literal.prototype.isAssignable = function() { + return IDENTIFIER.test(this.value); + }; + + Literal.prototype.isStatement = function() { + var _ref2; + return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger'; + }; + + Literal.prototype.isComplex = NO; + + Literal.prototype.assigns = function(name) { + return name === this.value; + }; + + Literal.prototype.jumps = function(o) { + if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { + return this; + } + if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { + return this; + } + }; + + Literal.prototype.compileNode = function(o) { + var answer, code, _ref2; + if (this.icedLoopFlag && this.icedIsJump()) { + return this.icedCompileIced(o); + } + code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value; + answer = this.isStatement() ? "" + this.tab + code + ";" : code; + return [this.makeCode(answer)]; + }; + + Literal.prototype.toString = function() { + return ' "' + this.value + '"'; + }; + + Literal.prototype.icedWalkAst = function(parent, o) { + if (this.value === 'arguments' && o.foundAwaitFunc) { + o.foundArguments = true; + this.value = "_arguments"; + } + return false; + }; + + Literal.prototype.icedIsJump = function() { + var _ref2; + return (_ref2 = this.value) === 'break' || _ref2 === 'continue'; + }; + + Literal.prototype.icedCompileIced = function(o) { + var call, d, func, l; + d = { + 'continue': iced["const"].c_while, + 'break': iced["const"].b_while + }; + l = d[this.value]; + func = new Value(new Literal(l)); + call = new Call(func, []); + return call.compileNode(o); + }; + + return Literal; + + })(Base); + + exports.Undefined = (function(_super) { + __extends(Undefined, _super); + + function Undefined() { + return Undefined.__super__.constructor.apply(this, arguments); + } + + Undefined.prototype.isAssignable = NO; + + Undefined.prototype.isComplex = NO; + + Undefined.prototype.compileNode = function(o) { + return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')]; + }; + + return Undefined; + + })(Base); + + exports.Null = (function(_super) { + __extends(Null, _super); + + function Null() { + return Null.__super__.constructor.apply(this, arguments); + } + + Null.prototype.isAssignable = NO; + + Null.prototype.isComplex = NO; + + Null.prototype.compileNode = function() { + return [this.makeCode("null")]; + }; + + return Null; + + })(Base); + + exports.Bool = (function(_super) { + __extends(Bool, _super); + + Bool.prototype.isAssignable = NO; + + Bool.prototype.isComplex = NO; + + Bool.prototype.compileNode = function() { + return [this.makeCode(this.val)]; + }; + + function Bool(val) { + this.val = val; + } + + return Bool; + + })(Base); + + exports.Return = Return = (function(_super) { + __extends(Return, _super); + + function Return(expression, auto) { + this.expression = expression; + Return.__super__.constructor.call(this); + this.icedHasAutocbFlag = auto; + } + + Return.prototype.children = ['expression']; + + Return.prototype.isStatement = YES; + + Return.prototype.makeReturn = THIS; + + Return.prototype.jumps = THIS; + + Return.prototype.compileToFragments = function(o, level) { + var expr, _ref2; + expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0; + if (expr && !(expr instanceof Return)) { + return expr.compileToFragments(o, level); + } else { + return Return.__super__.compileToFragments.call(this, o, level); + } + }; + + Return.prototype.compileNode = function(o) { + var answer; + if (this.icedHasAutocbFlag) { + return this.icedCompileIced(o); + } + answer = []; + answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : "")))); + if (this.expression) { + answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN)); + } + answer.push(this.makeCode(";")); + return answer; + }; + + Return.prototype.icedCompileIced = function(o) { + var args, block, call, cb, ret; + cb = new Value(new Literal(iced["const"].autocb)); + args = this.expression ? [this.expression] : []; + call = new Call(cb, args); + ret = new Literal("return"); + block = new Block([call, ret]); + return block.compileNode(o); + }; + + return Return; + + })(Base); + + exports.Value = Value = (function(_super) { + __extends(Value, _super); + + function Value(base, props, tag) { + Value.__super__.constructor.call(this); + if (!props && base instanceof Value) { + return base; + } + this.base = base; + this.properties = props || []; + if (tag) { + this[tag] = true; + } + return this; + } + + Value.prototype.children = ['base', 'properties']; + + Value.prototype.copy = function() { + return new Value(this.base, this.properties); + }; + + Value.prototype.add = function(props) { + this.properties = this.properties.concat(props); + return this; + }; + + Value.prototype.hasProperties = function() { + return !!this.properties.length; + }; + + Value.prototype.bareLiteral = function(type) { + return !this.properties.length && this.base instanceof type; + }; + + Value.prototype.isArray = function() { + return this.bareLiteral(Arr); + }; + + Value.prototype.isRange = function() { + return this.bareLiteral(Range); + }; + + Value.prototype.isComplex = function() { + return this.hasProperties() || this.base.isComplex(); + }; + + Value.prototype.isAssignable = function() { + return this.hasProperties() || this.base.isAssignable(); + }; + + Value.prototype.isSimpleNumber = function() { + return this.bareLiteral(Literal) && SIMPLENUM.test(this.base.value); + }; + + Value.prototype.isString = function() { + return this.bareLiteral(Literal) && IS_STRING.test(this.base.value); + }; + + Value.prototype.isRegex = function() { + return this.bareLiteral(Literal) && IS_REGEX.test(this.base.value); + }; + + Value.prototype.isAtomic = function() { + var node, _i, _len, _ref2; + _ref2 = this.properties.concat(this.base); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + node = _ref2[_i]; + if (node.soak || node instanceof Call) { + return false; + } + } + return true; + }; + + Value.prototype.isNotCallable = function() { + return this.isSimpleNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject(); + }; + + Value.prototype.isStatement = function(o) { + return !this.properties.length && this.base.isStatement(o); + }; + + Value.prototype.assigns = function(name) { + return !this.properties.length && this.base.assigns(name); + }; + + Value.prototype.jumps = function(o) { + return !this.properties.length && this.base.jumps(o); + }; + + Value.prototype.isObject = function(onlyGenerated) { + if (this.properties.length) { + return false; + } + return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); + }; + + Value.prototype.isSplice = function() { + return last(this.properties) instanceof Slice; + }; + + Value.prototype.looksStatic = function(className) { + var _ref2; + return this.base.value === className && this.properties.length && ((_ref2 = this.properties[0].name) != null ? _ref2.value : void 0) !== 'prototype'; + }; + + Value.prototype.unwrap = function() { + if (this.properties.length) { + return this; + } else { + return this.base; + } + }; + + Value.prototype.cacheReference = function(o) { + var base, bref, name, nref; + name = last(this.properties); + if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) { + return [this, this]; + } + base = new Value(this.base, this.properties.slice(0, -1)); + if (base.isComplex()) { + bref = new Literal(o.scope.freeVariable('base')); + base = new Value(new Parens(new Assign(bref, base))); + } + if (!name) { + return [base, bref]; + } + if (name.isComplex()) { + nref = new Literal(o.scope.freeVariable('name')); + name = new Index(new Assign(nref, name.index)); + nref = new Index(nref); + } + return [base.add(name), new Value(bref || base.base, [nref || name])]; + }; + + Value.prototype.compileNode = function(o) { + var fragments, prop, props, _i, _len; + this.base.front = this.front; + props = this.properties; + fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null)); + if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) { + fragments.push(this.makeCode('.')); + } + for (_i = 0, _len = props.length; _i < _len; _i++) { + prop = props[_i]; + fragments.push.apply(fragments, prop.compileToFragments(o)); + } + return fragments; + }; + + Value.prototype.unfoldSoak = function(o) { + return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function(_this) { + return function() { + var fst, i, ifn, prop, ref, snd, _i, _len, _ref2, _ref3; + if (ifn = _this.base.unfoldSoak(o)) { + (_ref2 = ifn.body.properties).push.apply(_ref2, _this.properties); + return ifn; + } + _ref3 = _this.properties; + for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) { + prop = _ref3[i]; + if (!prop.soak) { + continue; + } + prop.soak = false; + fst = new Value(_this.base, _this.properties.slice(0, i)); + snd = new Value(_this.base, _this.properties.slice(i)); + if (fst.isComplex()) { + ref = new Literal(o.scope.freeVariable('ref')); + fst = new Parens(new Assign(ref, fst)); + snd.base = ref; + } + return new If(new Existence(fst), snd, { + soak: true + }); + } + return false; + }; + })(this)(); + }; + + Value.prototype.icedToSlot = function(i) { + var suffix; + if (this.base instanceof Obj) { + return this.base.icedToSlot(i); + } + suffix = null; + if (this.properties && this.properties.length) { + suffix = this.properties.pop(); + } + return new Slot(i, this, suffix); + }; + + Value.prototype.icedToSlotAccess = function() { + if (this["this"]) { + return this.properties[0]; + } else { + return new Access(this); + } + }; + + return Value; + + })(Base); + + exports.Comment = Comment = (function(_super) { + __extends(Comment, _super); + + function Comment(comment) { + this.comment = comment; + Comment.__super__.constructor.call(this); + } + + Comment.prototype.isStatement = YES; + + Comment.prototype.makeReturn = THIS; + + Comment.prototype.compileNode = function(o, level) { + var code, comment; + comment = this.comment.replace(/^(\s*)# /gm, "$1 * "); + code = "/*" + (multident(comment, this.tab)) + (__indexOf.call(comment, '\n') >= 0 ? "\n" + this.tab : '') + " */"; + if ((level || o.level) === LEVEL_TOP) { + code = o.indent + code; + } + return [this.makeCode("\n"), this.makeCode(code)]; + }; + + return Comment; + + })(Base); + + exports.Call = Call = (function(_super) { + __extends(Call, _super); + + function Call(variable, args, soak) { + this.args = args != null ? args : []; + this.soak = soak; + Call.__super__.constructor.call(this); + this.isNew = false; + this.isSuper = variable === 'super'; + this.variable = this.isSuper ? null : variable; + if (variable instanceof Value && variable.isNotCallable()) { + variable.error("literal is not a function"); + } + } + + Call.prototype.children = ['variable', 'args']; + + Call.prototype.newInstance = function() { + var base, _ref2; + base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable; + if (base instanceof Call && !base.isNew) { + base.newInstance(); + } else { + this.isNew = true; + } + return this; + }; + + Call.prototype.superReference = function(o) { + var accesses, method; + method = o.scope.namedMethod(); + if (method != null ? method.klass : void 0) { + accesses = [new Access(new Literal('__super__'))]; + if (method["static"]) { + accesses.push(new Access(new Literal('constructor'))); + } + accesses.push(new Access(new Literal(method.name))); + return (new Value(new Literal(method.klass), accesses)).compile(o); + } else if (method != null ? method.ctor : void 0) { + return "" + method.name + ".__super__.constructor"; + } else { + return this.error('cannot call super outside of an instance method.'); + } + }; + + Call.prototype.superThis = function(o) { + var method; + if (o.scope.icedgen) { + return "_this"; + } else { + method = o.scope.method; + return (method && !method.klass && method.context) || "this"; + } + }; + + Call.prototype.unfoldSoak = function(o) { + var call, ifn, left, list, rite, _i, _len, _ref2, _ref3; + if (this.soak) { + if (this.variable) { + if (ifn = unfoldSoak(o, this, 'variable')) { + return ifn; + } + _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1]; + } else { + left = new Literal(this.superReference(o)); + rite = new Value(left); + } + rite = new Call(rite, this.args); + rite.isNew = this.isNew; + left = new Literal("typeof " + (left.compile(o)) + " === \"function\""); + return new If(left, new Value(rite), { + soak: true + }); + } + call = this; + list = []; + while (true) { + if (call.variable instanceof Call) { + list.push(call); + call = call.variable; + continue; + } + if (!(call.variable instanceof Value)) { + break; + } + list.push(call); + if (!((call = call.variable.base) instanceof Call)) { + break; + } + } + _ref3 = list.reverse(); + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + call = _ref3[_i]; + if (ifn) { + if (call.variable instanceof Call) { + call.variable = ifn; + } else { + call.variable.base = ifn; + } + } + ifn = unfoldSoak(o, call, 'variable'); + } + return ifn; + }; + + Call.prototype.compileNode = function(o) { + var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref2, _ref3; + if ((_ref2 = this.variable) != null) { + _ref2.front = this.front; + } + compiledArray = Splat.compileSplattedArray(o, this.args, true); + if (compiledArray.length) { + return this.compileSplat(o, compiledArray); + } + compiledArgs = []; + _ref3 = this.args; + for (argIndex = _i = 0, _len = _ref3.length; _i < _len; argIndex = ++_i) { + arg = _ref3[argIndex]; + arg.icedStatementAssertion(); + if (argIndex) { + compiledArgs.push(this.makeCode(", ")); + } + compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST)); + } + fragments = []; + if (this.isSuper) { + preface = this.superReference(o) + (".call(" + (this.superThis(o))); + if (compiledArgs.length) { + preface += ", "; + } + fragments.push(this.makeCode(preface)); + } else { + if (this.isNew) { + fragments.push(this.makeCode('new ')); + } + fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS)); + fragments.push(this.makeCode("(")); + } + fragments.push.apply(fragments, compiledArgs); + fragments.push(this.makeCode(")")); + return fragments; + }; + + Call.prototype.compileSplat = function(o, splatArgs) { + var answer, base, fun, idt, name, ref; + if (this.isSuper) { + return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")")); + } + if (this.isNew) { + idt = this.tab + TAB; + return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})")); + } + answer = []; + base = new Value(this.variable); + if ((name = base.properties.pop()) && base.isComplex()) { + ref = o.scope.freeVariable('ref'); + answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o)); + } else { + fun = base.compileToFragments(o, LEVEL_ACCESS); + if (SIMPLENUM.test(fragmentsToText(fun))) { + fun = this.wrapInBraces(fun); + } + if (name) { + ref = fragmentsToText(fun); + fun.push.apply(fun, name.compileToFragments(o)); + } else { + ref = 'null'; + } + answer = answer.concat(fun); + } + return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")")); + }; + + Call.prototype.icedToSlot = function() { + return this.error("function call cannot be a slot for defer"); + }; + + return Call; + + })(Base); + + exports.Extends = Extends = (function(_super) { + __extends(Extends, _super); + + function Extends(child, parent) { + this.child = child; + this.parent = parent; + Extends.__super__.constructor.call(this); + } + + Extends.prototype.children = ['child', 'parent']; + + Extends.prototype.compileToFragments = function(o) { + return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o); + }; + + return Extends; + + })(Base); + + exports.Access = Access = (function(_super) { + __extends(Access, _super); + + function Access(name, tag) { + this.name = name; + Access.__super__.constructor.call(this); + this.name.asKey = true; + this.soak = tag === 'soak'; + } + + Access.prototype.children = ['name']; + + Access.prototype.compileToFragments = function(o) { + var name; + name = this.name.compileToFragments(o); + if ((IDENTIFIER.test(fragmentsToText(name))) || this.name instanceof Defer) { + name.unshift(this.makeCode(".")); + } else { + name.unshift(this.makeCode("[")); + name.push(this.makeCode("]")); + } + return name; + }; + + Access.prototype.isComplex = NO; + + return Access; + + })(Base); + + exports.Index = Index = (function(_super) { + __extends(Index, _super); + + function Index(index) { + this.index = index; + Index.__super__.constructor.call(this); + } + + Index.prototype.children = ['index']; + + Index.prototype.compileToFragments = function(o) { + return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]")); + }; + + Index.prototype.isComplex = function() { + return this.index.isComplex(); + }; + + return Index; + + })(Base); + + exports.Range = Range = (function(_super) { + __extends(Range, _super); + + Range.prototype.children = ['from', 'to']; + + function Range(from, to, tag) { + this.from = from; + this.to = to; + Range.__super__.constructor.call(this); + this.exclusive = tag === 'exclusive'; + this.equals = this.exclusive ? '' : '='; + } + + Range.prototype.compileVariables = function(o) { + var step, _ref2, _ref3, _ref4, _ref5; + o = merge(o, { + top: true + }); + _ref2 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref2[0], this.fromVar = _ref2[1]; + _ref3 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref3[0], this.toVar = _ref3[1]; + if (step = del(o, 'step')) { + _ref4 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref4[0], this.stepVar = _ref4[1]; + } + _ref5 = [this.fromVar.match(NUMBER), this.toVar.match(NUMBER)], this.fromNum = _ref5[0], this.toNum = _ref5[1]; + if (this.stepVar) { + return this.stepNum = this.stepVar.match(NUMBER); + } + }; + + Range.prototype.compileNode = function(o) { + var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3; + if (!this.fromVar) { + this.compileVariables(o); + } + if (!o.index) { + return this.compileArray(o); + } + known = this.fromNum && this.toNum; + idx = del(o, 'index'); + idxName = del(o, 'name'); + namedIndex = idxName && idxName !== idx; + varPart = "" + idx + " = " + this.fromC; + if (this.toC !== this.toVar) { + varPart += ", " + this.toC; + } + if (this.step !== this.stepVar) { + varPart += ", " + this.step; + } + _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1]; + condPart = this.stepNum ? parseNum(this.stepNum[0]) > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [parseNum(this.fromNum[0]), parseNum(this.toNum[0])], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); + stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--"; + if (namedIndex) { + varPart = "" + idxName + " = " + varPart; + } + if (namedIndex) { + stepPart = "" + idxName + " = " + stepPart; + } + return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)]; + }; + + Range.prototype.compileArray = function(o) { + var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results; + if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { + range = (function() { + _results = []; + for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); } + return _results; + }).apply(this); + if (this.exclusive) { + range.pop(); + } + return [this.makeCode("[" + (range.join(', ')) + "]")]; + } + idt = this.tab + TAB; + i = o.scope.freeVariable('i'); + result = o.scope.freeVariable('results'); + pre = "\n" + idt + result + " = [];"; + if (this.fromNum && this.toNum) { + o.index = i; + body = fragmentsToText(this.compileNode(o)); + } else { + vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : ''); + cond = "" + this.fromVar + " <= " + this.toVar; + body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--"; + } + post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent; + hasArgs = function(node) { + return node != null ? node.contains(isLiteralArguments) : void 0; + }; + if (hasArgs(this.from) || hasArgs(this.to)) { + args = ', arguments'; + } + return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")]; + }; + + return Range; + + })(Base); + + exports.Slice = Slice = (function(_super) { + __extends(Slice, _super); + + Slice.prototype.children = ['range']; + + function Slice(range) { + this.range = range; + Slice.__super__.constructor.call(this); + } + + Slice.prototype.compileNode = function(o) { + var compiled, compiledText, from, fromCompiled, to, toStr, _ref2; + _ref2 = this.range, to = _ref2.to, from = _ref2.from; + fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')]; + if (to) { + compiled = to.compileToFragments(o, LEVEL_PAREN); + compiledText = fragmentsToText(compiled); + if (!(!this.range.exclusive && +compiledText === -1)) { + toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9")); + } + } + return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")]; + }; + + return Slice; + + })(Base); + + exports.Obj = Obj = (function(_super) { + __extends(Obj, _super); + + function Obj(props, generated) { + this.generated = generated != null ? generated : false; + this.objects = this.properties = props || []; + Obj.__super__.constructor.call(this); + } + + Obj.prototype.children = ['properties']; + + Obj.prototype.compileNode = function(o) { + var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1; + props = this.properties; + if (!props.length) { + return [this.makeCode(this.front ? '({})' : '{}')]; + } + if (this.generated) { + for (_i = 0, _len = props.length; _i < _len; _i++) { + node = props[_i]; + if (node instanceof Value) { + node.error('cannot have an implicit value in an implicit object'); + } + } + } + idt = o.indent += TAB; + lastNoncom = this.lastNonComment(this.properties); + answer = []; + for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) { + prop = props[i]; + join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; + indent = prop instanceof Comment ? '' : idt; + if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) { + prop.variable.error('Invalid object key'); + } + if (prop instanceof Value && prop["this"]) { + prop = new Assign(prop.properties[0].name, prop, 'object'); + } + if (!(prop instanceof Comment)) { + if (!(prop instanceof Assign)) { + prop = new Assign(prop, prop, 'object'); + } + (prop.variable.base || prop.variable).asKey = true; + } + if (indent) { + answer.push(this.makeCode(indent)); + } + answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP)); + if (join) { + answer.push(this.makeCode(join)); + } + } + answer.unshift(this.makeCode("{" + (props.length && '\n'))); + answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}")); + if (this.front) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Obj.prototype.assigns = function(name) { + var prop, _i, _len, _ref2; + _ref2 = this.properties; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + prop = _ref2[_i]; + if (prop.assigns(name)) { + return true; + } + } + return false; + }; + + Obj.prototype.icedToSlot = function(i) { + var access, prop, _i, _len, _ref2, _results; + _ref2 = this.properties; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + prop = _ref2[_i]; + if (prop instanceof Assign) { + _results.push((prop.value.icedToSlot(i)).addAccess(prop.variable.icedToSlotAccess())); + } else if (prop instanceof Value) { + access = prop.icedToSlotAccess(); + _results.push((prop.icedToSlot(i)).addAccess(access)); + } else { + _results.push(void 0); + } + } + return _results; + }; + + return Obj; + + })(Base); + + exports.Arr = Arr = (function(_super) { + __extends(Arr, _super); + + function Arr(objs) { + this.objects = objs || []; + Arr.__super__.constructor.call(this); + } + + Arr.prototype.children = ['objects']; + + Arr.prototype.compileNode = function(o) { + var answer, compiledObjs, fragments, index, obj, _i, _len; + if (!this.objects.length) { + return [this.makeCode('[]')]; + } + o.indent += TAB; + answer = Splat.compileSplattedArray(o, this.objects); + if (answer.length) { + return answer; + } + answer = []; + compiledObjs = (function() { + var _i, _len, _ref2, _results; + _ref2 = this.objects; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + _results.push(obj.compileToFragments(o, LEVEL_LIST)); + } + return _results; + }).call(this); + for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) { + fragments = compiledObjs[index]; + if (index) { + answer.push(this.makeCode(", ")); + } + answer.push.apply(answer, fragments); + } + if (fragmentsToText(answer).indexOf('\n') >= 0) { + answer.unshift(this.makeCode("[\n" + o.indent)); + answer.push(this.makeCode("\n" + this.tab + "]")); + } else { + answer.unshift(this.makeCode("[")); + answer.push(this.makeCode("]")); + } + return answer; + }; + + Arr.prototype.assigns = function(name) { + var obj, _i, _len, _ref2; + _ref2 = this.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (obj.assigns(name)) { + return true; + } + } + return false; + }; + + return Arr; + + })(Base); + + exports.Class = Class = (function(_super) { + __extends(Class, _super); + + function Class(variable, parent, body) { + this.variable = variable; + this.parent = parent; + this.body = body != null ? body : new Block; + Class.__super__.constructor.call(this); + this.boundFuncs = []; + this.body.classBody = true; + } + + Class.prototype.children = ['variable', 'parent', 'body']; + + Class.prototype.determineName = function() { + var decl, tail; + if (!this.variable) { + return null; + } + decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value; + if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) { + this.variable.error("class variable name may not be " + decl); + } + return decl && (decl = IDENTIFIER.test(decl) && decl); + }; + + Class.prototype.setContext = function(name) { + return this.body.traverseChildren(false, function(node) { + if (node.classBody) { + return false; + } + if (node instanceof Literal && node.value === 'this') { + return node.value = name; + } else if (node instanceof Code) { + node.klass = name; + if (node.bound) { + return node.context = name; + } + } + }); + }; + + Class.prototype.addBoundFunctions = function(o) { + var bvar, lhs, _i, _len, _ref2; + _ref2 = this.boundFuncs; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + bvar = _ref2[_i]; + lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); + this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)")); + } + }; + + Class.prototype.addProperties = function(node, name, o) { + var assign, base, exprs, func, props; + props = node.base.properties.slice(0); + exprs = (function() { + var _results; + _results = []; + while (assign = props.shift()) { + if (assign instanceof Assign) { + base = assign.variable.base; + delete assign.context; + func = assign.value; + if (base.value === 'constructor') { + if (this.ctor) { + assign.error('cannot define more than one constructor in a class'); + } + if (func.bound) { + assign.error('cannot define a constructor as a bound function'); + } + if (func instanceof Code) { + assign = this.ctor = func; + } else { + this.externalCtor = o.classScope.freeVariable('class'); + assign = new Assign(new Literal(this.externalCtor), func); + } + } else { + if (assign.variable["this"]) { + func["static"] = true; + } else { + assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]); + if (func instanceof Code && func.bound) { + this.boundFuncs.push(base); + func.bound = false; + } + } + } + } + _results.push(assign); + } + return _results; + }).call(this); + return compact(exprs); + }; + + Class.prototype.walkBody = function(name, o) { + return this.traverseChildren(false, (function(_this) { + return function(child) { + var cont, exps, i, node, _i, _len, _ref2; + cont = true; + if (child instanceof Class) { + return false; + } + if (child instanceof Block) { + _ref2 = exps = child.expressions; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + node = _ref2[i]; + if (node instanceof Assign && node.variable.looksStatic(name)) { + node.value["static"] = true; + } else if (node instanceof Value && node.isObject(true)) { + cont = false; + exps[i] = _this.addProperties(node, name, o); + } + } + child.expressions = exps = flatten(exps); + } + return cont && !(child instanceof Class); + }; + })(this)); + }; + + Class.prototype.hoistDirectivePrologue = function() { + var expressions, index, node; + index = 0; + expressions = this.body.expressions; + while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { + ++index; + } + return this.directives = expressions.splice(0, index); + }; + + Class.prototype.ensureConstructor = function(name) { + if (!this.ctor) { + this.ctor = new Code; + if (this.externalCtor) { + this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)")); + } else if (this.parent) { + this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)")); + } + this.ctor.body.makeReturn(); + this.body.expressions.unshift(this.ctor); + } + this.ctor.ctor = this.ctor.name = name; + this.ctor.klass = null; + return this.ctor.noReturn = true; + }; + + Class.prototype.compileNode = function(o) { + var args, argumentsNode, func, jumpNode, klass, lname, name, superClass, _ref2; + if (jumpNode = this.body.jumps()) { + jumpNode.error('Class bodies cannot contain pure statements'); + } + if (argumentsNode = this.body.contains(isLiteralArguments)) { + argumentsNode.error("Class bodies shouldn't reference arguments"); + } + name = this.determineName() || '_Class'; + if (name.reserved) { + name = "_" + name; + } + lname = new Literal(name); + func = new Code([], Block.wrap([this.body])); + args = []; + o.classScope = func.makeScope(o.scope); + this.hoistDirectivePrologue(); + this.setContext(name); + this.walkBody(name, o); + this.ensureConstructor(name); + this.addBoundFunctions(o); + this.body.spaced = true; + this.body.expressions.push(lname); + if (this.parent) { + superClass = new Literal(o.classScope.freeVariable('super', false)); + this.body.expressions.unshift(new Extends(lname, superClass)); + func.params.push(new Param(superClass)); + args.push(this.parent); + } + (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives); + klass = new Parens(new Call(func, args)); + if (this.variable) { + klass = new Assign(this.variable, klass); + } + return klass.compileToFragments(o); + }; + + return Class; + + })(Base); + + exports.Assign = Assign = (function(_super) { + __extends(Assign, _super); + + function Assign(variable, value, context, options) { + var forbidden, name, _ref2; + this.variable = variable; + this.value = value; + this.context = context; + Assign.__super__.constructor.call(this); + this.param = options && options.param; + this.subpattern = options && options.subpattern; + forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0); + if (forbidden && this.context !== 'object') { + this.variable.error("variable name may not be \"" + name + "\""); + } + this.icedlocal = options && options.icedlocal; + } + + Assign.prototype.children = ['variable', 'value']; + + Assign.prototype.isStatement = function(o) { + return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0; + }; + + Assign.prototype.assigns = function(name) { + return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); + }; + + Assign.prototype.unfoldSoak = function(o) { + return unfoldSoak(o, this, 'variable'); + }; + + Assign.prototype.compileNode = function(o) { + var answer, compiledName, isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5; + this.value.icedStatementAssertion(); + if (isValue = this.variable instanceof Value) { + if (this.variable.isArray() || this.variable.isObject()) { + return this.compilePatternMatch(o); + } + if (this.variable.isSplice()) { + return this.compileSplice(o); + } + if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') { + return this.compileConditional(o); + } + if ((_ref3 = this.context) === '**=' || _ref3 === '//=' || _ref3 === '%%=') { + return this.compileSpecialMath(o); + } + } + compiledName = this.variable.compileToFragments(o, LEVEL_LIST); + name = fragmentsToText(compiledName); + if (!this.context) { + varBase = this.variable.unwrapAll(); + if (!varBase.isAssignable()) { + this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned"); + } + if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) { + if (this.param || this.icedlocal) { + o.scope.add(name, 'var', this.icedlocal); + } else { + o.scope.find(name); + } + } + } + if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) { + if (match[2]) { + this.value.klass = match[1]; + } + this.value.name = (_ref4 = (_ref5 = match[3]) != null ? _ref5 : match[4]) != null ? _ref4 : match[5]; + } + val = this.value.compileToFragments(o, LEVEL_LIST); + if (this.context === 'object') { + return compiledName.concat(this.makeCode(": "), val); + } + answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val); + if (o.level <= LEVEL_LIST) { + return answer; + } else { + return this.wrapInBraces(answer); + } + }; + + Assign.prototype.compilePatternMatch = function(o) { + var acc, assigns, code, expandedIdx, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, top, val, value, vvar, vvarText, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + top = o.level === LEVEL_TOP; + value = this.value; + objects = this.variable.base.objects; + if (!(olen = objects.length)) { + code = value.compileToFragments(o); + if (o.level >= LEVEL_OP) { + return this.wrapInBraces(code); + } else { + return code; + } + } + isObject = this.variable.isObject(); + if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) { + if (obj instanceof Assign) { + _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value; + } else { + idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); + } + acc = IDENTIFIER.test(idx.unwrap().value || 0); + value = new Value(value); + value.properties.push(new (acc ? Access : Index)(idx)); + if (_ref4 = obj.unwrap().value, __indexOf.call(RESERVED, _ref4) >= 0) { + obj.error("assignment to a reserved word: " + (obj.compile(o))); + } + return new Assign(obj, value, null, { + param: this.param + }).compileToFragments(o, LEVEL_TOP); + } + vvar = value.compileToFragments(o, LEVEL_LIST); + vvarText = fragmentsToText(vvar); + assigns = []; + expandedIdx = false; + if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) { + assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar))); + vvar = [this.makeCode(ref)]; + vvarText = ref; + } + for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) { + obj = objects[i]; + idx = i; + if (isObject) { + if (obj instanceof Assign) { + _ref5 = obj, (_ref6 = _ref5.variable, idx = _ref6.base), obj = _ref5.value; + } else { + if (obj.base instanceof Parens) { + _ref7 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref7[0], idx = _ref7[1]; + } else { + idx = obj["this"] ? obj.properties[0].name : obj; + } + } + } + if (!expandedIdx && obj instanceof Splat) { + name = obj.name.unwrap().value; + obj = obj.unwrap(); + val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i; + if (rest = olen - i - 1) { + ivar = o.scope.freeVariable('i'); + val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])"; + } else { + val += ") : []"; + } + val = new Literal(val); + expandedIdx = "" + ivar + "++"; + } else if (!expandedIdx && obj instanceof Expansion) { + if (rest = olen - i - 1) { + if (rest === 1) { + expandedIdx = "" + vvarText + ".length - 1"; + } else { + ivar = o.scope.freeVariable('i'); + val = new Literal("" + ivar + " = " + vvarText + ".length - " + rest); + expandedIdx = "" + ivar + "++"; + assigns.push(val.compileToFragments(o, LEVEL_LIST)); + } + } + continue; + } else { + name = obj.unwrap().value; + if (obj instanceof Splat || obj instanceof Expansion) { + obj.error("multiple splats/expansions are disallowed in an assignment"); + } + if (typeof idx === 'number') { + idx = new Literal(expandedIdx || idx); + acc = false; + } else { + acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0); + } + val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]); + } + if ((name != null) && __indexOf.call(RESERVED, name) >= 0) { + obj.error("assignment to a reserved word: " + (obj.compile(o))); + } + assigns.push(new Assign(obj, val, null, { + param: this.param, + subpattern: true + }).compileToFragments(o, LEVEL_LIST)); + } + if (!(top || this.subpattern)) { + assigns.push(vvar); + } + fragments = this.joinFragmentArrays(assigns, ', '); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + Assign.prototype.compileConditional = function(o) { + var fragments, left, right, _ref2; + _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; + if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { + this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before"); + } + if (__indexOf.call(this.context, "?") >= 0) { + o.isExistentialEquals = true; + return new If(new Existence(left), right, { + type: 'if' + }).addElse(new Assign(right, this.value, '=')).compileToFragments(o); + } else { + fragments = new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o); + if (o.level <= LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + } + }; + + Assign.prototype.compileSpecialMath = function(o) { + var left, right, _ref2; + _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; + return new Assign(left, new Op(this.context.slice(0, -1), right, this.value)).compileToFragments(o); + }; + + Assign.prototype.compileSplice = function(o) { + var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4; + _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive; + name = this.variable.compile(o); + if (from) { + _ref3 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref3[0], fromRef = _ref3[1]; + } else { + fromDecl = fromRef = '0'; + } + if (to) { + if (from instanceof Value && from.isSimpleNumber() && to instanceof Value && to.isSimpleNumber()) { + to = to.compile(o) - fromRef; + if (!exclusive) { + to += 1; + } + } else { + to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; + if (!exclusive) { + to += ' + 1'; + } + } + } else { + to = "9e9"; + } + _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1]; + answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef); + if (o.level > LEVEL_TOP) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + return Assign; + + })(Base); + + exports.Code = Code = (function(_super) { + __extends(Code, _super); + + function Code(params, body, tag) { + Code.__super__.constructor.call(this); + this.params = params || []; + this.body = body || new Block; + this.icedgen = tag === 'icedgen'; + this.icedPassedDeferral = null; + this.bound = tag === 'boundfunc' || this.icedgen; + this.isGenerator = this.body.contains(function(node) { + var _ref2; + return node instanceof Op && ((_ref2 = node.operator) === 'yield' || _ref2 === 'yield*'); + }); + } + + Code.prototype.children = ['params', 'body']; + + Code.prototype.isStatement = function() { + return !!this.ctor; + }; + + Code.prototype.jumps = NO; + + Code.prototype.makeScope = function(parentScope) { + return new Scope(parentScope, this.body, this); + }; + + Code.prototype.compileNode = function(o) { + var answer, boundfunc, code, exprs, i, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, wrapper, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + if (this.bound && ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0)) { + this.context = o.scope.method.context; + } + if (this.bound && !this.context) { + this.context = '_this'; + wrapper = new Code([new Param(new Literal(this.context))], new Block([this])); + boundfunc = new Call(wrapper, [new Literal('this')]); + boundfunc.updateLocationDataIfMissing(this.locationData); + return boundfunc.compileNode(o); + } + o.scope = del(o, 'classScope') || this.makeScope(o.scope); + o.scope.shared = del(o, 'sharedScope') || this.icedgen; + o.scope.icedgen = this.icedgen; + o.indent += TAB; + delete o.bare; + delete o.isExistentialEquals; + params = []; + exprs = []; + _ref3 = this.params; + for (_i = 0, _len = _ref3.length; _i < _len; _i++) { + param = _ref3[_i]; + if (!(param instanceof Expansion)) { + o.scope.parameter(param.asReference(o)); + } + } + _ref4 = this.params; + for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { + param = _ref4[_j]; + if (!(param.splat || param instanceof Expansion)) { + continue; + } + _ref5 = this.params; + for (_k = 0, _len2 = _ref5.length; _k < _len2; _k++) { + p = _ref5[_k].name; + if (!(!(param instanceof Expansion))) { + continue; + } + if (p["this"]) { + p = p.properties[0].name; + } + if (p.value) { + o.scope.add(p.value, 'var', true); + } + } + splats = new Assign(new Value(new Arr((function() { + var _l, _len3, _ref6, _results; + _ref6 = this.params; + _results = []; + for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) { + p = _ref6[_l]; + _results.push(p.asReference(o)); + } + return _results; + }).call(this))), new Value(new Literal('arguments'))); + break; + } + _ref6 = this.params; + for (_l = 0, _len3 = _ref6.length; _l < _len3; _l++) { + param = _ref6[_l]; + if (param.isComplex()) { + val = ref = param.asReference(o); + if (param.value) { + val = new Op('?', ref, param.value); + } + exprs.push(new Assign(new Value(param.name), val, '=', { + param: true + })); + } else { + ref = param; + if (param.value) { + lit = new Literal(ref.name.value + ' == null'); + val = new Assign(new Value(param.name), param.value, '='); + exprs.push(new If(lit, val)); + } + } + if (!splats) { + params.push(ref); + } + } + wasEmpty = this.body.isEmpty(); + if (splats) { + exprs.unshift(splats); + } + if (exprs.length) { + (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs); + } + for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) { + p = params[i]; + params[i] = p.compileToFragments(o); + o.scope.parameter(fragmentsToText(params[i])); + } + uniqs = []; + this.eachParamName(function(name, node) { + if (__indexOf.call(uniqs, name) >= 0) { + node.error("multiple parameters named '" + name + "'"); + } + return uniqs.push(name); + }); + if (this.icedIsAutocbCode) { + wasEmpty = false; + } + if (!(wasEmpty || this.noReturn)) { + this.body.makeReturn(); + } + code = 'function'; + if (this.isGenerator) { + code += '*'; + } + if (this.ctor) { + code += ' ' + this.name; + } + code += '('; + answer = [this.makeCode(code)]; + for (i = _n = 0, _len5 = params.length; _n < _len5; i = ++_n) { + p = params[i]; + if (i) { + answer.push(this.makeCode(", ")); + } + answer.push.apply(answer, p); + } + answer.push(this.makeCode(') {')); + this.icedPatchBody(o); + if (!this.body.isEmpty()) { + answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab)); + } + answer.push(this.makeCode('}')); + if (this.ctor) { + return [this.makeCode(this.tab)].concat(__slice.call(answer)); + } + if (this.front || (o.level >= LEVEL_ACCESS)) { + return this.wrapInBraces(answer); + } else { + return answer; + } + }; + + Code.prototype.eachParamName = function(iterator) { + var param, _i, _len, _ref2, _results; + _ref2 = this.params; + _results = []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + _results.push(param.eachName(iterator)); + } + return _results; + }; + + Code.prototype.traverseChildren = function(crossScope, func) { + if (crossScope) { + return Code.__super__.traverseChildren.call(this, crossScope, func); + } + }; + + Code.prototype.icedPatchBody = function(o) { + var f, lhs, r, rhs; + if (this.icedFoundArguments && this.icedNodeFlag) { + o.scope.assign('_arguments', 'arguments'); + } + if (this.icedNodeFlag && !this.icedgen) { + this.icedPassedDeferral = o.scope.freeVariable(iced["const"].passed_deferral); + lhs = new Value(new Literal(this.icedPassedDeferral)); + f = new Value(new Literal(iced["const"].ns)); + f.add(new Access(new Value(new Literal(iced["const"].findDeferral)))); + rhs = new Call(f, [new Value(new Literal('arguments'))]); + this.body.unshift(new Assign(lhs, rhs)); + } + if (this.icedNodeFlag && !this.icedgen) { + r = this.icedIsAutocbCode ? iced["const"].autocb : iced["const"].k_noop; + rhs = new Value(new Literal(r)); + lhs = new Value(new Literal(iced["const"].k)); + return this.body.unshift(new Assign(lhs, rhs, null, { + icedlocal: true + })); + } + }; + + Code.prototype.icedWalkAst = function(parent, o) { + var cf_prev, fa_prev, faf_prev, fg_prev, param, _i, _len, _ref2; + this.icedParentAwait = parent; + fa_prev = o.foundAutocb; + cf_prev = o.currFunc; + fg_prev = o.foundArguments; + faf_prev = o.foundAwaitFunc; + o.foundAutocb = false; + o.foundArguments = false; + o.foundAwaitFunc = false; + o.currFunc = this; + _ref2 = this.params; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + if (param.name instanceof Literal && param.name.value === iced["const"].autocb) { + o.foundAutocb = true; + break; + } + } + Code.__super__.icedWalkAst.call(this, parent, o); + this.icedHasAutocbFlag = fa_prev; + this.icedIsAutocbCode = o.foundAutocb; + this.icedFoundArguments = o.foundArguments; + o.foundAwaitFunc = faf_prev; + o.foundArguments = fg_prev; + o.foundAutocb = fa_prev; + o.currFunc = cf_prev; + return false; + }; + + Code.prototype.icedWalkAstLoops = function(flood) { + if (Code.__super__.icedWalkAstLoops.call(this, false)) { + this.icedLoopFlag = true; + } + return false; + }; + + Code.prototype.icedWalkCpsPivots = function() { + Code.__super__.icedWalkCpsPivots.call(this); + return this.icedCpsPivotFlag = false; + }; + + Code.prototype.icedTraceName = function() { + var parts; + parts = []; + if (this.klass) { + parts.push(this.klass); + } + if (this.name) { + parts.push(this.name); + } + return parts.join('.'); + }; + + return Code; + + })(Base); + + exports.Param = Param = (function(_super) { + __extends(Param, _super); + + function Param(name, value, splat) { + var _ref2; + this.name = name; + this.value = value; + this.splat = splat; + Param.__super__.constructor.call(this); + if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { + this.name.error("parameter name \"" + name + "\" is not allowed"); + } + } + + Param.prototype.children = ['name', 'value']; + + Param.prototype.compileToFragments = function(o) { + return this.name.compileToFragments(o, LEVEL_LIST); + }; + + Param.prototype.asReference = function(o) { + var node; + if (this.reference) { + return this.reference; + } + node = this.name; + if (node["this"]) { + node = node.properties[0].name; + if (node.value.reserved) { + node = new Literal(o.scope.freeVariable(node.value)); + } + } else if (node.isComplex()) { + node = new Literal(o.scope.freeVariable('arg')); + } + node = new Value(node); + if (this.splat) { + node = new Splat(node); + } + node.updateLocationDataIfMissing(this.locationData); + return this.reference = node; + }; + + Param.prototype.isComplex = function() { + return this.name.isComplex(); + }; + + Param.prototype.eachName = function(iterator, name) { + var atParam, node, obj, _i, _len, _ref2; + if (name == null) { + name = this.name; + } + atParam = function(obj) { + var node; + node = obj.properties[0].name; + if (!node.value.reserved) { + return iterator(node.value, node); + } + }; + if (name instanceof Literal) { + return iterator(name.value, name); + } + if (name instanceof Value) { + return atParam(name); + } + _ref2 = name.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (obj instanceof Assign) { + this.eachName(iterator, obj.value.unwrap()); + } else if (obj instanceof Splat) { + node = obj.name.unwrap(); + iterator(node.value, node); + } else if (obj instanceof Value) { + if (obj.isArray() || obj.isObject()) { + this.eachName(iterator, obj.base); + } else if (obj["this"]) { + atParam(obj); + } else { + iterator(obj.base.value, obj.base); + } + } else if (!(obj instanceof Expansion)) { + obj.error("illegal parameter " + (obj.compile())); + } + } + }; + + return Param; + + })(Base); + + exports.Splat = Splat = (function(_super) { + __extends(Splat, _super); + + Splat.prototype.children = ['name']; + + Splat.prototype.isAssignable = YES; + + function Splat(name) { + Splat.__super__.constructor.call(this); + this.name = name.compile ? name : new Literal(name); + } + + Splat.prototype.assigns = function(name) { + return this.name.assigns(name); + }; + + Splat.prototype.compileToFragments = function(o) { + return this.name.compileToFragments(o); + }; + + Splat.prototype.unwrap = function() { + return this.name; + }; + + Splat.compileSplattedArray = function(o, list, apply) { + var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len; + index = -1; + while ((node = list[++index]) && !(node instanceof Splat)) { + continue; + } + if (index >= list.length) { + return []; + } + if (list.length === 1) { + node = list[0]; + fragments = node.compileToFragments(o, LEVEL_LIST); + if (apply) { + return fragments; + } + return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")")); + } + args = list.slice(index); + for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { + node = args[i]; + compiledNode = node.compileToFragments(o, LEVEL_LIST); + args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]")); + } + if (index === 0) { + node = list[0]; + concatPart = node.joinFragmentArrays(args.slice(1), ', '); + return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")")); + } + base = (function() { + var _j, _len1, _ref2, _results; + _ref2 = list.slice(0, index); + _results = []; + for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { + node = _ref2[_j]; + _results.push(node.compileToFragments(o, LEVEL_LIST)); + } + return _results; + })(); + base = list[0].joinFragmentArrays(base, ', '); + concatPart = list[index].joinFragmentArrays(args, ', '); + return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")")); + }; + + Splat.prototype.icedToSlot = function(i) { + return new Slot(i, new Value(this.name), null, true); + }; + + return Splat; + + })(Base); + + exports.Expansion = Expansion = (function(_super) { + __extends(Expansion, _super); + + function Expansion() { + return Expansion.__super__.constructor.apply(this, arguments); + } + + Expansion.prototype.isComplex = NO; + + Expansion.prototype.compileNode = function(o) { + return this.error('Expansion must be used inside a destructuring assignment or parameter list'); + }; + + Expansion.prototype.asReference = function(o) { + return this; + }; + + Expansion.prototype.eachName = function(iterator) {}; + + return Expansion; + + })(Base); + + exports.While = While = (function(_super) { + __extends(While, _super); + + function While(condition, options) { + this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; + this.guard = options != null ? options.guard : void 0; + } + + While.prototype.children = ['condition', 'guard', 'body']; + + While.prototype.isStatement = YES; + + While.prototype.isLoop = YES; + + While.prototype.makeReturn = function(res) { + if (res) { + return While.__super__.makeReturn.apply(this, arguments); + } else { + this.returns = !this.jumps({ + loop: true + }); + return this; + } + }; + + While.prototype.addBody = function(body) { + this.body = body; + return this; + }; + + While.prototype.jumps = function() { + var expressions, jumpNode, node, _i, _len; + expressions = this.body.expressions; + if (!expressions.length) { + return false; + } + for (_i = 0, _len = expressions.length; _i < _len; _i++) { + node = expressions[_i]; + if (jumpNode = node.jumps({ + loop: true + })) { + return jumpNode; + } + } + return false; + }; + + While.prototype.compileNode = function(o) { + var answer, body, rvar, set; + this.condition.icedStatementAssertion(); + if (this.icedNodeFlag) { + return this.icedCompileIced(o); + } + o.indent += TAB; + set = ''; + body = this.body; + if (body.isEmpty()) { + body = this.makeCode(''); + } else { + if (this.returns) { + body.makeReturn(rvar = o.scope.freeVariable('results')); + set = "" + this.tab + rvar + " = [];\n"; + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab)); + } + answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}")); + if (this.returns) { + if (this.icedHasAutocbFlag) { + answer.push(this.makeCode("\n" + this.tab + iced["const"].autocb + "(" + rvar + ");")); + answer.push(this.makeCode("\n" + this.tab + "return;")); + } else { + answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";")); + } + } + return answer; + }; + + While.prototype.icedWrap = function(d) { + var body, break_assign, break_id, cond, condition, continue_assign, continue_block, continue_block_inner, continue_body, continue_fn, continue_id, guard_if, k_id, k_param, next_assign, next_id, outStatements, top_assign, top_block, top_body, top_call, top_func, top_id, top_statements, tramp; + condition = d.condition; + body = d.body; + outStatements = []; + top_id = new Value(new Literal(iced["const"].t_while)); + k_id = new Value(new Literal(iced["const"].k)); + k_param = new Param(new Literal(iced["const"].k)); + break_id = new Value(new Literal(iced["const"].b_while)); + break_assign = new Assign(break_id, k_id, null, { + icedlocal: true + }); + continue_id = new Value(new Literal(iced["const"].c_while)); + continue_block_inner = new Block([new Call(top_id, [k_id])]); + if (d.step) { + continue_block_inner.unshift(d.step); + } + continue_fn = new Code([], continue_block_inner); + tramp = new Value(new Literal(iced["const"].ns)); + tramp.add(new Access(new Value(new Literal(iced["const"].trampoline)))); + continue_block = new Block([new Call(tramp, [continue_fn])]); + continue_body = new Code([], continue_block, 'icedgen'); + continue_assign = new Assign(continue_id, continue_body, null, { + icedlocal: true + }); + next_id = new Value(new Literal(iced["const"].n_while)); + next_assign = new Assign(next_id, continue_id, null, { + icedlocal: true + }); + cond = new If(condition.invert(), new Block([new Call(break_id, [])])); + if (d.guard) { + continue_block = new Block([new Call(continue_id, [])]); + guard_if = new If(d.guard, body); + guard_if.addElse(continue_block); + cond.addElse(new Block([d.pre_body, guard_if])); + } else { + cond.addElse(new Block([d.pre_body, body])); + } + top_body = new Block([break_assign, continue_assign, next_assign, cond]); + top_func = new Code([k_param], top_body, 'icedgen'); + top_assign = new Assign(top_id, top_func, null, { + icedlocal: true + }); + top_call = new Call(top_id, [k_id]); + top_statements = []; + if (d.init) { + top_statements = top_statements.concat(d.init); + } + top_statements = top_statements.concat([top_assign, top_call]); + return top_block = new Block(top_statements); + }; + + While.prototype.icedCallContinuation = function() { + return this.body.icedThreadReturn(new IcedTailCall(iced["const"].n_while)); + }; + + While.prototype.icedCompileIced = function(o) { + var b, opts; + opts = { + condition: this.condition, + body: this.body, + guard: this.guard + }; + b = this.icedWrap(opts); + return b.compileNode(o); + }; + + return While; + + })(Base); + + exports.Op = Op = (function(_super) { + var CONVERSIONS, INVERSIONS; + + __extends(Op, _super); + + function Op(op, first, second, flip) { + Op.__super__.constructor.call(this); + if (op === 'in') { + return new In(first, second); + } + if (op === 'do') { + return this.generateDo(first); + } + if (op === 'new') { + if (first instanceof Call && !first["do"] && !first.isNew) { + return first.newInstance(); + } + if (first instanceof Code && first.bound || first["do"]) { + first = new Parens(first); + } + } + this.operator = CONVERSIONS[op] || op; + this.first = first; + this.second = second; + this.flip = !!flip; + return this; + } + + CONVERSIONS = { + '==': '===', + '!=': '!==', + 'of': 'in', + 'yieldfrom': 'yield*' + }; + + INVERSIONS = { + '!==': '===', + '===': '!==' + }; + + Op.prototype.children = ['first', 'second']; + + Op.prototype.isSimpleNumber = NO; + + Op.prototype.isYield = function() { + var _ref2; + return (_ref2 = this.operator) === 'yield' || _ref2 === 'yield*'; + }; + + Op.prototype.isUnary = function() { + return !this.second; + }; + + Op.prototype.isComplex = function() { + var _ref2; + return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex(); + }; + + Op.prototype.isChainable = function() { + var _ref2; + return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!=='; + }; + + Op.prototype.invert = function() { + var allInvertable, curr, fst, op, _ref2; + if (this.isChainable() && this.first.isChainable()) { + allInvertable = true; + curr = this; + while (curr && curr.operator) { + allInvertable && (allInvertable = curr.operator in INVERSIONS); + curr = curr.first; + } + if (!allInvertable) { + return new Parens(this).invert(); + } + curr = this; + while (curr && curr.operator) { + curr.invert = !curr.invert; + curr.operator = INVERSIONS[curr.operator]; + curr = curr.first; + } + return this; + } else if (op = INVERSIONS[this.operator]) { + this.operator = op; + if (this.first.unwrap() instanceof Op) { + this.first.invert(); + } + return this; + } else if (this.second) { + return new Parens(this).invert(); + } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) { + return fst; + } else { + return new Op('!', this); + } + }; + + Op.prototype.unfoldSoak = function(o) { + var _ref2; + return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first'); + }; + + Op.prototype.generateDo = function(exp) { + var call, func, param, passedParams, ref, _i, _len, _ref2; + passedParams = []; + func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; + _ref2 = func.params || []; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + param = _ref2[_i]; + if (param.value) { + passedParams.push(param.value); + delete param.value; + } else { + passedParams.push(param); + } + } + call = new Call(exp, passedParams); + call["do"] = true; + return call; + }; + + Op.prototype.compileNode = function(o) { + var answer, isChain, lhs, rhs, _ref2, _ref3; + isChain = this.isChainable() && this.first.isChainable(); + if (!isChain) { + this.first.front = this.front; + } + if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { + this.error('delete operand may not be argument or var'); + } + if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) { + this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\""); + } + if (this.isYield()) { + return this.compileYield(o); + } + if (this.isUnary()) { + return this.compileUnary(o); + } + if (isChain) { + return this.compileChain(o); + } + switch (this.operator) { + case '?': + return this.compileExistence(o); + case '**': + return this.compilePower(o); + case '//': + return this.compileFloorDivision(o); + case '%%': + return this.compileModulo(o); + default: + lhs = this.first.compileToFragments(o, LEVEL_OP); + rhs = this.second.compileToFragments(o, LEVEL_OP); + answer = [].concat(lhs, this.makeCode(" " + this.operator + " "), rhs); + if (o.level <= LEVEL_OP) { + return answer; + } else { + return this.wrapInBraces(answer); + } + } + }; + + Op.prototype.compileChain = function(o) { + var fragments, fst, shared, _ref2; + _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1]; + fst = this.first.compileToFragments(o, LEVEL_OP); + fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP)); + return this.wrapInBraces(fragments); + }; + + Op.prototype.compileExistence = function(o) { + var fst, ref; + if (this.first.isComplex()) { + ref = new Literal(o.scope.freeVariable('ref')); + fst = new Parens(new Assign(ref, this.first)); + } else { + fst = this.first; + ref = fst; + } + return new If(new Existence(fst), ref, { + type: 'if' + }).addElse(this.second).compileToFragments(o); + }; + + Op.prototype.compileUnary = function(o) { + var op, parts, plusMinus; + parts = []; + op = this.operator; + parts.push([this.makeCode(op)]); + if (op === '!' && this.first instanceof Existence) { + this.first.negated = !this.first.negated; + return this.first.compileToFragments(o); + } + if (o.level >= LEVEL_ACCESS) { + return (new Parens(this)).compileToFragments(o); + } + plusMinus = op === '+' || op === '-'; + if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { + parts.push([this.makeCode(' ')]); + } + if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { + this.first = new Parens(this.first); + } + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + if (this.flip) { + parts.reverse(); + } + return this.joinFragmentArrays(parts, ''); + }; + + Op.prototype.compileYield = function(o) { + var op, parts; + parts = []; + op = this.operator; + if (o.scope.parent == null) { + this.error('yield statements must occur within a function generator.'); + } + if (__indexOf.call(Object.keys(this.first), 'expression') >= 0) { + if (this.first.expression != null) { + parts.push(this.first.expression.compileToFragments(o, LEVEL_OP)); + } + } else { + parts.push([this.makeCode("(" + op + " ")]); + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + parts.push([this.makeCode(")")]); + } + return this.joinFragmentArrays(parts, ''); + }; + + Op.prototype.compilePower = function(o) { + var pow; + pow = new Value(new Literal('Math'), [new Access(new Literal('pow'))]); + return new Call(pow, [this.first, this.second]).compileToFragments(o); + }; + + Op.prototype.compileFloorDivision = function(o) { + var div, floor; + floor = new Value(new Literal('Math'), [new Access(new Literal('floor'))]); + div = new Op('/', this.first, this.second); + return new Call(floor, [div]).compileToFragments(o); + }; + + Op.prototype.compileModulo = function(o) { + var mod; + mod = new Value(new Literal(utility('modulo'))); + return new Call(mod, [this.first, this.second]).compileToFragments(o); + }; + + Op.prototype.toString = function(idt) { + return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator); + }; + + Op.prototype.icedWrapContinuation = function() { + return this.icedCallContinuationFlag; + }; + + return Op; + + })(Base); + + exports.In = In = (function(_super) { + __extends(In, _super); + + function In(object, array) { + this.object = object; + this.array = array; + In.__super__.constructor.call(this); + } + + In.prototype.children = ['object', 'array']; + + In.prototype.invert = NEGATE; + + In.prototype.compileNode = function(o) { + var hasSplat, obj, _i, _len, _ref2; + if (this.array instanceof Value && this.array.isArray() && this.array.base.objects.length) { + _ref2 = this.array.base.objects; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + obj = _ref2[_i]; + if (!(obj instanceof Splat)) { + continue; + } + hasSplat = true; + break; + } + if (!hasSplat) { + return this.compileOrTest(o); + } + } + return this.compileLoopTest(o); + }; + + In.prototype.compileOrTest = function(o) { + var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref2, _ref3, _ref4; + _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1]; + _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1]; + tests = []; + _ref4 = this.array.base.objects; + for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { + item = _ref4[i]; + if (i) { + tests.push(this.makeCode(cnj)); + } + tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS)); + } + if (o.level < LEVEL_OP) { + return tests; + } else { + return this.wrapInBraces(tests); + } + }; + + In.prototype.compileLoopTest = function(o) { + var fragments, ref, sub, _ref2; + _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1]; + fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0'))); + if (fragmentsToText(sub) === fragmentsToText(ref)) { + return fragments; + } + fragments = sub.concat(this.makeCode(', '), fragments); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + In.prototype.toString = function(idt) { + return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : '')); + }; + + return In; + + })(Base); + + exports.Slot = Slot = (function(_super) { + __extends(Slot, _super); + + function Slot(index, value, suffix, splat) { + Slot.__super__.constructor.call(this); + this.index = index; + this.value = value; + this.suffix = suffix; + this.splat = splat; + this.access = null; + } + + Slot.prototype.addAccess = function(a) { + this.access = a; + return this; + }; + + Slot.prototype.children = ['value', 'suffix']; + + return Slot; + + })(Base); + + exports.Defer = Defer = (function(_super) { + __extends(Defer, _super); + + function Defer(args, lineno) { + var a, i; + this.lineno = lineno; + Defer.__super__.constructor.call(this); + this.slots = flatten((function() { + var _i, _len, _results; + _results = []; + for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { + a = args[i]; + _results.push(a.icedToSlot(i)); + } + return _results; + })()); + this.params = []; + this.vars = []; + this.custom = false; + } + + Defer.prototype.children = ['slots']; + + Defer.prototype.setCustom = function() { + this.custom = true; + return this; + }; + + Defer.prototype.newParam = function() { + var l; + l = "" + iced["const"].slot + "_" + (this.params.length + 1); + this.params.push(new Param(new Literal(l))); + return new Value(new Literal(l)); + }; + + Defer.prototype.makeAssignFn = function(o) { + var a, args, assign, assignments, block, call, func, i, i_lit, inner_fn, lit, outer_block, outer_fn, prop, s, slot, _i, _len, _ref2; + if (this.slots.length === 0) { + return null; + } + assignments = []; + args = []; + i = 0; + _ref2 = this.slots; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + s = _ref2[_i]; + i = s.index; + a = new Value(new Literal("arguments")); + i_lit = new Value(new Literal(i)); + if (s.splat) { + func = new Value(new Literal(utility('slice'))); + func.add(new Access(new Value(new Literal('call')))); + call = new Call(func, [a, i_lit]); + slot = s.value; + this.vars.push(slot); + assign = new Assign(slot, call); + } else { + a.add(new Index(i_lit)); + if (s.access) { + a.add(s.access); + } + if (!s.suffix) { + lit = s.value.compile(o, LEVEL_TOP); + if (lit === "_") { + slot = new Value(new Literal(iced["const"].deferrals)); + slot.add(new Access(new Value(new Literal(iced["const"].retslot)))); + } else { + slot = s.value; + this.vars.push(slot); + } + } else { + args.push(s.value); + slot = this.newParam(); + if (s.suffix instanceof Index) { + prop = new Index(this.newParam()); + args.push(s.suffix.index); + } else { + prop = s.suffix; + } + slot.add(prop); + } + assign = new Assign(slot, a); + } + assignments.push(assign); + } + block = new Block(assignments); + inner_fn = new Code([], block, 'icedgen'); + outer_block = new Block([new Return(inner_fn)]); + outer_fn = new Code(this.params, outer_block, 'icedgen'); + return call = new Call(outer_fn, args); + }; + + Defer.prototype.transform = function(o) { + var assign_fn, assignments, context_assign, context_lhs, context_rhs, fn, ln_assign, ln_lhs, ln_rhs, meth; + meth = new Value(new Literal(iced["const"].defer_method)); + if (this.custom) { + fn = meth; + } else { + fn = new Value(new Literal(iced["const"].deferrals)); + fn.add(new Access(meth)); + } + assignments = []; + if ((assign_fn = this.makeAssignFn(o))) { + assignments.push(new Assign(new Value(new Literal(iced["const"].assign_fn)), assign_fn, "object")); + } + ln_lhs = new Value(new Literal(iced["const"].lineno)); + ln_rhs = new Value(new Literal(this.lineno)); + ln_assign = new Assign(ln_lhs, ln_rhs, "object"); + assignments.push(ln_assign); + if (this.custom) { + context_lhs = new Value(new Literal(iced["const"].context)); + context_rhs = new Value(new Literal(iced["const"].deferrals)); + context_assign = new Assign(context_lhs, context_rhs, "object"); + assignments.push(context_assign); + } + o = new Obj(assignments); + return new Call(fn, [new Value(o)]); + }; + + Defer.prototype.compileNode = function(o) { + var call, name, scope, v, _i, _len, _ref2; + call = this.transform(o); + _ref2 = this.vars; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + v = _ref2[_i]; + name = v.compile(o, LEVEL_LIST); + scope = o.scope; + scope.find(name, 'var'); + } + return call.compileNode(o); + }; + + Defer.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + o.foundDefer = true; + this.parentFunc = o.currFunc; + return Defer.__super__.icedWalkAst.call(this, p, o); + }; + + return Defer; + + })(Base); + + quote_path_for_emission = function(n) { + return '"' + n.replace(/\\/g, '\\\\') + '"'; + }; + + quote_funcname_for_debug = function(n) { + return '"' + n.replace(/["']/g, '') + '"'; + }; + + require_top_dir = function() { + return quote_path_for_emission(pathmod.join(__dirname, "..", "..")); + }; + + exports.Await = Await = (function(_super) { + __extends(Await, _super); + + function Await(body) { + this.body = body; + Await.__super__.constructor.call(this); + } + + Await.prototype.transform = function(o) { + var assign, assignments, body, call, cb_assignment, cb_lhs, cb_rhs, cls, fn_assignment, fn_lhs, fn_rhs, func_assignment, func_lhs, func_rhs, lhs, meth, n, name, rhs, trace, _ref2, _ref3; + body = this.body; + name = iced["const"].deferrals; + o.scope.add(name, 'var'); + lhs = new Value(new Literal(name)); + cls = new Value(new Literal(iced["const"].ns)); + cls.add(new Access(new Value(new Literal(iced["const"].Deferrals)))); + assignments = []; + if (n = (_ref2 = this.parentFunc) != null ? _ref2.icedPassedDeferral : void 0) { + cb_lhs = new Value(new Literal(iced["const"].parent)); + cb_rhs = new Value(new Literal(n)); + cb_assignment = new Assign(cb_lhs, cb_rhs, "object"); + assignments.push(cb_assignment); + } + if (o.filename != null) { + fn_lhs = new Value(new Literal(iced["const"].filename)); + fn_rhs = new Value(new Literal(quote_path_for_emission(o.filename))); + fn_assignment = new Assign(fn_lhs, fn_rhs, "object"); + assignments.push(fn_assignment); + } + if (n = (_ref3 = this.parentFunc) != null ? _ref3.icedTraceName() : void 0) { + func_lhs = new Value(new Literal(iced["const"].funcname)); + func_rhs = new Value(new Literal(quote_funcname_for_debug(n))); + func_assignment = new Assign(func_lhs, func_rhs, "object"); + assignments.push(func_assignment); + } + trace = new Obj(assignments, true); + call = new Call(cls, [new Value(new Literal(iced["const"].k)), trace]); + rhs = new Op("new", call); + assign = new Assign(lhs, rhs); + body.unshift(assign); + meth = lhs.copy().add(new Access(new Value(new Literal(iced["const"].fulfill)))); + call = new Call(meth, []); + body.push(call); + return this.body = body; + }; + + Await.prototype.children = ['body']; + + Await.prototype.isStatement = function() { + return YES; + }; + + Await.prototype.makeReturn = THIS; + + Await.prototype.compileNode = function(o) { + this.transform(o); + return this.body.compileNode(o); + }; + + Await.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + this.parentFunc = o.currFunc; + p = p || this; + this.icedParentAwait = p; + Await.__super__.icedWalkAst.call(this, p, o); + return this.icedNodeFlag = o.foundAwaitFunc = o.foundAwait = true; + }; + + return Await; + + })(Base); + + IcedRuntime = (function(_super) { + __extends(IcedRuntime, _super); + + function IcedRuntime(foundDefer, foundAwait) { + this.foundDefer = foundDefer; + this.foundAwait = foundAwait; + IcedRuntime.__super__.constructor.call(this); + } + + IcedRuntime.prototype.compileNode = function(o, level) { + var access, accessname, assign, call, callv, file, inc, interp, k, klass, lhs_vec, ns, qmodname, req, rhs, v, val, window_mode, window_val, _i, _j, _len, _len1, _ref2; + this.expressions = []; + v = o.runtime ? o.runtime : o.bare ? "none" : this.foundDefer ? "node" : "none"; + if (o.runtime && !this.foundDefer && !o.runforce) { + v = "none"; + } + window_mode = false; + window_val = null; + inc = null; + inc = (function() { + switch (v) { + case "inline": + case "window": + if (v === "window") { + window_mode = true; + } + if (window_mode) { + window_val = new Value(new Literal(v)); + } + return InlineRuntime.generate(window_val ? window_val.copy() : null); + case "node": + case "browserify": + case "interp": + interp = v === "interp"; + qmodname = interp ? require_top_dir() : "'iced-runtime'"; + accessname = iced["const"].ns; + file = new Literal(qmodname); + access = new Access(new Literal(accessname)); + req = new Value(new Literal("require")); + call = new Call(req, [file]); + callv = new Value(call); + if (interp) { + callv.add(access); + } + ns = new Value(new Literal(iced["const"].ns)); + return new Assign(ns, callv); + case "none": + return null; + default: + throw SyntaxError("unexpected flag IcedRuntime " + v); + } + })(); + if (inc) { + this.push(inc); + } + if (this.foundAwait) { + rhs = new Code([], new Block([])); + lhs_vec = []; + _ref2 = [iced["const"].k_noop, iced["const"].k]; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + k = _ref2[_i]; + val = new Value(new Literal(k)); + if (window_val) { + klass = window_val.copy(); + klass.add(new Access(val)); + val = klass; + } + lhs_vec.push(val); + } + assign = rhs; + for (_j = 0, _len1 = lhs_vec.length; _j < _len1; _j++) { + v = lhs_vec[_j]; + assign = new Assign(v, assign); + } + this.push(assign); + } + if (this.isEmpty()) { + return []; + } else { + return IcedRuntime.__super__.compileNode.call(this, o); + } + }; + + IcedRuntime.prototype.icedWalkAst = function(p, o) { + this.icedHasAutocbFlag = o.foundAutocb; + return IcedRuntime.__super__.icedWalkAst.call(this, p, o); + }; + + return IcedRuntime; + + })(Block); + + exports.Try = Try = (function(_super) { + __extends(Try, _super); + + function Try(attempt, errorVariable, recovery, ensure) { + this.attempt = attempt; + this.errorVariable = errorVariable; + this.recovery = recovery; + this.ensure = ensure; + } + + Try.prototype.children = ['attempt', 'recovery', 'ensure']; + + Try.prototype.isStatement = YES; + + Try.prototype.jumps = function(o) { + var _ref2; + return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0); + }; + + Try.prototype.makeReturn = function(res) { + if (this.attempt) { + this.attempt = this.attempt.makeReturn(res); + } + if (this.recovery) { + this.recovery = this.recovery.makeReturn(res); + } + return this; + }; + + Try.prototype.compileNode = function(o) { + var catchPart, ensurePart, placeholder, tryPart; + o.indent += TAB; + tryPart = this.attempt.compileToFragments(o, LEVEL_TOP); + catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : []; + ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : []; + return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart); + }; + + return Try; + + })(Base); + + exports.Throw = Throw = (function(_super) { + __extends(Throw, _super); + + function Throw(expression) { + this.expression = expression; + Throw.__super__.constructor.call(this); + } + + Throw.prototype.children = ['expression']; + + Throw.prototype.isStatement = YES; + + Throw.prototype.jumps = NO; + + Throw.prototype.makeReturn = THIS; + + Throw.prototype.compileNode = function(o) { + return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";")); + }; + + return Throw; + + })(Base); + + exports.Existence = Existence = (function(_super) { + __extends(Existence, _super); + + function Existence(expression) { + this.expression = expression; + Existence.__super__.constructor.call(this); + } + + Existence.prototype.children = ['expression']; + + Existence.prototype.invert = NEGATE; + + Existence.prototype.compileNode = function(o) { + var cmp, cnj, code, _ref2; + this.expression.front = this.front; + code = this.expression.compile(o, LEVEL_OP); + if (IDENTIFIER.test(code) && !o.scope.check(code)) { + _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1]; + code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; + } else { + code = "" + code + " " + (this.negated ? '==' : '!=') + " null"; + } + return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")]; + }; + + return Existence; + + })(Base); + + exports.Parens = Parens = (function(_super) { + __extends(Parens, _super); + + function Parens(body) { + this.body = body; + Parens.__super__.constructor.call(this); + } + + Parens.prototype.children = ['body']; + + Parens.prototype.unwrap = function() { + return this.body; + }; + + Parens.prototype.isComplex = function() { + return this.body.isComplex(); + }; + + Parens.prototype.compileNode = function(o) { + var bare, expr, fragments; + expr = this.body.unwrap(); + if (expr instanceof Value && expr.isAtomic()) { + expr.front = this.front; + return expr.compileToFragments(o); + } + fragments = expr.compileToFragments(o, LEVEL_PAREN); + bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); + if (bare) { + return fragments; + } else { + return this.wrapInBraces(fragments); + } + }; + + return Parens; + + })(Base); + + exports.For = For = (function(_super) { + __extends(For, _super); + + function For(body, source) { + var _ref2; + For.__super__.constructor.call(this); + this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index; + this.body = Block.wrap([body]); + this.own = !!source.own; + this.object = !!source.object; + if (this.object) { + _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1]; + } + if (this.index instanceof Value) { + this.index.error('index cannot be a pattern matching expression'); + } + this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length; + this.pattern = this.name instanceof Value; + if (this.range && this.index) { + this.index.error('indexes do not apply to range loops'); + } + if (this.range && this.pattern) { + this.name.error('cannot pattern match over range loops'); + } + if (this.own && !this.object) { + this.name.error('cannot use own with for-in'); + } + this.returns = false; + } + + For.prototype.children = ['body', 'source', 'guard', 'step']; + + For.prototype.compileNode = function(o) { + var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref2, _ref3; + body = Block.wrap([this.body]); + lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0; + if (lastJumps && lastJumps instanceof Return) { + this.returns = false; + } + source = this.range ? this.source.base : this.source; + scope = o.scope; + if (!this.pattern) { + name = this.name && (this.name.compile(o, LEVEL_LIST)); + } + index = this.index && (this.index.compile(o, LEVEL_LIST)); + if (name && !this.pattern) { + scope.find(name); + } + if (index) { + scope.find(index); + } + if (this.returns) { + rvar = scope.freeVariable('results'); + } + ivar = (this.object && index) || scope.freeVariable('i'); + kvar = (this.range && name) || index || ivar; + kvarAssign = kvar !== ivar ? "" + kvar + " = " : ""; + if (this.step && !this.range) { + _ref3 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref3[0], stepVar = _ref3[1]; + stepNum = stepVar.match(NUMBER); + } + if (this.pattern) { + name = ivar; + } + varPart = ''; + guardPart = ''; + defPart = ''; + idt1 = this.tab + TAB; + source.icedStatementAssertion(); + if (this.icedNodeFlag) { + return this.icedCompileIced(o, { + stepVar: stepVar, + body: body, + kvar: kvar, + guard: this.guard + }); + } + if (this.range) { + forPartFragments = source.compileToFragments(merge(o, { + index: ivar, + name: name, + step: this.step + })); + } else { + svar = this.source.compile(o, LEVEL_LIST); + if ((name || this.own) && !IDENTIFIER.test(svar)) { + defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; + svar = ref; + } + if (name && !this.pattern) { + namePart = "" + name + " = " + svar + "[" + kvar + "]"; + } + if (!this.object) { + if (step !== stepVar) { + defPart += "" + this.tab + step + ";\n"; + } + if (!(this.step && stepNum && (down = parseNum(stepNum[0]) < 0))) { + lvar = scope.freeVariable('len'); + } + declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; + declareDown = "" + kvarAssign + ivar + " = " + svar + ".length - 1"; + compare = "" + ivar + " < " + lvar; + compareDown = "" + ivar + " >= 0"; + if (this.step) { + if (stepNum) { + if (down) { + compare = compareDown; + declare = declareDown; + } + } else { + compare = "" + stepVar + " > 0 ? " + compare + " : " + compareDown; + declare = "(" + stepVar + " > 0 ? (" + declare + ") : " + declareDown + ")"; + } + increment = "" + ivar + " += " + stepVar; + } else { + increment = "" + (kvar !== ivar ? "++" + ivar : "" + ivar + "++"); + } + forPartFragments = [this.makeCode("" + declare + "; " + compare + "; " + kvarAssign + increment)]; + } + } + if (this.returns) { + resultPart = "" + this.tab + rvar + " = [];\n"; + returnResult = this.icedHasAutocbFlag ? "\n" + this.tab + iced["const"].autocb + "(" + rvar + "); return;" : "\n" + this.tab + "return " + rvar + ";"; + body.makeReturn(rvar); + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + if (this.pattern) { + body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]"))); + } + defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body)); + if (namePart) { + varPart = "\n" + idt1 + namePart + ";"; + } + if (this.object) { + forPartFragments = [this.makeCode("" + kvar + " in " + svar)]; + if (this.own) { + guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;"; + } + } + bodyFragments = body.compileToFragments(merge(o, { + indent: idt1 + }), LEVEL_TOP); + if (bodyFragments && (bodyFragments.length > 0)) { + bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n")); + } + return [].concat(defPartFragments, this.makeCode("" + (resultPart || '') + this.tab + "for ("), forPartFragments, this.makeCode(") {" + guardPart + varPart), bodyFragments, this.makeCode("" + this.tab + "}" + (returnResult || ''))); + }; + + For.prototype.pluckDirectCall = function(o, body) { + var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; + defs = []; + _ref2 = body.expressions; + for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) { + expr = _ref2[idx]; + expr = expr.unwrapAll(); + if (!(expr instanceof Call)) { + continue; + } + val = (_ref3 = expr.variable) != null ? _ref3.unwrapAll() : void 0; + if (!((val instanceof Code) || (val instanceof Value && ((_ref4 = val.base) != null ? _ref4.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref5 = (_ref6 = val.properties[0].name) != null ? _ref6.value : void 0) === 'call' || _ref5 === 'apply')))) { + continue; + } + fn = ((_ref7 = val.base) != null ? _ref7.unwrapAll() : void 0) || val; + ref = new Literal(o.scope.freeVariable('fn')); + base = new Value(ref); + if (val.base) { + _ref8 = [base, val], val.base = _ref8[0], base = _ref8[1]; + } + body.expressions[idx] = new Call(base, expr.args); + defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n')); + } + return defs; + }; + + For.prototype.icedCompileIced = function(o, d) { + var a1, a2, a3, a4, a5, a_positive, a_stepVal, b, begin, body, condition, down, empty_arr, end, excl, guard, iname, init, init_step, is_positive, is_step_positive, ival, key, key_lit, key_val, keys, keys_access, keys_len, keys_val, kval, len, len_rhs, len_val, loop_body, loop_keys, loop_source, neg, pos, positive, pre_body, ref, ref_val, ref_val_copy, scope, source_access, start_rhs, step, stepNum, stepVal, stepVar, step_var, step_var_val, _, _ref2; + body = d.body; + condition = null; + init = []; + step = null; + scope = o.scope; + pre_body = new Block([]); + if (this.object) { + ref = scope.freeVariable('ref'); + ref_val = new Value(new Literal(ref)); + a1 = new Assign(ref_val, this.source); + keys = scope.freeVariable('keys'); + keys_val = new Value(new Literal(keys)); + key = scope.freeVariable('k'); + key_lit = new Literal(key); + key_val = new Value(key_lit); + empty_arr = new Value(new Arr); + loop_body = new Block([key_val]); + loop_source = { + object: true, + name: key_lit, + source: ref_val + }; + loop_keys = new For(loop_body, loop_source); + a2 = new Assign(keys_val, loop_keys); + iname = scope.freeVariable('i'); + ival = new Value(new Literal(iname)); + a3 = new Assign(ival, new Value(new Literal(0))); + init = [a1, a2, a3]; + keys_len = keys_val.copy(); + keys_len.add(new Access(new Value(new Literal("length")))); + condition = new Op('<', ival, keys_len); + step = new Op('++', ival); + if (this.name) { + source_access = ref_val.copy(); + source_access.add(new Index(this.index)); + a5 = new Assign(this.name, source_access); + pre_body.unshift(a5); + } + keys_access = keys_val.copy(); + keys_access.add(new Index(ival)); + a4 = new Assign(this.index, keys_access); + pre_body.unshift(a4); + } else if (this.range) { + if (!this.name) { + this.name = new Literal(d.kvar); + } + begin = new Value(new Literal(o.scope.freeVariable("begin"))); + end = new Value(new Literal(o.scope.freeVariable("end"))); + positive = new Value(new Literal(o.scope.freeVariable("positive"))); + stepVal = new Value(new Literal(o.scope.freeVariable("step"))); + if (this.step) { + a_stepVal = new Assign(stepVal, this.step); + a_positive = new Assign(positive, new Op(">", stepVal, new Literal(0)), null, { + icedlocal: true + }); + } else { + is_positive = new Op(">", end, begin); + a_stepVal = new If(is_positive, new Assign(stepVal, new Literal(1))); + a_stepVal.addElse(new Assign(stepVal, new Literal(-1))); + a_positive = new Assign(positive, is_positive, null, { + icedlocal: true + }); + } + step = new Op('+=', this.name, stepVal); + excl = this.source.base.exclusive ? "=" : ''; + pos = new Op("&&", new Op("===", positive, new Literal(true)), new Op(">" + excl, this.name, this.source.base.to)); + neg = new Op("&&", new Op("===", positive, new Literal(false)), new Op("<" + excl, this.name, this.source.base.to)); + condition = new Op("||", new Parens(pos), new Parens(neg)); + condition = condition.invert(); + init = [ + new Assign(this.name, this.source.base.from), new Assign(begin, this.source.base.from, null, { + icedlocal: true + }), new Assign(end, this.source.base.to, null, { + icedlocal: true + }), a_stepVal, a_positive + ]; + } else if (!this.range && this.name) { + kval = new Value(new Literal(d.kvar)); + len = scope.freeVariable('len'); + ref = scope.freeVariable('ref'); + ref_val = new Value(new Literal(ref)); + len_val = new Value(new Literal(len)); + a1 = new Assign(ref_val, this.source); + len_rhs = ref_val.copy().add(new Access(new Value(new Literal("length")))); + a2 = new Assign(len_val, len_rhs); + init = [a1, a2]; + if (!this.step) { + a3 = new Assign(kval, new Literal(0)); + step = new Op('++', kval); + condition = new Op('<', kval, len_val); + init.push(a3); + } else { + _ref2 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), _ = _ref2[0], stepVar = _ref2[1]; + stepNum = stepVar.match(NUMBER); + if (stepNum) { + step = new Assign(kval, new Op('+', kval, this.step)); + down = parseNum(stepNum[0]) < 0; + if (down) { + a3 = new Assign(kval, new Op('-', len_val, new Literal(1))); + condition = new Op('>=', kval, new Literal(0)); + } else { + a3 = new Assign(kval, new Literal(0)); + condition = new Op('<', kval, len_val); + } + init.push(a3); + } else { + step_var = scope.freeVariable('step'); + step_var_val = new Value(new Literal(step_var)); + init_step = new Assign(step_var_val, new Value(this.step)); + is_step_positive = new Op('>', step_var_val, new Literal(0)); + start_rhs = new If(is_step_positive, new Value(new Literal(0))); + start_rhs.addElse(new Op('-', len_val, new Literal(1))); + step = new Assign(kval, new Op('+', kval, step_var_val)); + a3 = new Assign(kval, start_rhs); + condition = new Op('&&', new Op('>=', kval, new Literal(0)), new Op('<', kval, len_val)); + init.push(init_step, a3); + } + } + ref_val_copy = ref_val.copy(); + ref_val_copy.add(new Index(kval)); + a4 = new Assign(this.name, ref_val_copy); + pre_body.unshift(a4); + } + guard = d.guard; + b = this.icedWrap({ + condition: condition, + body: body, + init: init, + step: step, + guard: guard, + pre_body: pre_body + }); + return b.compileNode(o); + }; + + return For; + + })(While); + + exports.Switch = Switch = (function(_super) { + __extends(Switch, _super); + + function Switch(subject, cases, otherwise) { + this.subject = subject; + this.cases = cases; + this.otherwise = otherwise; + Switch.__super__.constructor.call(this); + } + + Switch.prototype.children = ['subject', 'cases', 'otherwise']; + + Switch.prototype.isStatement = YES; + + Switch.prototype.jumps = function(o) { + var block, conds, jumpNode, _i, _len, _ref2, _ref3, _ref4; + if (o == null) { + o = { + block: true + }; + } + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1]; + if (jumpNode = block.jumps(o)) { + return jumpNode; + } + } + return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0; + }; + + Switch.prototype.makeReturn = function(res) { + var pair, _i, _len, _ref2, _ref3; + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + pair = _ref2[_i]; + pair[1].makeReturn(res); + } + if (res) { + this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); + } + if ((_ref3 = this.otherwise) != null) { + _ref3.makeReturn(res); + } + return this; + }; + + Switch.prototype.compileNode = function(o) { + var block, body, cond, conditions, expr, fragments, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4; + if (this.subject) { + this.subject.icedStatementAssertion(); + } + idt1 = o.indent + TAB; + idt2 = o.indent = idt1 + TAB; + fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n")); + _ref2 = this.cases; + for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { + _ref3 = _ref2[i], conditions = _ref3[0], block = _ref3[1]; + _ref4 = flatten([conditions]); + for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { + cond = _ref4[_j]; + if (!this.subject) { + cond = cond.invert(); + } + fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n")); + } + if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) { + fragments = fragments.concat(body, this.makeCode('\n')); + } + if (i === this.cases.length - 1 && !this.otherwise) { + break; + } + expr = this.lastNonComment(block.expressions); + if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { + continue; + } + fragments.push(cond.makeCode(idt2 + 'break;\n')); + } + if (this.otherwise && this.otherwise.expressions.length) { + fragments.push.apply(fragments, [this.makeCode(idt1 + "default:\n")].concat(__slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode("\n")])); + } + fragments.push(this.makeCode(this.tab + '}')); + return fragments; + }; + + Switch.prototype.icedCallContinuation = function() { + var block, condition, _i, _len, _ref2, _ref3; + _ref2 = this.cases; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + _ref3 = _ref2[_i], condition = _ref3[0], block = _ref3[1]; + block.icedThreadReturn(); + } + if (this.otherwise != null) { + return this.otherwise.icedThreadReturn(); + } else { + return this.otherwise = new Block([new IcedTailCall]); + } + }; + + return Switch; + + })(Base); + + exports.If = If = (function(_super) { + __extends(If, _super); + + function If(condition, body, options) { + this.body = body; + if (options == null) { + options = {}; + } + If.__super__.constructor.call(this); + this.condition = options.type === 'unless' ? condition.invert() : condition; + this.elseBody = null; + this.isChain = false; + this.soak = options.soak; + } + + If.prototype.children = ['condition', 'body', 'elseBody']; + + If.prototype.bodyNode = function() { + var _ref2; + return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0; + }; + + If.prototype.elseBodyNode = function() { + var _ref2; + return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0; + }; + + If.prototype.addElse = function(elseBody) { + if (this.isChain) { + this.elseBodyNode().addElse(elseBody); + } else { + this.isChain = elseBody instanceof If; + this.elseBody = this.ensureBlock(elseBody); + this.elseBody.updateLocationDataIfMissing(elseBody.locationData); + } + return this; + }; + + If.prototype.isStatement = function(o) { + var _ref2; + return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0); + }; + + If.prototype.jumps = function(o) { + var _ref2; + return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0); + }; + + If.prototype.compileNode = function(o) { + this.condition.icedStatementAssertion(); + if (this.isStatement(o || this.icedIsCpsPivot())) { + return this.compileStatement(o); + } else { + return this.compileExpression(o); + } + }; + + If.prototype.makeReturn = function(res) { + if (res) { + this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); + } + this.body && (this.body = new Block([this.body.makeReturn(res)])); + this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); + return this; + }; + + If.prototype.ensureBlock = function(node) { + if (node instanceof Block) { + return node; + } else { + return new Block([node]); + } + }; + + If.prototype.compileStatement = function(o) { + var answer, body, child, cond, exeq, ifPart, indent; + child = del(o, 'chainChild'); + exeq = del(o, 'isExistentialEquals'); + if (exeq) { + return new If(this.condition.invert(), this.elseBodyNode(), { + type: 'if' + }).compileToFragments(o); + } + indent = o.indent + TAB; + cond = this.condition.compileToFragments(o, LEVEL_PAREN); + body = this.ensureBlock(this.body).compileToFragments(merge(o, { + indent: indent + })); + ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode("\n" + this.tab + "}")); + if (!child) { + ifPart.unshift(this.makeCode(this.tab)); + } + if (!this.elseBody) { + return ifPart; + } + answer = ifPart.concat(this.makeCode(' else ')); + if (this.isChain) { + o.chainChild = true; + answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP)); + } else { + answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, { + indent: indent + }), LEVEL_TOP), this.makeCode("\n" + this.tab + "}")); + } + return answer; + }; + + If.prototype.compileExpression = function(o) { + var alt, body, cond, fragments; + cond = this.condition.compileToFragments(o, LEVEL_COND); + body = this.bodyNode().compileToFragments(o, LEVEL_LIST); + alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')]; + fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt); + if (o.level >= LEVEL_COND) { + return this.wrapInBraces(fragments); + } else { + return fragments; + } + }; + + If.prototype.unfoldSoak = function() { + return this.soak && this; + }; + + If.prototype.icedCallContinuation = function() { + if (this.elseBody) { + this.elseBody.icedThreadReturn(); + this.isChain = false; + } else { + this.addElse(new IcedTailCall); + } + return this.body.icedThreadReturn(); + }; + + return If; + + })(Base); + + Closure = { + wrap: function(expressions, statement, noReturn) { + var args, argumentsNode, call, func, meth; + if (expressions.jumps()) { + return expressions; + } + func = new Code([], Block.wrap([expressions])); + args = []; + argumentsNode = expressions.contains(this.isLiteralArguments); + if (argumentsNode && expressions.classBody) { + argumentsNode.error("Class bodies shouldn't reference arguments"); + } + if (argumentsNode || expressions.contains(this.isLiteralThis)) { + meth = new Literal(argumentsNode ? 'apply' : 'call'); + args = [new Literal('this')]; + if (argumentsNode) { + args.push(new Literal('arguments')); + } + func = new Value(func, [new Access(meth)]); + } + func.noReturn = noReturn; + call = new Call(func, args); + if (statement) { + return Block.wrap([call]); + } else { + return call; + } + }, + isLiteralArguments: function(node) { + return node instanceof Literal && node.value === 'arguments' && !node.asKey; + }, + isLiteralThis: function(node) { + return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); + } + }; + + unfoldSoak = function(o, parent, name) { + var ifn; + if (!(ifn = parent[name].unfoldSoak(o))) { + return; + } + parent[name] = ifn.body; + ifn.body = new Value(parent); + return ifn; + }; + + CpsCascade = { + wrap: function(statement, rest, returnValue, o) { + var args, block, call, cont, e, func; + func = new Code([new Param(new Literal(iced["const"].k))], Block.wrap([statement]), 'icedgen'); + args = []; + if (returnValue) { + returnValue.bindName(o); + args.push(returnValue); + } + block = Block.wrap([rest]); + if ((e = block.icedGetSingle()) && e instanceof IcedTailCall && e.canInline()) { + cont = e.extractFunc(); + } else { + cont = new Code(args, block, 'icedgen'); + } + call = new Call(func, [cont]); + return new Block([call]); + } + }; + + IcedTailCall = (function(_super) { + __extends(IcedTailCall, _super); + + function IcedTailCall(func, val) { + this.func = func; + if (val == null) { + val = null; + } + IcedTailCall.__super__.constructor.call(this); + if (!this.func) { + this.func = iced["const"].k; + } + this.value = val; + } + + IcedTailCall.prototype.children = ['value']; + + IcedTailCall.prototype.assignValue = function(v) { + return this.value = v; + }; + + IcedTailCall.prototype.canInline = function() { + return !this.value || this.value instanceof IcedReturnValue; + }; + + IcedTailCall.prototype.literalFunc = function() { + return new Literal(this.func); + }; + + IcedTailCall.prototype.extractFunc = function() { + return new Value(this.literalFunc()); + }; + + IcedTailCall.prototype.compileNode = function(o) { + var args, f, out; + f = this.literalFunc(); + out = o.level === LEVEL_TOP ? this.value ? new Block([this.value, new Call(f)]) : new Call(f) : (args = this.value ? [this.value] : [], new Call(f, args)); + return out.compileNode(o); + }; + + return IcedTailCall; + + })(Base); + + IcedReturnValue = (function(_super) { + __extends(IcedReturnValue, _super); + + IcedReturnValue.counter = 0; + + function IcedReturnValue() { + IcedReturnValue.__super__.constructor.call(this, null, null, false); + } + + IcedReturnValue.prototype.bindName = function(o) { + var l; + l = "" + (o.scope.freeVariable(iced["const"].param, false)) + "_" + (IcedReturnValue.counter++); + return this.name = new Literal(l); + }; + + IcedReturnValue.prototype.compile = function(o) { + if (!this.name) { + this.bindName(o); + } + return IcedReturnValue.__super__.compile.call(this, o); + }; + + return IcedReturnValue; + + })(Param); + + InlineRuntime = { + generate: function(ns_window) { + var a1, a2, af, apply_call, assignments, body, call_meth, cn, cnt, cnt_member, constructor_assign, constructor_body, constructor_code, constructor_name, constructor_params, decr, defer_assign, defer_body, defer_code, defer_name, defer_params, dp, dp_value, fn, fn_assign, fn_code, fn_name, if_body, if_cond, if_expr, inc, inner_body, inner_code, inner_params, ip, k, k_member, klass, klass_assign, my_apply, my_if, my_null, ns, ns_obj, ns_val, obj, outer_block, p1, ret_member, tr_assign, tr_block, tr_code, tr_name, tr_params, _fulfill_assign, _fulfill_body, _fulfill_call, _fulfill_code, _fulfill_method, _fulfill_name; + k = new Literal("continuation"); + cnt = new Literal("count"); + cn = new Value(new Literal(iced["const"].Deferrals)); + ns = new Value(new Literal(iced["const"].ns)); + if (ns_window) { + ns_window.add(new Access(ns)); + ns = ns_window; + } + k_member = new Value(new Literal("this")); + k_member.add(new Access(k)); + p1 = new Param(k_member); + cnt_member = new Value(new Literal("this")); + cnt_member.add(new Access(cnt)); + ret_member = new Value(new Literal("this")); + ret_member.add(new Access(new Value(new Literal(iced["const"].retslot)))); + a1 = new Assign(cnt_member, new Value(new Literal(1))); + a2 = new Assign(ret_member, NULL()); + constructor_params = [p1]; + constructor_body = new Block([a1, a2]); + constructor_code = new Code(constructor_params, constructor_body); + constructor_name = new Value(new Literal("constructor")); + constructor_assign = new Assign(constructor_name, constructor_code); + if_expr = new Call(k_member, [ret_member]); + if_body = new Block([if_expr]); + decr = new Op('--', cnt_member); + if_cond = new Op('!', decr); + my_if = new If(if_cond, if_body); + _fulfill_body = new Block([my_if]); + _fulfill_code = new Code([], _fulfill_body); + _fulfill_name = new Value(new Literal(iced["const"].fulfill)); + _fulfill_assign = new Assign(_fulfill_name, _fulfill_code); + inc = new Op("++", cnt_member); + ip = new Literal("inner_params"); + dp = new Literal("defer_params"); + dp_value = new Value(dp); + call_meth = new Value(dp); + af = new Literal(iced["const"].assign_fn); + call_meth.add(new Access(af, "soak")); + my_apply = new Literal("apply"); + call_meth.add(new Access(my_apply, "soak")); + my_null = NULL(); + apply_call = new Call(call_meth, [my_null, new Value(ip)]); + _fulfill_method = new Value(new Literal("this")); + _fulfill_method.add(new Access(new Literal(iced["const"].fulfill))); + _fulfill_call = new Call(_fulfill_method, []); + inner_body = new Block([apply_call, _fulfill_call]); + inner_params = [new Param(ip, null, true)]; + inner_code = new Code(inner_params, inner_body, "boundfunc"); + defer_body = new Block([inc, inner_code]); + defer_params = [new Param(dp)]; + defer_code = new Code(defer_params, defer_body); + defer_name = new Value(new Literal(iced["const"].defer_method)); + defer_assign = new Assign(defer_name, defer_code); + assignments = [constructor_assign, _fulfill_assign, defer_assign]; + obj = new Obj(assignments, true); + body = new Block([new Value(obj)]); + klass = new Class(null, null, body); + klass_assign = new Assign(cn, klass, "object"); + outer_block = new Block([NULL()]); + fn_code = new Code([], outer_block); + fn_name = new Value(new Literal(iced["const"].findDeferral)); + fn_assign = new Assign(fn_name, fn_code, "object"); + fn = new Literal("_fn"); + tr_block = new Block([new Call(new Value(fn), [])]); + tr_params = [new Param(fn)]; + tr_code = new Code(tr_params, tr_block); + tr_name = new Value(new Literal(iced["const"].trampoline)); + tr_assign = new Assign(tr_name, tr_code, "object"); + ns_obj = new Obj([klass_assign, fn_assign, tr_assign], true); + ns_val = new Value(ns_obj); + return new Assign(ns, ns_val); + } + }; + + UTILITIES = { + "extends": function() { + return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".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'; + } + }; + + LEVEL_TOP = 1; + + LEVEL_PAREN = 2; + + LEVEL_LIST = 3; + + LEVEL_COND = 4; + + LEVEL_OP = 5; + + LEVEL_ACCESS = 6; + + TAB = ' '; + + IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; + + IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$"); + + SIMPLENUM = /^[+-]?\d+$/; + + HEXNUM = /^[+-]?0x[\da-f]+/i; + + NUMBER = /^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i; + + METHOD_DEF = RegExp("^(" + IDENTIFIER_STR + ")(\\.prototype)?(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\])$"); + + IS_STRING = /^['"]/; + + IS_REGEX = /^\//; + + utility = function(name) { + var ref; + ref = "__" + name; + Scope.root.assign(ref, UTILITIES[name]()); + return ref; + }; + + multident = function(code, tab) { + code = code.replace(/\n/g, '$&' + tab); + return code.replace(/\s+$/, ''); + }; + + parseNum = function(x) { + if (x == null) { + return 0; + } else if (x.match(HEXNUM)) { + return parseInt(x, 16); + } else { + return parseFloat(x); + } + }; + + isLiteralArguments = function(node) { + return node instanceof Literal && node.value === 'arguments' && !node.asKey; + }; + + isLiteralThis = function(node) { + return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); + }; + + unfoldSoak = function(o, parent, name) { + var ifn; + if (!(ifn = parent[name].unfoldSoak(o))) { + return; + } + parent[name] = ifn.body; + ifn.body = new Value(parent); + return ifn; + }; + +}).call(this); + +}).call(this,"/") +},{"./helpers":3,"./lexer":5,"./scope":10,"iced-runtime":15,"path":18}],7:[function(_dereq_,module,exports){ +(function (process){ +/* parser generated by jison 0.4.13 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Await":12,"AWAIT":13,"Block":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,"Defer":27,"INDENT":28,"OUTDENT":29,"Identifier":30,"IDENTIFIER":31,"AlphaNumeric":32,"NUMBER":33,"STRING":34,"Literal":35,"JS":36,"REGEX":37,"DEBUGGER":38,"UNDEFINED":39,"NULL":40,"BOOL":41,"Assignable":42,"=":43,"AssignObj":44,"ObjAssignable":45,":":46,"ThisProperty":47,"RETURN":48,"HERECOMMENT":49,"PARAM_START":50,"ParamList":51,"PARAM_END":52,"FuncGlyph":53,"->":54,"=>":55,"OptComma":56,",":57,"Param":58,"ParamVar":59,"...":60,"Array":61,"Object":62,"Splat":63,"SimpleAssignable":64,"Accessor":65,"Parenthetical":66,"Range":67,"This":68,".":69,"?.":70,"::":71,"?::":72,"Index":73,"INDEX_START":74,"IndexValue":75,"INDEX_END":76,"INDEX_SOAK":77,"Slice":78,"{":79,"AssignList":80,"}":81,"CLASS":82,"EXTENDS":83,"OptFuncExist":84,"Arguments":85,"SUPER":86,"DEFER":87,"FUNC_EXIST":88,"CALL_START":89,"CALL_END":90,"ArgList":91,"THIS":92,"@":93,"[":94,"]":95,"RangeDots":96,"..":97,"Arg":98,"SimpleArgs":99,"TRY":100,"Catch":101,"FINALLY":102,"CATCH":103,"THROW":104,"(":105,")":106,"WhileSource":107,"WHILE":108,"WHEN":109,"UNTIL":110,"Loop":111,"LOOP":112,"ForBody":113,"FOR":114,"ForStart":115,"ForSource":116,"ForVariables":117,"OWN":118,"ForValue":119,"FORIN":120,"FOROF":121,"BY":122,"SWITCH":123,"Whens":124,"ELSE":125,"When":126,"LEADING_WHEN":127,"IfBlock":128,"IF":129,"POST_IF":130,"UNARY":131,"UNARY_MATH":132,"-":133,"+":134,"YIELD":135,"FROM":136,"--":137,"++":138,"?":139,"MATH":140,"**":141,"SHIFT":142,"COMPARE":143,"LOGIC":144,"RELATION":145,"COMPOUND_ASSIGN":146,"$accept":0,"$end":1}, +terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",13:"AWAIT",28:"INDENT",29:"OUTDENT",31:"IDENTIFIER",33:"NUMBER",34:"STRING",36:"JS",37:"REGEX",38:"DEBUGGER",39:"UNDEFINED",40:"NULL",41:"BOOL",43:"=",46:":",48:"RETURN",49:"HERECOMMENT",50:"PARAM_START",52:"PARAM_END",54:"->",55:"=>",57:",",60:"...",69:".",70:"?.",71:"::",72:"?::",74:"INDEX_START",76:"INDEX_END",77:"INDEX_SOAK",79:"{",81:"}",82:"CLASS",83:"EXTENDS",86:"SUPER",87:"DEFER",88:"FUNC_EXIST",89:"CALL_START",90:"CALL_END",92:"THIS",93:"@",94:"[",95:"]",97:"..",100:"TRY",102:"FINALLY",103:"CATCH",104:"THROW",105:"(",106:")",108:"WHILE",109:"WHEN",110:"UNTIL",112:"LOOP",114:"FOR",118:"OWN",120:"FORIN",121:"FOROF",122:"BY",123:"SWITCH",125:"ELSE",127:"LEADING_WHEN",129:"IF",130:"POST_IF",131:"UNARY",132:"UNARY_MATH",133:"-",134:"+",135:"YIELD",136:"FROM",137:"--",138:"++",139:"?",140:"MATH",141:"**",142:"SHIFT",143:"COMPARE",144:"LOGIC",145:"RELATION",146:"COMPOUND_ASSIGN"}, +productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[12,2],[12,2],[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],[14,2],[14,3],[30,1],[32,1],[32,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[19,3],[19,4],[19,5],[44,1],[44,3],[44,5],[44,1],[45,1],[45,1],[45,1],[9,2],[9,1],[10,1],[17,5],[17,2],[53,1],[53,1],[56,0],[56,1],[51,0],[51,1],[51,3],[51,4],[51,6],[58,1],[58,2],[58,3],[58,1],[59,1],[59,1],[59,1],[59,1],[63,2],[64,1],[64,2],[64,2],[64,1],[42,1],[42,1],[42,1],[15,1],[15,1],[15,1],[15,1],[15,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,1],[65,1],[73,3],[73,2],[75,1],[75,1],[62,4],[80,0],[80,1],[80,3],[80,4],[80,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[16,3],[16,3],[16,1],[16,2],[27,2],[84,0],[84,1],[85,2],[85,4],[68,1],[68,1],[47,2],[61,2],[61,4],[96,1],[96,1],[67,5],[78,3],[78,2],[78,2],[78,1],[91,1],[91,3],[91,4],[91,4],[91,6],[98,1],[98,1],[98,1],[99,1],[99,3],[21,2],[21,3],[21,4],[21,5],[101,3],[101,3],[101,2],[26,2],[66,3],[66,5],[107,2],[107,4],[107,2],[107,4],[22,2],[22,2],[22,2],[22,1],[111,2],[111,2],[23,2],[23,2],[23,2],[113,2],[113,2],[115,2],[115,3],[119,1],[119,1],[119,1],[119,1],[117,1],[117,3],[116,2],[116,2],[116,4],[116,4],[116,4],[116,6],[116,6],[24,5],[24,7],[24,4],[24,6],[124,1],[124,2],[126,3],[126,4],[128,3],[128,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[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 anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */ +/*``*/) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block); +break; +case 2:return this.$ = $$[$0]; +break; +case 3:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]])); +break; +case 4:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0])); +break; +case 5:this.$ = $$[$0-1]; +break; +case 6:this.$ = $$[$0]; +break; +case 7:this.$ = $$[$0]; +break; +case 8:this.$ = $$[$0]; +break; +case 9:this.$ = $$[$0]; +break; +case 10:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 11:this.$ = $$[$0]; +break; +case 12:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Await($$[$0])); +break; +case 13:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Await(yy.Block.wrap([$$[$0]]))); +break; +case 14:this.$ = $$[$0]; +break; +case 15:this.$ = $$[$0]; +break; +case 16:this.$ = $$[$0]; +break; +case 17:this.$ = $$[$0]; +break; +case 18:this.$ = $$[$0]; +break; +case 19:this.$ = $$[$0]; +break; +case 20:this.$ = $$[$0]; +break; +case 21:this.$ = $$[$0]; +break; +case 22:this.$ = $$[$0]; +break; +case 23:this.$ = $$[$0]; +break; +case 24:this.$ = $$[$0]; +break; +case 25:this.$ = $$[$0]; +break; +case 26:this.$ = $$[$0]; +break; +case 27:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block); +break; +case 28:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); +break; +case 29:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 32:this.$ = $$[$0]; +break; +case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 35:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +break; +case 36:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined); +break; +case 37:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null); +break; +case 38:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0])); +break; +case 39:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0])); +break; +case 40:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0])); +break; +case 41:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1])); +break; +case 42:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 43:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object')); +break; +case 44:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object')); +break; +case 45:this.$ = $$[$0]; +break; +case 46:this.$ = $$[$0]; +break; +case 47:this.$ = $$[$0]; +break; +case 48:this.$ = $$[$0]; +break; +case 49:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0])); +break; +case 50:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return); +break; +case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0])); +break; +case 52:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1])); +break; +case 53:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1])); +break; +case 54:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func'); +break; +case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc'); +break; +case 56:this.$ = $$[$0]; +break; +case 57:this.$ = $$[$0]; +break; +case 58:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); +break; +case 59:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 60:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 61:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 62:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 63:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0])); +break; +case 64:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true)); +break; +case 65:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0])); +break; +case 66:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); +break; +case 67:this.$ = $$[$0]; +break; +case 68:this.$ = $$[$0]; +break; +case 69:this.$ = $$[$0]; +break; +case 70:this.$ = $$[$0]; +break; +case 71:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1])); +break; +case 72:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 73:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0])); +break; +case 74:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0]))); +break; +case 75:this.$ = $$[$0]; +break; +case 76:this.$ = $$[$0]; +break; +case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 79:this.$ = $$[$0]; +break; +case 80:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 81:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 82:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 83:this.$ = $$[$0]; +break; +case 84:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0])); +break; +case 85:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0].setCustom())); +break; +case 86:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak')); +break; +case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 88:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype'))); +break; +case 90:this.$ = $$[$0]; +break; +case 91:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); +break; +case 92:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], { + soak: true + })); +break; +case 93:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0])); +break; +case 94:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0])); +break; +case 95:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated)); +break; +case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); +break; +case 97:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 100:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 101:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class); +break; +case 102:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0])); +break; +case 103:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0])); +break; +case 104:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0])); +break; +case 105:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0])); +break; +case 106:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0])); +break; +case 107:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0])); +break; +case 108:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0])); +break; +case 109:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); +break; +case 110:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); +break; +case 111:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))])); +break; +case 112:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0])); +break; +case 113:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Defer($$[$0], yylineno)); +break; +case 114:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); +break; +case 115:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); +break; +case 116:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]); +break; +case 117:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); +break; +case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); +break; +case 119:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); +break; +case 120:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this')); +break; +case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); +break; +case 122:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); +break; +case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); +break; +case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); +break; +case 125:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); +break; +case 126:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); +break; +case 127:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); +break; +case 128:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); +break; +case 129:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0])); +break; +case 130:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 131:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 132:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 133:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); +break; +case 134:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 135:this.$ = $$[$0]; +break; +case 136:this.$ = $$[$0]; +break; +case 137:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); +break; +case 138:this.$ = $$[$0]; +break; +case 139:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0])); +break; +case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0])); +break; +case 141:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1])); +break; +case 142:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0])); +break; +case 143:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0])); +break; +case 144:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]); +break; +case 145:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]); +break; +case 146:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]); +break; +case 147:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0])); +break; +case 148:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); +break; +case 149:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); +break; +case 150:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); +break; +case 151:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + guard: $$[$0] + })); +break; +case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], { + invert: true + })); +break; +case 153:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + invert: true, + guard: $$[$0] + })); +break; +case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0])); +break; +case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); +break; +case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); +break; +case 157:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]); +break; +case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0])); +break; +case 159:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]])))); +break; +case 160:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); +break; +case 161:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); +break; +case 162:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1])); +break; +case 163:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0])) + }); +break; +case 164:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { + $$[$0].own = $$[$0-1].own; + $$[$0].name = $$[$0-1][0]; + $$[$0].index = $$[$0-1][1]; + return $$[$0]; + }())); +break; +case 165:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]); +break; +case 166:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + $$[$0].own = true; + return $$[$0]; + }())); +break; +case 167:this.$ = $$[$0]; +break; +case 168:this.$ = $$[$0]; +break; +case 169:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 170:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 171:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 172:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]); +break; +case 173:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0] + }); +break; +case 174:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0], + object: true + }); +break; +case 175:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0] + }); +break; +case 176:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0], + object: true + }); +break; +case 177:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + step: $$[$0] + }); +break; +case 178:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + guard: $$[$0-2], + step: $$[$0] + }); +break; +case 179:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + step: $$[$0-2], + guard: $$[$0] + }); +break; +case 180:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1])); +break; +case 181:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1])); +break; +case 182:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1])); +break; +case 183:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1])); +break; +case 184:this.$ = $$[$0]; +break; +case 185:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0])); +break; +case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]); +break; +case 187:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]); +break; +case 188:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { + type: $$[$0-2] + })); +break; +case 189:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { + type: $$[$0-2] + })))); +break; +case 190:this.$ = $$[$0]; +break; +case 191:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0])); +break; +case 192:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { + type: $$[$0-1], + statement: true + })); +break; +case 193:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { + type: $$[$0-1], + statement: true + })); +break; +case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 195:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 196:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0])); +break; +case 197:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0])); +break; +case 198:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 199:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-2].concat($$[$0-1]), $$[$0])); +break; +case 201:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); +break; +case 202:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); +break; +case 203:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); +break; +case 204:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); +break; +case 205:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); +break; +case 206:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); +break; +case 207:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); +break; +case 208:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 209:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 210:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 211:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 212:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 213:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + if ($$[$0-1].charAt(0) === '!') { + return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); + } else { + return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); + } + }())); +break; +case 214:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); +break; +case 215:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); +break; +case 216:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); +break; +case 217:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0])); +break; +} +}, +table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[3]},{1:[2,2],6:[1,78]},{1:[2,3],6:[2,3],29:[2,3],106:[2,3]},{1:[2,6],6:[2,6],29:[2,6],106:[2,6],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,7],6:[2,7],29:[2,7],106:[2,7],107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,14],6:[2,14],28:[2,14],29:[2,14],52:[2,14],57:[2,14],60:[2,14],65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,14],77:[1,103],81:[2,14],84:94,88:[1,96],89:[2,114],90:[2,14],95:[2,14],97:[2,14],106:[2,14],108:[2,14],109:[2,14],110:[2,14],114:[2,14],122:[2,14],130:[2,14],133:[2,14],134:[2,14],139:[2,14],140:[2,14],141:[2,14],142:[2,14],143:[2,14],144:[2,14],145:[2,14]},{1:[2,15],6:[2,15],28:[2,15],29:[2,15],52:[2,15],57:[2,15],60:[2,15],65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],76:[2,15],77:[1,103],81:[2,15],84:104,88:[1,96],89:[2,114],90:[2,15],95:[2,15],97:[2,15],106:[2,15],108:[2,15],109:[2,15],110:[2,15],114:[2,15],122:[2,15],130:[2,15],133:[2,15],134:[2,15],139:[2,15],140:[2,15],141:[2,15],142:[2,15],143:[2,15],144:[2,15],145:[2,15]},{1:[2,16],6:[2,16],28:[2,16],29:[2,16],52:[2,16],57:[2,16],60:[2,16],76:[2,16],81:[2,16],90:[2,16],95:[2,16],97:[2,16],106:[2,16],108:[2,16],109:[2,16],110:[2,16],114:[2,16],122:[2,16],130:[2,16],133:[2,16],134:[2,16],139:[2,16],140:[2,16],141:[2,16],142:[2,16],143:[2,16],144:[2,16],145:[2,16]},{1:[2,17],6:[2,17],28:[2,17],29:[2,17],52:[2,17],57:[2,17],60:[2,17],76:[2,17],81:[2,17],90:[2,17],95:[2,17],97:[2,17],106:[2,17],108:[2,17],109:[2,17],110:[2,17],114:[2,17],122:[2,17],130:[2,17],133:[2,17],134:[2,17],139:[2,17],140:[2,17],141:[2,17],142:[2,17],143:[2,17],144:[2,17],145:[2,17]},{1:[2,18],6:[2,18],28:[2,18],29:[2,18],52:[2,18],57:[2,18],60:[2,18],76:[2,18],81:[2,18],90:[2,18],95:[2,18],97:[2,18],106:[2,18],108:[2,18],109:[2,18],110:[2,18],114:[2,18],122:[2,18],130:[2,18],133:[2,18],134:[2,18],139:[2,18],140:[2,18],141:[2,18],142:[2,18],143:[2,18],144:[2,18],145:[2,18]},{1:[2,19],6:[2,19],28:[2,19],29:[2,19],52:[2,19],57:[2,19],60:[2,19],76:[2,19],81:[2,19],90:[2,19],95:[2,19],97:[2,19],106:[2,19],108:[2,19],109:[2,19],110:[2,19],114:[2,19],122:[2,19],130:[2,19],133:[2,19],134:[2,19],139:[2,19],140:[2,19],141:[2,19],142:[2,19],143:[2,19],144:[2,19],145:[2,19]},{1:[2,20],6:[2,20],28:[2,20],29:[2,20],52:[2,20],57:[2,20],60:[2,20],76:[2,20],81:[2,20],90:[2,20],95:[2,20],97:[2,20],106:[2,20],108:[2,20],109:[2,20],110:[2,20],114:[2,20],122:[2,20],130:[2,20],133:[2,20],134:[2,20],139:[2,20],140:[2,20],141:[2,20],142:[2,20],143:[2,20],144:[2,20],145:[2,20]},{1:[2,21],6:[2,21],28:[2,21],29:[2,21],52:[2,21],57:[2,21],60:[2,21],76:[2,21],81:[2,21],90:[2,21],95:[2,21],97:[2,21],106:[2,21],108:[2,21],109:[2,21],110:[2,21],114:[2,21],122:[2,21],130:[2,21],133:[2,21],134:[2,21],139:[2,21],140:[2,21],141:[2,21],142:[2,21],143:[2,21],144:[2,21],145:[2,21]},{1:[2,22],6:[2,22],28:[2,22],29:[2,22],52:[2,22],57:[2,22],60:[2,22],76:[2,22],81:[2,22],90:[2,22],95:[2,22],97:[2,22],106:[2,22],108:[2,22],109:[2,22],110:[2,22],114:[2,22],122:[2,22],130:[2,22],133:[2,22],134:[2,22],139:[2,22],140:[2,22],141:[2,22],142:[2,22],143:[2,22],144:[2,22],145:[2,22]},{1:[2,23],6:[2,23],28:[2,23],29:[2,23],52:[2,23],57:[2,23],60:[2,23],76:[2,23],81:[2,23],90:[2,23],95:[2,23],97:[2,23],106:[2,23],108:[2,23],109:[2,23],110:[2,23],114:[2,23],122:[2,23],130:[2,23],133:[2,23],134:[2,23],139:[2,23],140:[2,23],141:[2,23],142:[2,23],143:[2,23],144:[2,23],145:[2,23]},{1:[2,24],6:[2,24],28:[2,24],29:[2,24],52:[2,24],57:[2,24],60:[2,24],76:[2,24],81:[2,24],90:[2,24],95:[2,24],97:[2,24],106:[2,24],108:[2,24],109:[2,24],110:[2,24],114:[2,24],122:[2,24],130:[2,24],133:[2,24],134:[2,24],139:[2,24],140:[2,24],141:[2,24],142:[2,24],143:[2,24],144:[2,24],145:[2,24]},{1:[2,25],6:[2,25],28:[2,25],29:[2,25],52:[2,25],57:[2,25],60:[2,25],76:[2,25],81:[2,25],90:[2,25],95:[2,25],97:[2,25],106:[2,25],108:[2,25],109:[2,25],110:[2,25],114:[2,25],122:[2,25],130:[2,25],133:[2,25],134:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25],143:[2,25],144:[2,25],145:[2,25]},{1:[2,26],6:[2,26],28:[2,26],29:[2,26],52:[2,26],57:[2,26],60:[2,26],76:[2,26],81:[2,26],90:[2,26],95:[2,26],97:[2,26],106:[2,26],108:[2,26],109:[2,26],110:[2,26],114:[2,26],122:[2,26],130:[2,26],133:[2,26],134:[2,26],139:[2,26],140:[2,26],141:[2,26],142:[2,26],143:[2,26],144:[2,26],145:[2,26]},{1:[2,8],6:[2,8],28:[2,8],29:[2,8],52:[2,8],57:[2,8],60:[2,8],76:[2,8],81:[2,8],90:[2,8],95:[2,8],97:[2,8],106:[2,8],108:[2,8],109:[2,8],110:[2,8],114:[2,8],122:[2,8],130:[2,8],133:[2,8],134:[2,8],139:[2,8],140:[2,8],141:[2,8],142:[2,8],143:[2,8],144:[2,8],145:[2,8]},{1:[2,9],6:[2,9],28:[2,9],29:[2,9],52:[2,9],57:[2,9],60:[2,9],76:[2,9],81:[2,9],90:[2,9],95:[2,9],97:[2,9],106:[2,9],108:[2,9],109:[2,9],110:[2,9],114:[2,9],122:[2,9],130:[2,9],133:[2,9],134:[2,9],139:[2,9],140:[2,9],141:[2,9],142:[2,9],143:[2,9],144:[2,9],145:[2,9]},{1:[2,10],6:[2,10],28:[2,10],29:[2,10],52:[2,10],57:[2,10],60:[2,10],76:[2,10],81:[2,10],90:[2,10],95:[2,10],97:[2,10],106:[2,10],108:[2,10],109:[2,10],110:[2,10],114:[2,10],122:[2,10],130:[2,10],133:[2,10],134:[2,10],139:[2,10],140:[2,10],141:[2,10],142:[2,10],143:[2,10],144:[2,10],145:[2,10]},{1:[2,11],6:[2,11],28:[2,11],29:[2,11],52:[2,11],57:[2,11],60:[2,11],76:[2,11],81:[2,11],90:[2,11],95:[2,11],97:[2,11],106:[2,11],108:[2,11],109:[2,11],110:[2,11],114:[2,11],122:[2,11],130:[2,11],133:[2,11],134:[2,11],139:[2,11],140:[2,11],141:[2,11],142:[2,11],143:[2,11],144:[2,11],145:[2,11]},{1:[2,79],6:[2,79],28:[2,79],29:[2,79],43:[1,106],52:[2,79],57:[2,79],60:[2,79],69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],76:[2,79],77:[2,79],81:[2,79],88:[2,79],89:[2,79],90:[2,79],95:[2,79],97:[2,79],106:[2,79],108:[2,79],109:[2,79],110:[2,79],114:[2,79],122:[2,79],130:[2,79],133:[2,79],134:[2,79],139:[2,79],140:[2,79],141:[2,79],142:[2,79],143:[2,79],144:[2,79],145:[2,79]},{1:[2,80],6:[2,80],28:[2,80],29:[2,80],52:[2,80],57:[2,80],60:[2,80],69:[2,80],70:[2,80],71:[2,80],72:[2,80],74:[2,80],76:[2,80],77:[2,80],81:[2,80],88:[2,80],89:[2,80],90:[2,80],95:[2,80],97:[2,80],106:[2,80],108:[2,80],109:[2,80],110:[2,80],114:[2,80],122:[2,80],130:[2,80],133:[2,80],134:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80],143:[2,80],144:[2,80],145:[2,80]},{1:[2,81],6:[2,81],28:[2,81],29:[2,81],52:[2,81],57:[2,81],60:[2,81],69:[2,81],70:[2,81],71:[2,81],72:[2,81],74:[2,81],76:[2,81],77:[2,81],81:[2,81],88:[2,81],89:[2,81],90:[2,81],95:[2,81],97:[2,81],106:[2,81],108:[2,81],109:[2,81],110:[2,81],114:[2,81],122:[2,81],130:[2,81],133:[2,81],134:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81],143:[2,81],144:[2,81],145:[2,81]},{1:[2,82],6:[2,82],28:[2,82],29:[2,82],52:[2,82],57:[2,82],60:[2,82],69:[2,82],70:[2,82],71:[2,82],72:[2,82],74:[2,82],76:[2,82],77:[2,82],81:[2,82],88:[2,82],89:[2,82],90:[2,82],95:[2,82],97:[2,82],106:[2,82],108:[2,82],109:[2,82],110:[2,82],114:[2,82],122:[2,82],130:[2,82],133:[2,82],134:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82],143:[2,82],144:[2,82],145:[2,82]},{1:[2,83],6:[2,83],28:[2,83],29:[2,83],52:[2,83],57:[2,83],60:[2,83],69:[2,83],70:[2,83],71:[2,83],72:[2,83],74:[2,83],76:[2,83],77:[2,83],81:[2,83],88:[2,83],89:[2,83],90:[2,83],95:[2,83],97:[2,83],106:[2,83],108:[2,83],109:[2,83],110:[2,83],114:[2,83],122:[2,83],130:[2,83],133:[2,83],134:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83],143:[2,83],144:[2,83],145:[2,83]},{1:[2,111],6:[2,111],28:[2,111],29:[2,111],52:[2,111],57:[2,111],60:[2,111],69:[2,111],70:[2,111],71:[2,111],72:[2,111],74:[2,111],76:[2,111],77:[2,111],81:[2,111],85:107,88:[2,111],89:[1,108],90:[2,111],95:[2,111],97:[2,111],106:[2,111],108:[2,111],109:[2,111],110:[2,111],114:[2,111],122:[2,111],130:[2,111],133:[2,111],134:[2,111],139:[2,111],140:[2,111],141:[2,111],142:[2,111],143:[2,111],144:[2,111],145:[2,111]},{6:[2,58],28:[2,58],30:113,31:[1,77],47:114,51:109,52:[2,58],57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{14:119,28:[1,120]},{7:121,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:123,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:124,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:125,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:127,8:126,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],136:[1,128],137:[1,36],138:[1,37]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:129,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{15:130,16:131,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,61:51,62:52,64:133,66:25,67:26,68:27,79:[1,74],86:[1,28],92:[1,62],93:[1,63],94:[1,61],105:[1,60]},{1:[2,76],6:[2,76],28:[2,76],29:[2,76],43:[2,76],52:[2,76],57:[2,76],60:[2,76],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,76],77:[2,76],81:[2,76],83:[1,137],88:[2,76],89:[2,76],90:[2,76],95:[2,76],97:[2,76],106:[2,76],108:[2,76],109:[2,76],110:[2,76],114:[2,76],122:[2,76],130:[2,76],133:[2,76],134:[2,76],137:[1,134],138:[1,135],139:[2,76],140:[2,76],141:[2,76],142:[2,76],143:[2,76],144:[2,76],145:[2,76],146:[1,136]},{1:[2,190],6:[2,190],28:[2,190],29:[2,190],52:[2,190],57:[2,190],60:[2,190],76:[2,190],81:[2,190],90:[2,190],95:[2,190],97:[2,190],106:[2,190],108:[2,190],109:[2,190],110:[2,190],114:[2,190],122:[2,190],125:[1,138],130:[2,190],133:[2,190],134:[2,190],139:[2,190],140:[2,190],141:[2,190],142:[2,190],143:[2,190],144:[2,190],145:[2,190]},{14:139,28:[1,120]},{14:140,28:[1,120]},{1:[2,157],6:[2,157],28:[2,157],29:[2,157],52:[2,157],57:[2,157],60:[2,157],76:[2,157],81:[2,157],90:[2,157],95:[2,157],97:[2,157],106:[2,157],108:[2,157],109:[2,157],110:[2,157],114:[2,157],122:[2,157],130:[2,157],133:[2,157],134:[2,157],139:[2,157],140:[2,157],141:[2,157],142:[2,157],143:[2,157],144:[2,157],145:[2,157]},{14:141,28:[1,120]},{7:142,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,143],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,101],6:[2,101],14:144,15:130,16:131,28:[1,120],29:[2,101],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:132,47:67,52:[2,101],57:[2,101],60:[2,101],61:51,62:52,64:146,66:25,67:26,68:27,76:[2,101],79:[1,74],81:[2,101],83:[1,145],86:[1,28],90:[2,101],92:[1,62],93:[1,63],94:[1,61],95:[2,101],97:[2,101],105:[1,60],106:[2,101],108:[2,101],109:[2,101],110:[2,101],114:[2,101],122:[2,101],130:[2,101],133:[2,101],134:[2,101],139:[2,101],140:[2,101],141:[2,101],142:[2,101],143:[2,101],144:[2,101],145:[2,101]},{7:147,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{85:148,89:[1,108]},{1:[2,50],6:[2,50],7:149,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,50],29:[2,50],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],52:[2,50],53:30,54:[1,64],55:[1,65],57:[2,50],60:[2,50],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,50],79:[1,74],81:[2,50],82:[1,45],86:[1,28],87:[1,47],90:[2,50],92:[1,62],93:[1,63],94:[1,61],95:[2,50],97:[2,50],100:[1,40],104:[1,46],105:[1,60],106:[2,50],107:41,108:[2,50],109:[2,50],110:[2,50],111:42,112:[1,71],113:43,114:[2,50],115:73,122:[2,50],123:[1,44],128:39,129:[1,68],130:[2,50],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37],139:[2,50],140:[2,50],141:[2,50],142:[2,50],143:[2,50],144:[2,50],145:[2,50]},{1:[2,51],6:[2,51],28:[2,51],29:[2,51],52:[2,51],57:[2,51],60:[2,51],76:[2,51],81:[2,51],90:[2,51],95:[2,51],97:[2,51],106:[2,51],108:[2,51],109:[2,51],110:[2,51],114:[2,51],122:[2,51],130:[2,51],133:[2,51],134:[2,51],139:[2,51],140:[2,51],141:[2,51],142:[2,51],143:[2,51],144:[2,51],145:[2,51]},{7:151,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:150,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,77],6:[2,77],28:[2,77],29:[2,77],43:[2,77],52:[2,77],57:[2,77],60:[2,77],69:[2,77],70:[2,77],71:[2,77],72:[2,77],74:[2,77],76:[2,77],77:[2,77],81:[2,77],88:[2,77],89:[2,77],90:[2,77],95:[2,77],97:[2,77],106:[2,77],108:[2,77],109:[2,77],110:[2,77],114:[2,77],122:[2,77],130:[2,77],133:[2,77],134:[2,77],139:[2,77],140:[2,77],141:[2,77],142:[2,77],143:[2,77],144:[2,77],145:[2,77]},{1:[2,78],6:[2,78],28:[2,78],29:[2,78],43:[2,78],52:[2,78],57:[2,78],60:[2,78],69:[2,78],70:[2,78],71:[2,78],72:[2,78],74:[2,78],76:[2,78],77:[2,78],81:[2,78],88:[2,78],89:[2,78],90:[2,78],95:[2,78],97:[2,78],106:[2,78],108:[2,78],109:[2,78],110:[2,78],114:[2,78],122:[2,78],130:[2,78],133:[2,78],134:[2,78],139:[2,78],140:[2,78],141:[2,78],142:[2,78],143:[2,78],144:[2,78],145:[2,78]},{1:[2,32],6:[2,32],28:[2,32],29:[2,32],52:[2,32],57:[2,32],60:[2,32],69:[2,32],70:[2,32],71:[2,32],72:[2,32],74:[2,32],76:[2,32],77:[2,32],81:[2,32],88:[2,32],89:[2,32],90:[2,32],95:[2,32],97:[2,32],106:[2,32],108:[2,32],109:[2,32],110:[2,32],114:[2,32],122:[2,32],130:[2,32],133:[2,32],134:[2,32],139:[2,32],140:[2,32],141:[2,32],142:[2,32],143:[2,32],144:[2,32],145:[2,32]},{1:[2,33],6:[2,33],28:[2,33],29:[2,33],52:[2,33],57:[2,33],60:[2,33],69:[2,33],70:[2,33],71:[2,33],72:[2,33],74:[2,33],76:[2,33],77:[2,33],81:[2,33],88:[2,33],89:[2,33],90:[2,33],95:[2,33],97:[2,33],106:[2,33],108:[2,33],109:[2,33],110:[2,33],114:[2,33],122:[2,33],130:[2,33],133:[2,33],134:[2,33],139:[2,33],140:[2,33],141:[2,33],142:[2,33],143:[2,33],144:[2,33],145:[2,33]},{1:[2,34],6:[2,34],28:[2,34],29:[2,34],52:[2,34],57:[2,34],60:[2,34],69:[2,34],70:[2,34],71:[2,34],72:[2,34],74:[2,34],76:[2,34],77:[2,34],81:[2,34],88:[2,34],89:[2,34],90:[2,34],95:[2,34],97:[2,34],106:[2,34],108:[2,34],109:[2,34],110:[2,34],114:[2,34],122:[2,34],130:[2,34],133:[2,34],134:[2,34],139:[2,34],140:[2,34],141:[2,34],142:[2,34],143:[2,34],144:[2,34],145:[2,34]},{1:[2,35],6:[2,35],28:[2,35],29:[2,35],52:[2,35],57:[2,35],60:[2,35],69:[2,35],70:[2,35],71:[2,35],72:[2,35],74:[2,35],76:[2,35],77:[2,35],81:[2,35],88:[2,35],89:[2,35],90:[2,35],95:[2,35],97:[2,35],106:[2,35],108:[2,35],109:[2,35],110:[2,35],114:[2,35],122:[2,35],130:[2,35],133:[2,35],134:[2,35],139:[2,35],140:[2,35],141:[2,35],142:[2,35],143:[2,35],144:[2,35],145:[2,35]},{1:[2,36],6:[2,36],28:[2,36],29:[2,36],52:[2,36],57:[2,36],60:[2,36],69:[2,36],70:[2,36],71:[2,36],72:[2,36],74:[2,36],76:[2,36],77:[2,36],81:[2,36],88:[2,36],89:[2,36],90:[2,36],95:[2,36],97:[2,36],106:[2,36],108:[2,36],109:[2,36],110:[2,36],114:[2,36],122:[2,36],130:[2,36],133:[2,36],134:[2,36],139:[2,36],140:[2,36],141:[2,36],142:[2,36],143:[2,36],144:[2,36],145:[2,36]},{1:[2,37],6:[2,37],28:[2,37],29:[2,37],52:[2,37],57:[2,37],60:[2,37],69:[2,37],70:[2,37],71:[2,37],72:[2,37],74:[2,37],76:[2,37],77:[2,37],81:[2,37],88:[2,37],89:[2,37],90:[2,37],95:[2,37],97:[2,37],106:[2,37],108:[2,37],109:[2,37],110:[2,37],114:[2,37],122:[2,37],130:[2,37],133:[2,37],134:[2,37],139:[2,37],140:[2,37],141:[2,37],142:[2,37],143:[2,37],144:[2,37],145:[2,37]},{1:[2,38],6:[2,38],28:[2,38],29:[2,38],52:[2,38],57:[2,38],60:[2,38],69:[2,38],70:[2,38],71:[2,38],72:[2,38],74:[2,38],76:[2,38],77:[2,38],81:[2,38],88:[2,38],89:[2,38],90:[2,38],95:[2,38],97:[2,38],106:[2,38],108:[2,38],109:[2,38],110:[2,38],114:[2,38],122:[2,38],130:[2,38],133:[2,38],134:[2,38],139:[2,38],140:[2,38],141:[2,38],142:[2,38],143:[2,38],144:[2,38],145:[2,38]},{4:152,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,153],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:154,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,118],6:[2,118],28:[2,118],29:[2,118],52:[2,118],57:[2,118],60:[2,118],69:[2,118],70:[2,118],71:[2,118],72:[2,118],74:[2,118],76:[2,118],77:[2,118],81:[2,118],88:[2,118],89:[2,118],90:[2,118],95:[2,118],97:[2,118],106:[2,118],108:[2,118],109:[2,118],110:[2,118],114:[2,118],122:[2,118],130:[2,118],133:[2,118],134:[2,118],139:[2,118],140:[2,118],141:[2,118],142:[2,118],143:[2,118],144:[2,118],145:[2,118]},{1:[2,119],6:[2,119],28:[2,119],29:[2,119],30:161,31:[1,77],52:[2,119],57:[2,119],60:[2,119],69:[2,119],70:[2,119],71:[2,119],72:[2,119],74:[2,119],76:[2,119],77:[2,119],81:[2,119],88:[2,119],89:[2,119],90:[2,119],95:[2,119],97:[2,119],106:[2,119],108:[2,119],109:[2,119],110:[2,119],114:[2,119],122:[2,119],130:[2,119],133:[2,119],134:[2,119],139:[2,119],140:[2,119],141:[2,119],142:[2,119],143:[2,119],144:[2,119],145:[2,119]},{28:[2,54]},{28:[2,55]},{1:[2,72],6:[2,72],28:[2,72],29:[2,72],43:[2,72],52:[2,72],57:[2,72],60:[2,72],69:[2,72],70:[2,72],71:[2,72],72:[2,72],74:[2,72],76:[2,72],77:[2,72],81:[2,72],83:[2,72],88:[2,72],89:[2,72],90:[2,72],95:[2,72],97:[2,72],106:[2,72],108:[2,72],109:[2,72],110:[2,72],114:[2,72],122:[2,72],130:[2,72],133:[2,72],134:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[2,72],143:[2,72],144:[2,72],145:[2,72],146:[2,72]},{1:[2,75],6:[2,75],28:[2,75],29:[2,75],43:[2,75],52:[2,75],57:[2,75],60:[2,75],69:[2,75],70:[2,75],71:[2,75],72:[2,75],74:[2,75],76:[2,75],77:[2,75],81:[2,75],83:[2,75],88:[2,75],89:[2,75],90:[2,75],95:[2,75],97:[2,75],106:[2,75],108:[2,75],109:[2,75],110:[2,75],114:[2,75],122:[2,75],130:[2,75],133:[2,75],134:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75],142:[2,75],143:[2,75],144:[2,75],145:[2,75],146:[2,75]},{7:162,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:163,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:164,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:166,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],14:165,15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,120],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{30:171,31:[1,77],47:172,61:173,62:174,67:167,79:[1,74],93:[1,117],94:[1,61],117:168,118:[1,169],119:170},{116:175,120:[1,176],121:[1,177]},{6:[2,96],10:181,28:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:178,81:[2,96],93:[1,117]},{1:[2,30],6:[2,30],28:[2,30],29:[2,30],46:[2,30],52:[2,30],57:[2,30],60:[2,30],69:[2,30],70:[2,30],71:[2,30],72:[2,30],74:[2,30],76:[2,30],77:[2,30],81:[2,30],88:[2,30],89:[2,30],90:[2,30],95:[2,30],97:[2,30],106:[2,30],108:[2,30],109:[2,30],110:[2,30],114:[2,30],122:[2,30],130:[2,30],133:[2,30],134:[2,30],139:[2,30],140:[2,30],141:[2,30],142:[2,30],143:[2,30],144:[2,30],145:[2,30]},{1:[2,31],6:[2,31],28:[2,31],29:[2,31],46:[2,31],52:[2,31],57:[2,31],60:[2,31],69:[2,31],70:[2,31],71:[2,31],72:[2,31],74:[2,31],76:[2,31],77:[2,31],81:[2,31],88:[2,31],89:[2,31],90:[2,31],95:[2,31],97:[2,31],106:[2,31],108:[2,31],109:[2,31],110:[2,31],114:[2,31],122:[2,31],130:[2,31],133:[2,31],134:[2,31],139:[2,31],140:[2,31],141:[2,31],142:[2,31],143:[2,31],144:[2,31],145:[2,31]},{1:[2,29],6:[2,29],28:[2,29],29:[2,29],43:[2,29],46:[2,29],52:[2,29],57:[2,29],60:[2,29],69:[2,29],70:[2,29],71:[2,29],72:[2,29],74:[2,29],76:[2,29],77:[2,29],81:[2,29],83:[2,29],88:[2,29],89:[2,29],90:[2,29],95:[2,29],97:[2,29],106:[2,29],108:[2,29],109:[2,29],110:[2,29],114:[2,29],120:[2,29],121:[2,29],122:[2,29],130:[2,29],133:[2,29],134:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29],142:[2,29],143:[2,29],144:[2,29],145:[2,29],146:[2,29]},{1:[2,5],5:185,6:[2,5],7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[2,5],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],106:[2,5],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,205],6:[2,205],28:[2,205],29:[2,205],52:[2,205],57:[2,205],60:[2,205],76:[2,205],81:[2,205],90:[2,205],95:[2,205],97:[2,205],106:[2,205],108:[2,205],109:[2,205],110:[2,205],114:[2,205],122:[2,205],130:[2,205],133:[2,205],134:[2,205],139:[2,205],140:[2,205],141:[2,205],142:[2,205],143:[2,205],144:[2,205],145:[2,205]},{7:186,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:187,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:188,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:189,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:190,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:191,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:192,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:193,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:194,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,156],6:[2,156],28:[2,156],29:[2,156],52:[2,156],57:[2,156],60:[2,156],76:[2,156],81:[2,156],90:[2,156],95:[2,156],97:[2,156],106:[2,156],108:[2,156],109:[2,156],110:[2,156],114:[2,156],122:[2,156],130:[2,156],133:[2,156],134:[2,156],139:[2,156],140:[2,156],141:[2,156],142:[2,156],143:[2,156],144:[2,156],145:[2,156]},{1:[2,161],6:[2,161],28:[2,161],29:[2,161],52:[2,161],57:[2,161],60:[2,161],76:[2,161],81:[2,161],90:[2,161],95:[2,161],97:[2,161],106:[2,161],108:[2,161],109:[2,161],110:[2,161],114:[2,161],122:[2,161],130:[2,161],133:[2,161],134:[2,161],139:[2,161],140:[2,161],141:[2,161],142:[2,161],143:[2,161],144:[2,161],145:[2,161]},{7:195,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,155],6:[2,155],28:[2,155],29:[2,155],52:[2,155],57:[2,155],60:[2,155],76:[2,155],81:[2,155],90:[2,155],95:[2,155],97:[2,155],106:[2,155],108:[2,155],109:[2,155],110:[2,155],114:[2,155],122:[2,155],130:[2,155],133:[2,155],134:[2,155],139:[2,155],140:[2,155],141:[2,155],142:[2,155],143:[2,155],144:[2,155],145:[2,155]},{1:[2,160],6:[2,160],28:[2,160],29:[2,160],52:[2,160],57:[2,160],60:[2,160],76:[2,160],81:[2,160],90:[2,160],95:[2,160],97:[2,160],106:[2,160],108:[2,160],109:[2,160],110:[2,160],114:[2,160],122:[2,160],130:[2,160],133:[2,160],134:[2,160],139:[2,160],140:[2,160],141:[2,160],142:[2,160],143:[2,160],144:[2,160],145:[2,160]},{85:196,89:[1,108]},{1:[2,73],6:[2,73],28:[2,73],29:[2,73],43:[2,73],52:[2,73],57:[2,73],60:[2,73],69:[2,73],70:[2,73],71:[2,73],72:[2,73],74:[2,73],76:[2,73],77:[2,73],81:[2,73],83:[2,73],88:[2,73],89:[2,73],90:[2,73],95:[2,73],97:[2,73],106:[2,73],108:[2,73],109:[2,73],110:[2,73],114:[2,73],122:[2,73],130:[2,73],133:[2,73],134:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73],142:[2,73],143:[2,73],144:[2,73],145:[2,73],146:[2,73]},{89:[2,115]},{27:198,30:197,31:[1,77],87:[1,47]},{30:199,31:[1,77]},{1:[2,89],6:[2,89],28:[2,89],29:[2,89],30:200,31:[1,77],43:[2,89],52:[2,89],57:[2,89],60:[2,89],69:[2,89],70:[2,89],71:[2,89],72:[2,89],74:[2,89],76:[2,89],77:[2,89],81:[2,89],83:[2,89],88:[2,89],89:[2,89],90:[2,89],95:[2,89],97:[2,89],106:[2,89],108:[2,89],109:[2,89],110:[2,89],114:[2,89],122:[2,89],130:[2,89],133:[2,89],134:[2,89],137:[2,89],138:[2,89],139:[2,89],140:[2,89],141:[2,89],142:[2,89],143:[2,89],144:[2,89],145:[2,89],146:[2,89]},{30:201,31:[1,77]},{1:[2,90],6:[2,90],28:[2,90],29:[2,90],43:[2,90],52:[2,90],57:[2,90],60:[2,90],69:[2,90],70:[2,90],71:[2,90],72:[2,90],74:[2,90],76:[2,90],77:[2,90],81:[2,90],83:[2,90],88:[2,90],89:[2,90],90:[2,90],95:[2,90],97:[2,90],106:[2,90],108:[2,90],109:[2,90],110:[2,90],114:[2,90],122:[2,90],130:[2,90],133:[2,90],134:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90],142:[2,90],143:[2,90],144:[2,90],145:[2,90],146:[2,90]},{7:203,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,207],61:51,62:52,64:38,66:25,67:26,68:27,75:202,78:204,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],96:205,97:[1,206],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{73:208,74:[1,102],77:[1,103]},{85:209,89:[1,108]},{1:[2,74],6:[2,74],28:[2,74],29:[2,74],43:[2,74],52:[2,74],57:[2,74],60:[2,74],69:[2,74],70:[2,74],71:[2,74],72:[2,74],74:[2,74],76:[2,74],77:[2,74],81:[2,74],83:[2,74],88:[2,74],89:[2,74],90:[2,74],95:[2,74],97:[2,74],106:[2,74],108:[2,74],109:[2,74],110:[2,74],114:[2,74],122:[2,74],130:[2,74],133:[2,74],134:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74],142:[2,74],143:[2,74],144:[2,74],145:[2,74],146:[2,74]},{6:[1,211],7:210,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,212],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,112],6:[2,112],28:[2,112],29:[2,112],52:[2,112],57:[2,112],60:[2,112],69:[2,112],70:[2,112],71:[2,112],72:[2,112],74:[2,112],76:[2,112],77:[2,112],81:[2,112],88:[2,112],89:[2,112],90:[2,112],95:[2,112],97:[2,112],106:[2,112],108:[2,112],109:[2,112],110:[2,112],114:[2,112],122:[2,112],130:[2,112],133:[2,112],134:[2,112],139:[2,112],140:[2,112],141:[2,112],142:[2,112],143:[2,112],144:[2,112],145:[2,112]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[1,213],91:214,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],52:[1,216],56:218,57:[1,217]},{6:[2,59],28:[2,59],29:[2,59],52:[2,59],57:[2,59]},{6:[2,63],28:[2,63],29:[2,63],43:[1,220],52:[2,63],57:[2,63],60:[1,219]},{6:[2,66],28:[2,66],29:[2,66],52:[2,66],57:[2,66]},{6:[2,67],28:[2,67],29:[2,67],43:[2,67],52:[2,67],57:[2,67],60:[2,67]},{6:[2,68],28:[2,68],29:[2,68],43:[2,68],52:[2,68],57:[2,68],60:[2,68]},{6:[2,69],28:[2,69],29:[2,69],43:[2,69],52:[2,69],57:[2,69],60:[2,69]},{6:[2,70],28:[2,70],29:[2,70],43:[2,70],52:[2,70],57:[2,70],60:[2,70]},{30:161,31:[1,77]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:156,92:[1,62],93:[1,63],94:[1,61],95:[1,155],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,53],6:[2,53],28:[2,53],29:[2,53],52:[2,53],57:[2,53],60:[2,53],76:[2,53],81:[2,53],90:[2,53],95:[2,53],97:[2,53],106:[2,53],108:[2,53],109:[2,53],110:[2,53],114:[2,53],122:[2,53],130:[2,53],133:[2,53],134:[2,53],139:[2,53],140:[2,53],141:[2,53],142:[2,53],143:[2,53],144:[2,53],145:[2,53]},{4:222,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,29:[1,221],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,194],6:[2,194],28:[2,194],29:[2,194],52:[2,194],57:[2,194],60:[2,194],76:[2,194],81:[2,194],90:[2,194],95:[2,194],97:[2,194],106:[2,194],107:89,108:[2,194],109:[2,194],110:[2,194],113:90,114:[2,194],115:73,122:[2,194],130:[2,194],133:[2,194],134:[2,194],139:[1,79],140:[2,194],141:[2,194],142:[2,194],143:[2,194],144:[2,194],145:[2,194]},{107:92,108:[1,69],110:[1,70],113:93,114:[1,72],115:73,130:[1,91]},{1:[2,195],6:[2,195],28:[2,195],29:[2,195],52:[2,195],57:[2,195],60:[2,195],76:[2,195],81:[2,195],90:[2,195],95:[2,195],97:[2,195],106:[2,195],107:89,108:[2,195],109:[2,195],110:[2,195],113:90,114:[2,195],115:73,122:[2,195],130:[2,195],133:[2,195],134:[2,195],139:[1,79],140:[2,195],141:[1,83],142:[2,195],143:[2,195],144:[2,195],145:[2,195]},{1:[2,196],6:[2,196],28:[2,196],29:[2,196],52:[2,196],57:[2,196],60:[2,196],76:[2,196],81:[2,196],90:[2,196],95:[2,196],97:[2,196],106:[2,196],107:89,108:[2,196],109:[2,196],110:[2,196],113:90,114:[2,196],115:73,122:[2,196],130:[2,196],133:[2,196],134:[2,196],139:[1,79],140:[2,196],141:[1,83],142:[2,196],143:[2,196],144:[2,196],145:[2,196]},{1:[2,197],6:[2,197],28:[2,197],29:[2,197],52:[2,197],57:[2,197],60:[2,197],76:[2,197],81:[2,197],90:[2,197],95:[2,197],97:[2,197],106:[2,197],107:89,108:[2,197],109:[2,197],110:[2,197],113:90,114:[2,197],115:73,122:[2,197],130:[2,197],133:[2,197],134:[2,197],139:[1,79],140:[2,197],141:[1,83],142:[2,197],143:[2,197],144:[2,197],145:[2,197]},{1:[2,198],6:[2,198],28:[2,198],29:[2,198],52:[2,198],57:[2,198],60:[2,198],76:[2,198],81:[2,198],90:[2,198],95:[2,198],97:[2,198],106:[2,198],107:92,108:[2,198],109:[2,198],110:[2,198],113:93,114:[2,198],115:73,122:[2,198],130:[2,198],133:[2,198],134:[2,198],139:[2,198],140:[2,198],141:[2,198],142:[2,198],143:[2,198],144:[2,198],145:[2,198]},{1:[2,199],6:[2,199],28:[2,199],29:[2,199],52:[2,199],57:[2,199],60:[2,199],76:[2,199],81:[2,199],90:[2,199],95:[2,199],97:[2,199],106:[2,199],107:89,108:[2,199],109:[2,199],110:[2,199],113:90,114:[2,199],115:73,122:[2,199],130:[2,199],133:[2,199],134:[2,199],139:[1,79],140:[2,199],141:[2,199],142:[2,199],143:[2,199],144:[2,199],145:[2,199]},{7:223,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,201],6:[2,201],28:[2,201],29:[2,201],52:[2,201],57:[2,201],60:[2,201],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,201],77:[2,76],81:[2,201],88:[2,76],89:[2,76],90:[2,201],95:[2,201],97:[2,201],106:[2,201],108:[2,201],109:[2,201],110:[2,201],114:[2,201],122:[2,201],130:[2,201],133:[2,201],134:[2,201],139:[2,201],140:[2,201],141:[2,201],142:[2,201],143:[2,201],144:[2,201],145:[2,201]},{65:95,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:94,88:[1,96],89:[2,114]},{65:105,69:[1,97],70:[1,98],71:[1,99],72:[1,100],73:101,74:[1,102],77:[1,103],84:104,88:[1,96],89:[2,114]},{69:[2,79],70:[2,79],71:[2,79],72:[2,79],74:[2,79],77:[2,79],88:[2,79],89:[2,79]},{1:[2,202],6:[2,202],28:[2,202],29:[2,202],52:[2,202],57:[2,202],60:[2,202],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,202],77:[2,76],81:[2,202],88:[2,76],89:[2,76],90:[2,202],95:[2,202],97:[2,202],106:[2,202],108:[2,202],109:[2,202],110:[2,202],114:[2,202],122:[2,202],130:[2,202],133:[2,202],134:[2,202],139:[2,202],140:[2,202],141:[2,202],142:[2,202],143:[2,202],144:[2,202],145:[2,202]},{1:[2,203],6:[2,203],28:[2,203],29:[2,203],52:[2,203],57:[2,203],60:[2,203],76:[2,203],81:[2,203],90:[2,203],95:[2,203],97:[2,203],106:[2,203],108:[2,203],109:[2,203],110:[2,203],114:[2,203],122:[2,203],130:[2,203],133:[2,203],134:[2,203],139:[2,203],140:[2,203],141:[2,203],142:[2,203],143:[2,203],144:[2,203],145:[2,203]},{1:[2,204],6:[2,204],28:[2,204],29:[2,204],52:[2,204],57:[2,204],60:[2,204],76:[2,204],81:[2,204],90:[2,204],95:[2,204],97:[2,204],106:[2,204],108:[2,204],109:[2,204],110:[2,204],114:[2,204],122:[2,204],130:[2,204],133:[2,204],134:[2,204],139:[2,204],140:[2,204],141:[2,204],142:[2,204],143:[2,204],144:[2,204],145:[2,204]},{6:[1,226],7:224,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,225],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:227,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{14:228,28:[1,120],129:[1,229]},{1:[2,140],6:[2,140],28:[2,140],29:[2,140],52:[2,140],57:[2,140],60:[2,140],76:[2,140],81:[2,140],90:[2,140],95:[2,140],97:[2,140],101:230,102:[1,231],103:[1,232],106:[2,140],108:[2,140],109:[2,140],110:[2,140],114:[2,140],122:[2,140],130:[2,140],133:[2,140],134:[2,140],139:[2,140],140:[2,140],141:[2,140],142:[2,140],143:[2,140],144:[2,140],145:[2,140]},{1:[2,154],6:[2,154],28:[2,154],29:[2,154],52:[2,154],57:[2,154],60:[2,154],76:[2,154],81:[2,154],90:[2,154],95:[2,154],97:[2,154],106:[2,154],108:[2,154],109:[2,154],110:[2,154],114:[2,154],122:[2,154],130:[2,154],133:[2,154],134:[2,154],139:[2,154],140:[2,154],141:[2,154],142:[2,154],143:[2,154],144:[2,154],145:[2,154]},{1:[2,162],6:[2,162],28:[2,162],29:[2,162],52:[2,162],57:[2,162],60:[2,162],76:[2,162],81:[2,162],90:[2,162],95:[2,162],97:[2,162],106:[2,162],108:[2,162],109:[2,162],110:[2,162],114:[2,162],122:[2,162],130:[2,162],133:[2,162],134:[2,162],139:[2,162],140:[2,162],141:[2,162],142:[2,162],143:[2,162],144:[2,162],145:[2,162]},{28:[1,233],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{124:234,126:235,127:[1,236]},{1:[2,102],6:[2,102],28:[2,102],29:[2,102],52:[2,102],57:[2,102],60:[2,102],76:[2,102],81:[2,102],90:[2,102],95:[2,102],97:[2,102],106:[2,102],108:[2,102],109:[2,102],110:[2,102],114:[2,102],122:[2,102],130:[2,102],133:[2,102],134:[2,102],139:[2,102],140:[2,102],141:[2,102],142:[2,102],143:[2,102],144:[2,102],145:[2,102]},{7:237,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,105],6:[2,105],14:238,28:[1,120],29:[2,105],52:[2,105],57:[2,105],60:[2,105],69:[2,76],70:[2,76],71:[2,76],72:[2,76],74:[2,76],76:[2,105],77:[2,76],81:[2,105],83:[1,239],88:[2,76],89:[2,76],90:[2,105],95:[2,105],97:[2,105],106:[2,105],108:[2,105],109:[2,105],110:[2,105],114:[2,105],122:[2,105],130:[2,105],133:[2,105],134:[2,105],139:[2,105],140:[2,105],141:[2,105],142:[2,105],143:[2,105],144:[2,105],145:[2,105]},{1:[2,147],6:[2,147],28:[2,147],29:[2,147],52:[2,147],57:[2,147],60:[2,147],76:[2,147],81:[2,147],90:[2,147],95:[2,147],97:[2,147],106:[2,147],107:89,108:[2,147],109:[2,147],110:[2,147],113:90,114:[2,147],115:73,122:[2,147],130:[2,147],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,113],6:[2,113],28:[2,113],29:[2,113],43:[2,113],52:[2,113],57:[2,113],60:[2,113],69:[2,113],70:[2,113],71:[2,113],72:[2,113],74:[2,113],76:[2,113],77:[2,113],81:[2,113],83:[2,113],88:[2,113],89:[2,113],90:[2,113],95:[2,113],97:[2,113],106:[2,113],108:[2,113],109:[2,113],110:[2,113],114:[2,113],122:[2,113],130:[2,113],133:[2,113],134:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113],142:[2,113],143:[2,113],144:[2,113],145:[2,113],146:[2,113]},{1:[2,49],6:[2,49],28:[2,49],29:[2,49],52:[2,49],57:[2,49],60:[2,49],76:[2,49],81:[2,49],90:[2,49],95:[2,49],97:[2,49],106:[2,49],107:89,108:[2,49],109:[2,49],110:[2,49],113:90,114:[2,49],115:73,122:[2,49],130:[2,49],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,12],6:[2,12],28:[2,12],29:[2,12],52:[2,12],57:[2,12],60:[2,12],76:[2,12],81:[2,12],90:[2,12],95:[2,12],97:[2,12],106:[2,12],108:[2,12],109:[2,12],110:[2,12],114:[2,12],122:[2,12],130:[2,12],133:[2,12],134:[2,12],139:[2,12],140:[2,12],141:[2,12],142:[2,12],143:[2,12],144:[2,12],145:[2,12]},{1:[2,13],6:[2,13],28:[2,13],29:[2,13],52:[2,13],57:[2,13],60:[2,13],76:[2,13],81:[2,13],90:[2,13],95:[2,13],97:[2,13],106:[2,13],107:89,108:[1,69],109:[2,13],110:[1,70],113:90,114:[1,72],115:73,122:[2,13],130:[2,13],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,78],106:[1,240]},{4:241,5:3,7:4,8:5,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,135],28:[2,135],57:[2,135],60:[1,243],95:[2,135],96:242,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,121],6:[2,121],28:[2,121],29:[2,121],43:[2,121],52:[2,121],57:[2,121],60:[2,121],69:[2,121],70:[2,121],71:[2,121],72:[2,121],74:[2,121],76:[2,121],77:[2,121],81:[2,121],88:[2,121],89:[2,121],90:[2,121],95:[2,121],97:[2,121],106:[2,121],108:[2,121],109:[2,121],110:[2,121],114:[2,121],120:[2,121],121:[2,121],122:[2,121],130:[2,121],133:[2,121],134:[2,121],139:[2,121],140:[2,121],141:[2,121],142:[2,121],143:[2,121],144:[2,121],145:[2,121]},{6:[2,56],28:[2,56],56:244,57:[1,245],95:[2,56]},{6:[2,130],28:[2,130],29:[2,130],57:[2,130],90:[2,130],95:[2,130]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:246,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,136],28:[2,136],29:[2,136],57:[2,136],90:[2,136],95:[2,136]},{6:[2,137],28:[2,137],29:[2,137],57:[2,137],90:[2,137],95:[2,137]},{1:[2,120],6:[2,120],28:[2,120],29:[2,120],43:[2,120],46:[2,120],52:[2,120],57:[2,120],60:[2,120],69:[2,120],70:[2,120],71:[2,120],72:[2,120],74:[2,120],76:[2,120],77:[2,120],81:[2,120],83:[2,120],88:[2,120],89:[2,120],90:[2,120],95:[2,120],97:[2,120],106:[2,120],108:[2,120],109:[2,120],110:[2,120],114:[2,120],120:[2,120],121:[2,120],122:[2,120],130:[2,120],133:[2,120],134:[2,120],137:[2,120],138:[2,120],139:[2,120],140:[2,120],141:[2,120],142:[2,120],143:[2,120],144:[2,120],145:[2,120],146:[2,120]},{14:247,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,150],6:[2,150],28:[2,150],29:[2,150],52:[2,150],57:[2,150],60:[2,150],76:[2,150],81:[2,150],90:[2,150],95:[2,150],97:[2,150],106:[2,150],107:89,108:[1,69],109:[1,248],110:[1,70],113:90,114:[1,72],115:73,122:[2,150],130:[2,150],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,152],6:[2,152],28:[2,152],29:[2,152],52:[2,152],57:[2,152],60:[2,152],76:[2,152],81:[2,152],90:[2,152],95:[2,152],97:[2,152],106:[2,152],107:89,108:[1,69],109:[1,249],110:[1,70],113:90,114:[1,72],115:73,122:[2,152],130:[2,152],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,158],6:[2,158],28:[2,158],29:[2,158],52:[2,158],57:[2,158],60:[2,158],76:[2,158],81:[2,158],90:[2,158],95:[2,158],97:[2,158],106:[2,158],108:[2,158],109:[2,158],110:[2,158],114:[2,158],122:[2,158],130:[2,158],133:[2,158],134:[2,158],139:[2,158],140:[2,158],141:[2,158],142:[2,158],143:[2,158],144:[2,158],145:[2,158]},{1:[2,159],6:[2,159],28:[2,159],29:[2,159],52:[2,159],57:[2,159],60:[2,159],76:[2,159],81:[2,159],90:[2,159],95:[2,159],97:[2,159],106:[2,159],107:89,108:[1,69],109:[2,159],110:[1,70],113:90,114:[1,72],115:73,122:[2,159],130:[2,159],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,163],6:[2,163],28:[2,163],29:[2,163],52:[2,163],57:[2,163],60:[2,163],76:[2,163],81:[2,163],90:[2,163],95:[2,163],97:[2,163],106:[2,163],108:[2,163],109:[2,163],110:[2,163],114:[2,163],122:[2,163],130:[2,163],133:[2,163],134:[2,163],139:[2,163],140:[2,163],141:[2,163],142:[2,163],143:[2,163],144:[2,163],145:[2,163]},{120:[2,165],121:[2,165]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],117:250,119:170},{57:[1,251],120:[2,171],121:[2,171]},{57:[2,167],120:[2,167],121:[2,167]},{57:[2,168],120:[2,168],121:[2,168]},{57:[2,169],120:[2,169],121:[2,169]},{57:[2,170],120:[2,170],121:[2,170]},{1:[2,164],6:[2,164],28:[2,164],29:[2,164],52:[2,164],57:[2,164],60:[2,164],76:[2,164],81:[2,164],90:[2,164],95:[2,164],97:[2,164],106:[2,164],108:[2,164],109:[2,164],110:[2,164],114:[2,164],122:[2,164],130:[2,164],133:[2,164],134:[2,164],139:[2,164],140:[2,164],141:[2,164],142:[2,164],143:[2,164],144:[2,164],145:[2,164]},{7:252,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:253,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],56:254,57:[1,255],81:[2,56]},{6:[2,97],28:[2,97],29:[2,97],57:[2,97],81:[2,97]},{6:[2,42],28:[2,42],29:[2,42],46:[1,256],57:[2,42],81:[2,42]},{6:[2,45],28:[2,45],29:[2,45],57:[2,45],81:[2,45]},{6:[2,46],28:[2,46],29:[2,46],46:[2,46],57:[2,46],81:[2,46]},{6:[2,47],28:[2,47],29:[2,47],46:[2,47],57:[2,47],81:[2,47]},{6:[2,48],28:[2,48],29:[2,48],46:[2,48],57:[2,48],81:[2,48]},{1:[2,4],6:[2,4],29:[2,4],106:[2,4]},{1:[2,206],6:[2,206],28:[2,206],29:[2,206],52:[2,206],57:[2,206],60:[2,206],76:[2,206],81:[2,206],90:[2,206],95:[2,206],97:[2,206],106:[2,206],107:89,108:[2,206],109:[2,206],110:[2,206],113:90,114:[2,206],115:73,122:[2,206],130:[2,206],133:[2,206],134:[2,206],139:[1,79],140:[1,82],141:[1,83],142:[2,206],143:[2,206],144:[2,206],145:[2,206]},{1:[2,207],6:[2,207],28:[2,207],29:[2,207],52:[2,207],57:[2,207],60:[2,207],76:[2,207],81:[2,207],90:[2,207],95:[2,207],97:[2,207],106:[2,207],107:89,108:[2,207],109:[2,207],110:[2,207],113:90,114:[2,207],115:73,122:[2,207],130:[2,207],133:[2,207],134:[2,207],139:[1,79],140:[1,82],141:[1,83],142:[2,207],143:[2,207],144:[2,207],145:[2,207]},{1:[2,208],6:[2,208],28:[2,208],29:[2,208],52:[2,208],57:[2,208],60:[2,208],76:[2,208],81:[2,208],90:[2,208],95:[2,208],97:[2,208],106:[2,208],107:89,108:[2,208],109:[2,208],110:[2,208],113:90,114:[2,208],115:73,122:[2,208],130:[2,208],133:[2,208],134:[2,208],139:[1,79],140:[2,208],141:[1,83],142:[2,208],143:[2,208],144:[2,208],145:[2,208]},{1:[2,209],6:[2,209],28:[2,209],29:[2,209],52:[2,209],57:[2,209],60:[2,209],76:[2,209],81:[2,209],90:[2,209],95:[2,209],97:[2,209],106:[2,209],107:89,108:[2,209],109:[2,209],110:[2,209],113:90,114:[2,209],115:73,122:[2,209],130:[2,209],133:[2,209],134:[2,209],139:[1,79],140:[2,209],141:[1,83],142:[2,209],143:[2,209],144:[2,209],145:[2,209]},{1:[2,210],6:[2,210],28:[2,210],29:[2,210],52:[2,210],57:[2,210],60:[2,210],76:[2,210],81:[2,210],90:[2,210],95:[2,210],97:[2,210],106:[2,210],107:89,108:[2,210],109:[2,210],110:[2,210],113:90,114:[2,210],115:73,122:[2,210],130:[2,210],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[2,210],143:[2,210],144:[2,210],145:[2,210]},{1:[2,211],6:[2,211],28:[2,211],29:[2,211],52:[2,211],57:[2,211],60:[2,211],76:[2,211],81:[2,211],90:[2,211],95:[2,211],97:[2,211],106:[2,211],107:89,108:[2,211],109:[2,211],110:[2,211],113:90,114:[2,211],115:73,122:[2,211],130:[2,211],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,211],144:[2,211],145:[1,87]},{1:[2,212],6:[2,212],28:[2,212],29:[2,212],52:[2,212],57:[2,212],60:[2,212],76:[2,212],81:[2,212],90:[2,212],95:[2,212],97:[2,212],106:[2,212],107:89,108:[2,212],109:[2,212],110:[2,212],113:90,114:[2,212],115:73,122:[2,212],130:[2,212],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[2,212],145:[1,87]},{1:[2,213],6:[2,213],28:[2,213],29:[2,213],52:[2,213],57:[2,213],60:[2,213],76:[2,213],81:[2,213],90:[2,213],95:[2,213],97:[2,213],106:[2,213],107:89,108:[2,213],109:[2,213],110:[2,213],113:90,114:[2,213],115:73,122:[2,213],130:[2,213],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[2,213],144:[2,213],145:[2,213]},{1:[2,193],6:[2,193],28:[2,193],29:[2,193],52:[2,193],57:[2,193],60:[2,193],76:[2,193],81:[2,193],90:[2,193],95:[2,193],97:[2,193],106:[2,193],107:89,108:[1,69],109:[2,193],110:[1,70],113:90,114:[1,72],115:73,122:[2,193],130:[2,193],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,192],6:[2,192],28:[2,192],29:[2,192],52:[2,192],57:[2,192],60:[2,192],76:[2,192],81:[2,192],90:[2,192],95:[2,192],97:[2,192],106:[2,192],107:89,108:[1,69],109:[2,192],110:[1,70],113:90,114:[1,72],115:73,122:[2,192],130:[2,192],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,109],6:[2,109],28:[2,109],29:[2,109],52:[2,109],57:[2,109],60:[2,109],69:[2,109],70:[2,109],71:[2,109],72:[2,109],74:[2,109],76:[2,109],77:[2,109],81:[2,109],88:[2,109],89:[2,109],90:[2,109],95:[2,109],97:[2,109],106:[2,109],108:[2,109],109:[2,109],110:[2,109],114:[2,109],122:[2,109],130:[2,109],133:[2,109],134:[2,109],139:[2,109],140:[2,109],141:[2,109],142:[2,109],143:[2,109],144:[2,109],145:[2,109]},{1:[2,84],6:[2,84],28:[2,84],29:[2,84],43:[2,84],52:[2,84],57:[2,84],60:[2,84],69:[2,84],70:[2,84],71:[2,84],72:[2,84],74:[2,84],76:[2,84],77:[2,84],81:[2,84],83:[2,84],88:[2,84],89:[2,84],90:[2,84],95:[2,84],97:[2,84],106:[2,84],108:[2,84],109:[2,84],110:[2,84],114:[2,84],122:[2,84],130:[2,84],133:[2,84],134:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84],143:[2,84],144:[2,84],145:[2,84],146:[2,84]},{1:[2,85],6:[2,85],28:[2,85],29:[2,85],43:[2,85],52:[2,85],57:[2,85],60:[2,85],69:[2,85],70:[2,85],71:[2,85],72:[2,85],74:[2,85],76:[2,85],77:[2,85],81:[2,85],83:[2,85],88:[2,85],89:[2,85],90:[2,85],95:[2,85],97:[2,85],106:[2,85],108:[2,85],109:[2,85],110:[2,85],114:[2,85],122:[2,85],130:[2,85],133:[2,85],134:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85],143:[2,85],144:[2,85],145:[2,85],146:[2,85]},{1:[2,86],6:[2,86],28:[2,86],29:[2,86],43:[2,86],52:[2,86],57:[2,86],60:[2,86],69:[2,86],70:[2,86],71:[2,86],72:[2,86],74:[2,86],76:[2,86],77:[2,86],81:[2,86],83:[2,86],88:[2,86],89:[2,86],90:[2,86],95:[2,86],97:[2,86],106:[2,86],108:[2,86],109:[2,86],110:[2,86],114:[2,86],122:[2,86],130:[2,86],133:[2,86],134:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86],143:[2,86],144:[2,86],145:[2,86],146:[2,86]},{1:[2,87],6:[2,87],28:[2,87],29:[2,87],43:[2,87],52:[2,87],57:[2,87],60:[2,87],69:[2,87],70:[2,87],71:[2,87],72:[2,87],74:[2,87],76:[2,87],77:[2,87],81:[2,87],83:[2,87],88:[2,87],89:[2,87],90:[2,87],95:[2,87],97:[2,87],106:[2,87],108:[2,87],109:[2,87],110:[2,87],114:[2,87],122:[2,87],130:[2,87],133:[2,87],134:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87],143:[2,87],144:[2,87],145:[2,87],146:[2,87]},{1:[2,88],6:[2,88],28:[2,88],29:[2,88],43:[2,88],52:[2,88],57:[2,88],60:[2,88],69:[2,88],70:[2,88],71:[2,88],72:[2,88],74:[2,88],76:[2,88],77:[2,88],81:[2,88],83:[2,88],88:[2,88],89:[2,88],90:[2,88],95:[2,88],97:[2,88],106:[2,88],108:[2,88],109:[2,88],110:[2,88],114:[2,88],122:[2,88],130:[2,88],133:[2,88],134:[2,88],137:[2,88],138:[2,88],139:[2,88],140:[2,88],141:[2,88],142:[2,88],143:[2,88],144:[2,88],145:[2,88],146:[2,88]},{76:[1,257]},{60:[1,207],76:[2,93],96:258,97:[1,206],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{76:[2,94]},{7:259,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,129],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{11:[2,123],13:[2,123],31:[2,123],33:[2,123],34:[2,123],36:[2,123],37:[2,123],38:[2,123],39:[2,123],40:[2,123],41:[2,123],48:[2,123],49:[2,123],50:[2,123],54:[2,123],55:[2,123],76:[2,123],79:[2,123],82:[2,123],86:[2,123],87:[2,123],92:[2,123],93:[2,123],94:[2,123],100:[2,123],104:[2,123],105:[2,123],108:[2,123],110:[2,123],112:[2,123],114:[2,123],123:[2,123],129:[2,123],131:[2,123],132:[2,123],133:[2,123],134:[2,123],135:[2,123],137:[2,123],138:[2,123]},{11:[2,124],13:[2,124],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],76:[2,124],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{1:[2,92],6:[2,92],28:[2,92],29:[2,92],43:[2,92],52:[2,92],57:[2,92],60:[2,92],69:[2,92],70:[2,92],71:[2,92],72:[2,92],74:[2,92],76:[2,92],77:[2,92],81:[2,92],83:[2,92],88:[2,92],89:[2,92],90:[2,92],95:[2,92],97:[2,92],106:[2,92],108:[2,92],109:[2,92],110:[2,92],114:[2,92],122:[2,92],130:[2,92],133:[2,92],134:[2,92],137:[2,92],138:[2,92],139:[2,92],140:[2,92],141:[2,92],142:[2,92],143:[2,92],144:[2,92],145:[2,92],146:[2,92]},{1:[2,110],6:[2,110],28:[2,110],29:[2,110],52:[2,110],57:[2,110],60:[2,110],69:[2,110],70:[2,110],71:[2,110],72:[2,110],74:[2,110],76:[2,110],77:[2,110],81:[2,110],88:[2,110],89:[2,110],90:[2,110],95:[2,110],97:[2,110],106:[2,110],108:[2,110],109:[2,110],110:[2,110],114:[2,110],122:[2,110],130:[2,110],133:[2,110],134:[2,110],139:[2,110],140:[2,110],141:[2,110],142:[2,110],143:[2,110],144:[2,110],145:[2,110]},{1:[2,39],6:[2,39],28:[2,39],29:[2,39],52:[2,39],57:[2,39],60:[2,39],76:[2,39],81:[2,39],90:[2,39],95:[2,39],97:[2,39],106:[2,39],107:89,108:[2,39],109:[2,39],110:[2,39],113:90,114:[2,39],115:73,122:[2,39],130:[2,39],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:260,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:261,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,116],6:[2,116],28:[2,116],29:[2,116],43:[2,116],52:[2,116],57:[2,116],60:[2,116],69:[2,116],70:[2,116],71:[2,116],72:[2,116],74:[2,116],76:[2,116],77:[2,116],81:[2,116],83:[2,116],88:[2,116],89:[2,116],90:[2,116],95:[2,116],97:[2,116],106:[2,116],108:[2,116],109:[2,116],110:[2,116],114:[2,116],122:[2,116],130:[2,116],133:[2,116],134:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116],142:[2,116],143:[2,116],144:[2,116],145:[2,116],146:[2,116]},{6:[2,56],28:[2,56],56:262,57:[1,245],90:[2,56]},{6:[2,135],28:[2,135],29:[2,135],57:[2,135],60:[1,263],90:[2,135],95:[2,135],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{53:264,54:[1,64],55:[1,65]},{6:[2,57],28:[2,57],29:[2,57],30:113,31:[1,77],47:114,58:265,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[1,266],28:[1,267]},{6:[2,64],28:[2,64],29:[2,64],52:[2,64],57:[2,64]},{7:268,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,27],6:[2,27],28:[2,27],29:[2,27],52:[2,27],57:[2,27],60:[2,27],76:[2,27],81:[2,27],90:[2,27],95:[2,27],97:[2,27],102:[2,27],103:[2,27],106:[2,27],108:[2,27],109:[2,27],110:[2,27],114:[2,27],122:[2,27],125:[2,27],127:[2,27],130:[2,27],133:[2,27],134:[2,27],139:[2,27],140:[2,27],141:[2,27],142:[2,27],143:[2,27],144:[2,27],145:[2,27]},{6:[1,78],29:[1,269]},{1:[2,200],6:[2,200],28:[2,200],29:[2,200],52:[2,200],57:[2,200],60:[2,200],76:[2,200],81:[2,200],90:[2,200],95:[2,200],97:[2,200],106:[2,200],107:89,108:[2,200],109:[2,200],110:[2,200],113:90,114:[2,200],115:73,122:[2,200],130:[2,200],133:[2,200],134:[2,200],139:[1,79],140:[2,200],141:[2,200],142:[2,200],143:[2,200],144:[2,200],145:[2,200]},{1:[2,214],6:[2,214],28:[2,214],29:[2,214],52:[2,214],57:[2,214],60:[2,214],76:[2,214],81:[2,214],90:[2,214],95:[2,214],97:[2,214],106:[2,214],107:89,108:[2,214],109:[2,214],110:[2,214],113:90,114:[2,214],115:73,122:[2,214],130:[2,214],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:270,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:271,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,217],6:[2,217],28:[2,217],29:[2,217],52:[2,217],57:[2,217],60:[2,217],76:[2,217],81:[2,217],90:[2,217],95:[2,217],97:[2,217],106:[2,217],107:89,108:[2,217],109:[2,217],110:[2,217],113:90,114:[2,217],115:73,122:[2,217],130:[2,217],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,191],6:[2,191],28:[2,191],29:[2,191],52:[2,191],57:[2,191],60:[2,191],76:[2,191],81:[2,191],90:[2,191],95:[2,191],97:[2,191],106:[2,191],108:[2,191],109:[2,191],110:[2,191],114:[2,191],122:[2,191],130:[2,191],133:[2,191],134:[2,191],139:[2,191],140:[2,191],141:[2,191],142:[2,191],143:[2,191],144:[2,191],145:[2,191]},{7:272,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,141],6:[2,141],28:[2,141],29:[2,141],52:[2,141],57:[2,141],60:[2,141],76:[2,141],81:[2,141],90:[2,141],95:[2,141],97:[2,141],102:[1,273],106:[2,141],108:[2,141],109:[2,141],110:[2,141],114:[2,141],122:[2,141],130:[2,141],133:[2,141],134:[2,141],139:[2,141],140:[2,141],141:[2,141],142:[2,141],143:[2,141],144:[2,141],145:[2,141]},{14:274,28:[1,120]},{14:277,28:[1,120],30:275,31:[1,77],62:276,79:[1,74]},{124:278,126:235,127:[1,236]},{29:[1,279],125:[1,280],126:281,127:[1,236]},{29:[2,184],125:[2,184],127:[2,184]},{7:283,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],99:282,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,103],6:[2,103],14:284,28:[1,120],29:[2,103],52:[2,103],57:[2,103],60:[2,103],76:[2,103],81:[2,103],90:[2,103],95:[2,103],97:[2,103],106:[2,103],107:89,108:[1,69],109:[2,103],110:[1,70],113:90,114:[1,72],115:73,122:[2,103],130:[2,103],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,106],6:[2,106],28:[2,106],29:[2,106],52:[2,106],57:[2,106],60:[2,106],76:[2,106],81:[2,106],90:[2,106],95:[2,106],97:[2,106],106:[2,106],108:[2,106],109:[2,106],110:[2,106],114:[2,106],122:[2,106],130:[2,106],133:[2,106],134:[2,106],139:[2,106],140:[2,106],141:[2,106],142:[2,106],143:[2,106],144:[2,106],145:[2,106]},{7:285,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,148],6:[2,148],28:[2,148],29:[2,148],52:[2,148],57:[2,148],60:[2,148],69:[2,148],70:[2,148],71:[2,148],72:[2,148],74:[2,148],76:[2,148],77:[2,148],81:[2,148],88:[2,148],89:[2,148],90:[2,148],95:[2,148],97:[2,148],106:[2,148],108:[2,148],109:[2,148],110:[2,148],114:[2,148],122:[2,148],130:[2,148],133:[2,148],134:[2,148],139:[2,148],140:[2,148],141:[2,148],142:[2,148],143:[2,148],144:[2,148],145:[2,148]},{6:[1,78],29:[1,286]},{7:287,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,71],11:[2,124],13:[2,124],28:[2,71],31:[2,124],33:[2,124],34:[2,124],36:[2,124],37:[2,124],38:[2,124],39:[2,124],40:[2,124],41:[2,124],48:[2,124],49:[2,124],50:[2,124],54:[2,124],55:[2,124],57:[2,71],79:[2,124],82:[2,124],86:[2,124],87:[2,124],92:[2,124],93:[2,124],94:[2,124],95:[2,71],100:[2,124],104:[2,124],105:[2,124],108:[2,124],110:[2,124],112:[2,124],114:[2,124],123:[2,124],129:[2,124],131:[2,124],132:[2,124],133:[2,124],134:[2,124],135:[2,124],137:[2,124],138:[2,124]},{6:[1,289],28:[1,290],95:[1,288]},{6:[2,57],7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[2,57],29:[2,57],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],90:[2,57],92:[1,62],93:[1,63],94:[1,61],95:[2,57],98:291,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,56],28:[2,56],29:[2,56],56:292,57:[1,245]},{1:[2,188],6:[2,188],28:[2,188],29:[2,188],52:[2,188],57:[2,188],60:[2,188],76:[2,188],81:[2,188],90:[2,188],95:[2,188],97:[2,188],106:[2,188],108:[2,188],109:[2,188],110:[2,188],114:[2,188],122:[2,188],125:[2,188],130:[2,188],133:[2,188],134:[2,188],139:[2,188],140:[2,188],141:[2,188],142:[2,188],143:[2,188],144:[2,188],145:[2,188]},{7:293,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:294,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{120:[2,166],121:[2,166]},{30:171,31:[1,77],47:172,61:173,62:174,79:[1,74],93:[1,117],94:[1,118],119:295},{1:[2,173],6:[2,173],28:[2,173],29:[2,173],52:[2,173],57:[2,173],60:[2,173],76:[2,173],81:[2,173],90:[2,173],95:[2,173],97:[2,173],106:[2,173],107:89,108:[2,173],109:[1,296],110:[2,173],113:90,114:[2,173],115:73,122:[1,297],130:[2,173],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,174],6:[2,174],28:[2,174],29:[2,174],52:[2,174],57:[2,174],60:[2,174],76:[2,174],81:[2,174],90:[2,174],95:[2,174],97:[2,174],106:[2,174],107:89,108:[2,174],109:[1,298],110:[2,174],113:90,114:[2,174],115:73,122:[2,174],130:[2,174],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,300],28:[1,301],81:[1,299]},{6:[2,57],10:181,28:[2,57],29:[2,57],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:302,45:180,47:184,49:[1,49],81:[2,57],93:[1,117]},{7:303,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,304],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,91],6:[2,91],28:[2,91],29:[2,91],43:[2,91],52:[2,91],57:[2,91],60:[2,91],69:[2,91],70:[2,91],71:[2,91],72:[2,91],74:[2,91],76:[2,91],77:[2,91],81:[2,91],83:[2,91],88:[2,91],89:[2,91],90:[2,91],95:[2,91],97:[2,91],106:[2,91],108:[2,91],109:[2,91],110:[2,91],114:[2,91],122:[2,91],130:[2,91],133:[2,91],134:[2,91],137:[2,91],138:[2,91],139:[2,91],140:[2,91],141:[2,91],142:[2,91],143:[2,91],144:[2,91],145:[2,91],146:[2,91]},{7:305,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,76:[2,127],79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,128],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,40],6:[2,40],28:[2,40],29:[2,40],52:[2,40],57:[2,40],60:[2,40],76:[2,40],81:[2,40],90:[2,40],95:[2,40],97:[2,40],106:[2,40],107:89,108:[2,40],109:[2,40],110:[2,40],113:90,114:[2,40],115:73,122:[2,40],130:[2,40],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{29:[1,306],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],90:[1,307]},{6:[2,71],28:[2,71],29:[2,71],57:[2,71],90:[2,71],95:[2,71]},{14:308,28:[1,120]},{6:[2,60],28:[2,60],29:[2,60],52:[2,60],57:[2,60]},{30:113,31:[1,77],47:114,58:309,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,58],28:[2,58],29:[2,58],30:113,31:[1,77],47:114,51:310,57:[2,58],58:110,59:111,60:[1,112],61:115,62:116,79:[1,74],93:[1,117],94:[1,118]},{6:[2,65],28:[2,65],29:[2,65],52:[2,65],57:[2,65],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,28],6:[2,28],28:[2,28],29:[2,28],52:[2,28],57:[2,28],60:[2,28],76:[2,28],81:[2,28],90:[2,28],95:[2,28],97:[2,28],102:[2,28],103:[2,28],106:[2,28],108:[2,28],109:[2,28],110:[2,28],114:[2,28],122:[2,28],125:[2,28],127:[2,28],130:[2,28],133:[2,28],134:[2,28],139:[2,28],140:[2,28],141:[2,28],142:[2,28],143:[2,28],144:[2,28],145:[2,28]},{29:[1,311],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,216],6:[2,216],28:[2,216],29:[2,216],52:[2,216],57:[2,216],60:[2,216],76:[2,216],81:[2,216],90:[2,216],95:[2,216],97:[2,216],106:[2,216],107:89,108:[2,216],109:[2,216],110:[2,216],113:90,114:[2,216],115:73,122:[2,216],130:[2,216],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:312,28:[1,120],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{14:313,28:[1,120]},{1:[2,142],6:[2,142],28:[2,142],29:[2,142],52:[2,142],57:[2,142],60:[2,142],76:[2,142],81:[2,142],90:[2,142],95:[2,142],97:[2,142],106:[2,142],108:[2,142],109:[2,142],110:[2,142],114:[2,142],122:[2,142],130:[2,142],133:[2,142],134:[2,142],139:[2,142],140:[2,142],141:[2,142],142:[2,142],143:[2,142],144:[2,142],145:[2,142]},{14:314,28:[1,120]},{14:315,28:[1,120]},{1:[2,146],6:[2,146],28:[2,146],29:[2,146],52:[2,146],57:[2,146],60:[2,146],76:[2,146],81:[2,146],90:[2,146],95:[2,146],97:[2,146],102:[2,146],106:[2,146],108:[2,146],109:[2,146],110:[2,146],114:[2,146],122:[2,146],130:[2,146],133:[2,146],134:[2,146],139:[2,146],140:[2,146],141:[2,146],142:[2,146],143:[2,146],144:[2,146],145:[2,146]},{29:[1,316],125:[1,317],126:281,127:[1,236]},{1:[2,182],6:[2,182],28:[2,182],29:[2,182],52:[2,182],57:[2,182],60:[2,182],76:[2,182],81:[2,182],90:[2,182],95:[2,182],97:[2,182],106:[2,182],108:[2,182],109:[2,182],110:[2,182],114:[2,182],122:[2,182],130:[2,182],133:[2,182],134:[2,182],139:[2,182],140:[2,182],141:[2,182],142:[2,182],143:[2,182],144:[2,182],145:[2,182]},{14:318,28:[1,120]},{29:[2,185],125:[2,185],127:[2,185]},{14:319,28:[1,120],57:[1,320]},{28:[2,138],57:[2,138],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,104],6:[2,104],28:[2,104],29:[2,104],52:[2,104],57:[2,104],60:[2,104],76:[2,104],81:[2,104],90:[2,104],95:[2,104],97:[2,104],106:[2,104],108:[2,104],109:[2,104],110:[2,104],114:[2,104],122:[2,104],130:[2,104],133:[2,104],134:[2,104],139:[2,104],140:[2,104],141:[2,104],142:[2,104],143:[2,104],144:[2,104],145:[2,104]},{1:[2,107],6:[2,107],14:321,28:[1,120],29:[2,107],52:[2,107],57:[2,107],60:[2,107],76:[2,107],81:[2,107],90:[2,107],95:[2,107],97:[2,107],106:[2,107],107:89,108:[1,69],109:[2,107],110:[1,70],113:90,114:[1,72],115:73,122:[2,107],130:[2,107],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{106:[1,322]},{95:[1,323],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,122],6:[2,122],28:[2,122],29:[2,122],43:[2,122],52:[2,122],57:[2,122],60:[2,122],69:[2,122],70:[2,122],71:[2,122],72:[2,122],74:[2,122],76:[2,122],77:[2,122],81:[2,122],88:[2,122],89:[2,122],90:[2,122],95:[2,122],97:[2,122],106:[2,122],108:[2,122],109:[2,122],110:[2,122],114:[2,122],120:[2,122],121:[2,122],122:[2,122],130:[2,122],133:[2,122],134:[2,122],139:[2,122],140:[2,122],141:[2,122],142:[2,122],143:[2,122],144:[2,122],145:[2,122]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],98:324,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:215,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,28:[1,158],30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],60:[1,160],61:51,62:52,63:159,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],91:325,92:[1,62],93:[1,63],94:[1,61],98:157,100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[2,131],28:[2,131],29:[2,131],57:[2,131],90:[2,131],95:[2,131]},{6:[1,289],28:[1,290],29:[1,326]},{1:[2,151],6:[2,151],28:[2,151],29:[2,151],52:[2,151],57:[2,151],60:[2,151],76:[2,151],81:[2,151],90:[2,151],95:[2,151],97:[2,151],106:[2,151],107:89,108:[1,69],109:[2,151],110:[1,70],113:90,114:[1,72],115:73,122:[2,151],130:[2,151],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,153],6:[2,153],28:[2,153],29:[2,153],52:[2,153],57:[2,153],60:[2,153],76:[2,153],81:[2,153],90:[2,153],95:[2,153],97:[2,153],106:[2,153],107:89,108:[1,69],109:[2,153],110:[1,70],113:90,114:[1,72],115:73,122:[2,153],130:[2,153],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{120:[2,172],121:[2,172]},{7:327,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:328,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:329,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,95],6:[2,95],28:[2,95],29:[2,95],43:[2,95],52:[2,95],57:[2,95],60:[2,95],69:[2,95],70:[2,95],71:[2,95],72:[2,95],74:[2,95],76:[2,95],77:[2,95],81:[2,95],88:[2,95],89:[2,95],90:[2,95],95:[2,95],97:[2,95],106:[2,95],108:[2,95],109:[2,95],110:[2,95],114:[2,95],120:[2,95],121:[2,95],122:[2,95],130:[2,95],133:[2,95],134:[2,95],139:[2,95],140:[2,95],141:[2,95],142:[2,95],143:[2,95],144:[2,95],145:[2,95]},{10:181,30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:330,45:180,47:184,49:[1,49],93:[1,117]},{6:[2,96],10:181,28:[2,96],29:[2,96],30:182,31:[1,77],32:183,33:[1,75],34:[1,76],44:179,45:180,47:184,49:[1,49],57:[2,96],80:331,93:[1,117]},{6:[2,98],28:[2,98],29:[2,98],57:[2,98],81:[2,98]},{6:[2,43],28:[2,43],29:[2,43],57:[2,43],81:[2,43],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{7:332,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{76:[2,126],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,41],6:[2,41],28:[2,41],29:[2,41],52:[2,41],57:[2,41],60:[2,41],76:[2,41],81:[2,41],90:[2,41],95:[2,41],97:[2,41],106:[2,41],108:[2,41],109:[2,41],110:[2,41],114:[2,41],122:[2,41],130:[2,41],133:[2,41],134:[2,41],139:[2,41],140:[2,41],141:[2,41],142:[2,41],143:[2,41],144:[2,41],145:[2,41]},{1:[2,117],6:[2,117],28:[2,117],29:[2,117],43:[2,117],52:[2,117],57:[2,117],60:[2,117],69:[2,117],70:[2,117],71:[2,117],72:[2,117],74:[2,117],76:[2,117],77:[2,117],81:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],95:[2,117],97:[2,117],106:[2,117],108:[2,117],109:[2,117],110:[2,117],114:[2,117],122:[2,117],130:[2,117],133:[2,117],134:[2,117],137:[2,117],138:[2,117],139:[2,117],140:[2,117],141:[2,117],142:[2,117],143:[2,117],144:[2,117],145:[2,117],146:[2,117]},{1:[2,52],6:[2,52],28:[2,52],29:[2,52],52:[2,52],57:[2,52],60:[2,52],76:[2,52],81:[2,52],90:[2,52],95:[2,52],97:[2,52],106:[2,52],108:[2,52],109:[2,52],110:[2,52],114:[2,52],122:[2,52],130:[2,52],133:[2,52],134:[2,52],139:[2,52],140:[2,52],141:[2,52],142:[2,52],143:[2,52],144:[2,52],145:[2,52]},{6:[2,61],28:[2,61],29:[2,61],52:[2,61],57:[2,61]},{6:[2,56],28:[2,56],29:[2,56],56:333,57:[1,217]},{1:[2,215],6:[2,215],28:[2,215],29:[2,215],52:[2,215],57:[2,215],60:[2,215],76:[2,215],81:[2,215],90:[2,215],95:[2,215],97:[2,215],106:[2,215],108:[2,215],109:[2,215],110:[2,215],114:[2,215],122:[2,215],130:[2,215],133:[2,215],134:[2,215],139:[2,215],140:[2,215],141:[2,215],142:[2,215],143:[2,215],144:[2,215],145:[2,215]},{1:[2,189],6:[2,189],28:[2,189],29:[2,189],52:[2,189],57:[2,189],60:[2,189],76:[2,189],81:[2,189],90:[2,189],95:[2,189],97:[2,189],106:[2,189],108:[2,189],109:[2,189],110:[2,189],114:[2,189],122:[2,189],125:[2,189],130:[2,189],133:[2,189],134:[2,189],139:[2,189],140:[2,189],141:[2,189],142:[2,189],143:[2,189],144:[2,189],145:[2,189]},{1:[2,143],6:[2,143],28:[2,143],29:[2,143],52:[2,143],57:[2,143],60:[2,143],76:[2,143],81:[2,143],90:[2,143],95:[2,143],97:[2,143],106:[2,143],108:[2,143],109:[2,143],110:[2,143],114:[2,143],122:[2,143],130:[2,143],133:[2,143],134:[2,143],139:[2,143],140:[2,143],141:[2,143],142:[2,143],143:[2,143],144:[2,143],145:[2,143]},{1:[2,144],6:[2,144],28:[2,144],29:[2,144],52:[2,144],57:[2,144],60:[2,144],76:[2,144],81:[2,144],90:[2,144],95:[2,144],97:[2,144],102:[2,144],106:[2,144],108:[2,144],109:[2,144],110:[2,144],114:[2,144],122:[2,144],130:[2,144],133:[2,144],134:[2,144],139:[2,144],140:[2,144],141:[2,144],142:[2,144],143:[2,144],144:[2,144],145:[2,144]},{1:[2,145],6:[2,145],28:[2,145],29:[2,145],52:[2,145],57:[2,145],60:[2,145],76:[2,145],81:[2,145],90:[2,145],95:[2,145],97:[2,145],102:[2,145],106:[2,145],108:[2,145],109:[2,145],110:[2,145],114:[2,145],122:[2,145],130:[2,145],133:[2,145],134:[2,145],139:[2,145],140:[2,145],141:[2,145],142:[2,145],143:[2,145],144:[2,145],145:[2,145]},{1:[2,180],6:[2,180],28:[2,180],29:[2,180],52:[2,180],57:[2,180],60:[2,180],76:[2,180],81:[2,180],90:[2,180],95:[2,180],97:[2,180],106:[2,180],108:[2,180],109:[2,180],110:[2,180],114:[2,180],122:[2,180],130:[2,180],133:[2,180],134:[2,180],139:[2,180],140:[2,180],141:[2,180],142:[2,180],143:[2,180],144:[2,180],145:[2,180]},{14:334,28:[1,120]},{29:[1,335]},{6:[1,336],29:[2,186],125:[2,186],127:[2,186]},{7:337,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{1:[2,108],6:[2,108],28:[2,108],29:[2,108],52:[2,108],57:[2,108],60:[2,108],76:[2,108],81:[2,108],90:[2,108],95:[2,108],97:[2,108],106:[2,108],108:[2,108],109:[2,108],110:[2,108],114:[2,108],122:[2,108],130:[2,108],133:[2,108],134:[2,108],139:[2,108],140:[2,108],141:[2,108],142:[2,108],143:[2,108],144:[2,108],145:[2,108]},{1:[2,149],6:[2,149],28:[2,149],29:[2,149],52:[2,149],57:[2,149],60:[2,149],69:[2,149],70:[2,149],71:[2,149],72:[2,149],74:[2,149],76:[2,149],77:[2,149],81:[2,149],88:[2,149],89:[2,149],90:[2,149],95:[2,149],97:[2,149],106:[2,149],108:[2,149],109:[2,149],110:[2,149],114:[2,149],122:[2,149],130:[2,149],133:[2,149],134:[2,149],139:[2,149],140:[2,149],141:[2,149],142:[2,149],143:[2,149],144:[2,149],145:[2,149]},{1:[2,125],6:[2,125],28:[2,125],29:[2,125],52:[2,125],57:[2,125],60:[2,125],69:[2,125],70:[2,125],71:[2,125],72:[2,125],74:[2,125],76:[2,125],77:[2,125],81:[2,125],88:[2,125],89:[2,125],90:[2,125],95:[2,125],97:[2,125],106:[2,125],108:[2,125],109:[2,125],110:[2,125],114:[2,125],122:[2,125],130:[2,125],133:[2,125],134:[2,125],139:[2,125],140:[2,125],141:[2,125],142:[2,125],143:[2,125],144:[2,125],145:[2,125]},{6:[2,132],28:[2,132],29:[2,132],57:[2,132],90:[2,132],95:[2,132]},{6:[2,56],28:[2,56],29:[2,56],56:338,57:[1,245]},{6:[2,133],28:[2,133],29:[2,133],57:[2,133],90:[2,133],95:[2,133]},{1:[2,175],6:[2,175],28:[2,175],29:[2,175],52:[2,175],57:[2,175],60:[2,175],76:[2,175],81:[2,175],90:[2,175],95:[2,175],97:[2,175],106:[2,175],107:89,108:[2,175],109:[2,175],110:[2,175],113:90,114:[2,175],115:73,122:[1,339],130:[2,175],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,177],6:[2,177],28:[2,177],29:[2,177],52:[2,177],57:[2,177],60:[2,177],76:[2,177],81:[2,177],90:[2,177],95:[2,177],97:[2,177],106:[2,177],107:89,108:[2,177],109:[1,340],110:[2,177],113:90,114:[2,177],115:73,122:[2,177],130:[2,177],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,176],6:[2,176],28:[2,176],29:[2,176],52:[2,176],57:[2,176],60:[2,176],76:[2,176],81:[2,176],90:[2,176],95:[2,176],97:[2,176],106:[2,176],107:89,108:[2,176],109:[2,176],110:[2,176],113:90,114:[2,176],115:73,122:[2,176],130:[2,176],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,99],28:[2,99],29:[2,99],57:[2,99],81:[2,99]},{6:[2,56],28:[2,56],29:[2,56],56:341,57:[1,255]},{29:[1,342],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,266],28:[1,267],29:[1,343]},{29:[1,344]},{1:[2,183],6:[2,183],28:[2,183],29:[2,183],52:[2,183],57:[2,183],60:[2,183],76:[2,183],81:[2,183],90:[2,183],95:[2,183],97:[2,183],106:[2,183],108:[2,183],109:[2,183],110:[2,183],114:[2,183],122:[2,183],130:[2,183],133:[2,183],134:[2,183],139:[2,183],140:[2,183],141:[2,183],142:[2,183],143:[2,183],144:[2,183],145:[2,183]},{29:[2,187],125:[2,187],127:[2,187]},{28:[2,139],57:[2,139],107:89,108:[1,69],110:[1,70],113:90,114:[1,72],115:73,130:[1,88],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[1,289],28:[1,290],29:[1,345]},{7:346,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{7:347,8:122,9:19,10:20,11:[1,21],12:22,13:[1,50],15:6,16:7,17:8,18:9,19:10,20:11,21:12,22:13,23:14,24:15,25:16,26:17,27:18,30:66,31:[1,77],32:53,33:[1,75],34:[1,76],35:24,36:[1,54],37:[1,55],38:[1,56],39:[1,57],40:[1,58],41:[1,59],42:23,47:67,48:[1,48],49:[1,49],50:[1,29],53:30,54:[1,64],55:[1,65],61:51,62:52,64:38,66:25,67:26,68:27,79:[1,74],82:[1,45],86:[1,28],87:[1,47],92:[1,62],93:[1,63],94:[1,61],100:[1,40],104:[1,46],105:[1,60],107:41,108:[1,69],110:[1,70],111:42,112:[1,71],113:43,114:[1,72],115:73,123:[1,44],128:39,129:[1,68],131:[1,31],132:[1,32],133:[1,33],134:[1,34],135:[1,35],137:[1,36],138:[1,37]},{6:[1,300],28:[1,301],29:[1,348]},{6:[2,44],28:[2,44],29:[2,44],57:[2,44],81:[2,44]},{6:[2,62],28:[2,62],29:[2,62],52:[2,62],57:[2,62]},{1:[2,181],6:[2,181],28:[2,181],29:[2,181],52:[2,181],57:[2,181],60:[2,181],76:[2,181],81:[2,181],90:[2,181],95:[2,181],97:[2,181],106:[2,181],108:[2,181],109:[2,181],110:[2,181],114:[2,181],122:[2,181],130:[2,181],133:[2,181],134:[2,181],139:[2,181],140:[2,181],141:[2,181],142:[2,181],143:[2,181],144:[2,181],145:[2,181]},{6:[2,134],28:[2,134],29:[2,134],57:[2,134],90:[2,134],95:[2,134]},{1:[2,178],6:[2,178],28:[2,178],29:[2,178],52:[2,178],57:[2,178],60:[2,178],76:[2,178],81:[2,178],90:[2,178],95:[2,178],97:[2,178],106:[2,178],107:89,108:[2,178],109:[2,178],110:[2,178],113:90,114:[2,178],115:73,122:[2,178],130:[2,178],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{1:[2,179],6:[2,179],28:[2,179],29:[2,179],52:[2,179],57:[2,179],60:[2,179],76:[2,179],81:[2,179],90:[2,179],95:[2,179],97:[2,179],106:[2,179],107:89,108:[2,179],109:[2,179],110:[2,179],113:90,114:[2,179],115:73,122:[2,179],130:[2,179],133:[1,81],134:[1,80],139:[1,79],140:[1,82],141:[1,83],142:[1,84],143:[1,85],144:[1,86],145:[1,87]},{6:[2,100],28:[2,100],29:[2,100],57:[2,100],81:[2,100]}], +defaultActions: {64:[2,54],65:[2,55],96:[2,115],204:[2,94]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + throw new Error(str); + } +}, +parse: function parse(input) { + var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == 'undefined') { + this.lexer.yylloc = {}; + } + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === 'function') { + this.parseError = this.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (this.lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: this.lexer.match, + token: this.terminals_[symbol] || symbol, + line: this.lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + this.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; + +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof _dereq_ !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = _dereq_('fs').readFileSync(_dereq_('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && _dereq_.main === module) { + exports.main(process.argv.slice(1)); +} +} +}).call(this,_dereq_("g5I+bs")) +},{"fs":12,"g5I+bs":19,"path":18}],8:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, loadFile, path, _i, _len, _ref; + + CoffeeScript = _dereq_('./coffee-script'); + + child_process = _dereq_('child_process'); + + helpers = _dereq_('./helpers'); + + path = _dereq_('path'); + + loadFile = function(module, filename) { + var answer; + answer = CoffeeScript._compileFile(filename, false, { + runtime: "interp" + }); + return module._compile(answer, filename); + }; + + if (_dereq_.extensions) { + _ref = CoffeeScript.FILE_EXTENSIONS; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + ext = _ref[_i]; + _dereq_.extensions[ext] = loadFile; + } + Module = _dereq_('module'); + findExtension = function(filename) { + var curExtension, extensions; + extensions = path.basename(filename).split('.'); + if (extensions[0] === '') { + extensions.shift(); + } + while (extensions.shift()) { + curExtension = '.' + extensions.join('.'); + if (Module._extensions[curExtension]) { + return curExtension; + } + } + return '.js'; + }; + Module.prototype.load = function(filename) { + var extension; + this.filename = filename; + this.paths = Module._nodeModulePaths(path.dirname(filename)); + extension = findExtension(filename); + Module._extensions[extension](this, filename); + return this.loaded = true; + }; + } + + if (child_process) { + fork = child_process.fork; + binary = _dereq_.resolve('../../bin/coffee'); + child_process.fork = function(path, args, options) { + if (helpers.isCoffee(path)) { + if (!Array.isArray(args)) { + options = args || {}; + args = []; + } + args = [path].concat(args); + path = binary; + } + return fork(path, args, options); + }; + } + +}).call(this); + +},{"./coffee-script":2,"./helpers":3,"child_process":12,"module":12,"path":18}],9:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var BALANCED_PAIRS, CALL_CLOSERS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + __slice = [].slice; + + generate = function(tag, value, origin) { + var tok; + tok = [tag, value]; + tok.generated = true; + if (origin) { + tok.origin = origin; + } + return tok; + }; + + exports.Rewriter = (function() { + function Rewriter() {} + + Rewriter.prototype.rewrite = function(tokens) { + this.tokens = tokens; + this.removeLeadingNewlines(); + this.closeOpenCalls(); + this.closeOpenIndexes(); + this.normalizeLines(); + this.tagPostfixConditionals(); + this.addImplicitBracesAndParens(); + this.addLocationDataToGeneratedTokens(); + return this.tokens; + }; + + Rewriter.prototype.scanTokens = function(block) { + var i, token, tokens; + tokens = this.tokens; + i = 0; + while (token = tokens[i]) { + i += block.call(this, token, i, tokens); + } + return true; + }; + + Rewriter.prototype.detectEnd = function(i, condition, action) { + var levels, token, tokens, _ref, _ref1; + tokens = this.tokens; + levels = 0; + while (token = tokens[i]) { + if (levels === 0 && condition.call(this, token, i)) { + return action.call(this, token, i); + } + if (!token || levels < 0) { + return action.call(this, token, i - 1); + } + if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) { + levels += 1; + } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) { + levels -= 1; + } + i += 1; + } + return i - 1; + }; + + Rewriter.prototype.removeLeadingNewlines = function() { + var i, tag, _i, _len, _ref; + _ref = this.tokens; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + tag = _ref[i][0]; + if (tag !== 'TERMINATOR') { + break; + } + } + if (i) { + return this.tokens.splice(0, i); + } + }; + + Rewriter.prototype.closeOpenCalls = function() { + var action, condition; + condition = function(token, i) { + var _ref; + return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; + }; + action = function(token, i) { + return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'CALL_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + }; + + Rewriter.prototype.closeOpenIndexes = function() { + var action, condition; + condition = function(token, i) { + var _ref; + return (_ref = token[0]) === ']' || _ref === 'INDEX_END'; + }; + action = function(token, i) { + return token[0] = 'INDEX_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'INDEX_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + }; + + Rewriter.prototype.matchTags = function() { + var fuzz, i, j, pattern, _i, _ref, _ref1; + i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + fuzz = 0; + for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) { + while (this.tag(i + j + fuzz) === 'HERECOMMENT') { + fuzz += 2; + } + if (pattern[j] == null) { + continue; + } + if (typeof pattern[j] === 'string') { + pattern[j] = [pattern[j]]; + } + if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) { + return false; + } + } + return true; + }; + + Rewriter.prototype.looksObjectish = function(j) { + return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':'); + }; + + Rewriter.prototype.findTagsBackwards = function(i, tags) { + var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; + backStack = []; + while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) { + if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) { + backStack.push(this.tag(i)); + } + if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) { + backStack.pop(); + } + i -= 1; + } + return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0; + }; + + Rewriter.prototype.addImplicitBracesAndParens = function() { + var stack; + stack = []; + return this.scanTokens(function(token, i, tokens) { + var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, newLine, nextTag, offset, prevTag, prevToken, ret, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; + tag = token[0]; + prevTag = (prevToken = i > 0 ? tokens[i - 1] : [])[0]; + nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0]; + stackTop = function() { + return stack[stack.length - 1]; + }; + startIdx = i; + forward = function(n) { + return i - startIdx + n; + }; + inImplicit = function() { + var _ref, _ref1; + return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0; + }; + inImplicitCall = function() { + var _ref; + return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '('; + }; + inImplicitObject = function() { + var _ref; + return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{'; + }; + inImplicitControl = function() { + var _ref; + return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL'; + }; + startImplicitCall = function(j) { + var idx; + idx = j != null ? j : i; + stack.push([ + '(', idx, { + ours: true + } + ]); + tokens.splice(idx, 0, generate('CALL_START', '(')); + if (j == null) { + return i += 1; + } + }; + endImplicitCall = function() { + stack.pop(); + tokens.splice(i, 0, generate('CALL_END', ')')); + return i += 1; + }; + startImplicitObject = function(j, startsLine) { + var idx; + if (startsLine == null) { + startsLine = true; + } + idx = j != null ? j : i; + stack.push([ + '{', idx, { + sameLine: true, + startsLine: startsLine, + ours: true + } + ]); + tokens.splice(idx, 0, generate('{', generate(new String('{')), token)); + if (j == null) { + return i += 1; + } + }; + endImplicitObject = function(j) { + j = j != null ? j : i; + stack.pop(); + tokens.splice(j, 0, generate('}', '}', token)); + return i += 1; + }; + if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) { + stack.push([ + 'CONTROL', i, { + ours: true + } + ]); + return forward(1); + } + if (tag === 'INDENT' && inImplicit()) { + if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') { + while (inImplicitCall()) { + endImplicitCall(); + } + } + if (inImplicitControl()) { + stack.pop(); + } + stack.push([tag, i]); + return forward(1); + } + if (__indexOf.call(EXPRESSION_START, tag) >= 0) { + stack.push([tag, i]); + return forward(1); + } + if (__indexOf.call(EXPRESSION_END, tag) >= 0) { + while (inImplicit()) { + if (inImplicitCall()) { + endImplicitCall(); + } else if (inImplicitObject()) { + endImplicitObject(); + } else { + stack.pop(); + } + } + stack.pop(); + } + if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) { + if (tag === '?') { + tag = token[0] = 'FUNC_EXIST'; + } + startImplicitCall(i + 1); + ret = forward(2); + return ret; + } + if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) { + startImplicitCall(i + 1); + stack.push(['INDENT', i + 2]); + return forward(3); + } + if (tag === ':') { + if (this.tag(i - 2) === '@') { + s = i - 2; + } else { + s = i - 1; + } + while (this.tag(s - 2) === 'HERECOMMENT') { + s -= 2; + } + this.insideForDeclaration = nextTag === 'FOR'; + startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine; + if (stackTop()) { + _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1]; + if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) { + return forward(1); + } + } + startImplicitObject(s, !!startsLine); + return forward(2); + } + if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) { + stackTop()[2].sameLine = false; + } + newLine = prevTag === 'OUTDENT' || prevToken.newLine; + if (__indexOf.call(IMPLICIT_END, tag) >= 0 || __indexOf.call(CALL_CLOSERS, tag) >= 0 && newLine) { + while (inImplicit()) { + _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine); + if (inImplicitCall() && prevTag !== ',') { + endImplicitCall(); + } else if (inImplicitObject() && !this.insideForDeclaration && sameLine && tag !== 'TERMINATOR' && prevTag !== ':' && endImplicitObject()) { + + } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) { + endImplicitObject(); + } else { + break; + } + } + } + if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && !this.insideForDeclaration && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) { + offset = nextTag === 'OUTDENT' ? 1 : 0; + while (inImplicitObject()) { + endImplicitObject(i + offset); + } + } + return forward(1); + }); + }; + + Rewriter.prototype.addLocationDataToGeneratedTokens = function() { + return this.scanTokens(function(token, i, tokens) { + var column, line, nextLocation, prevLocation, _ref, _ref1; + if (token[2]) { + return 1; + } + if (!(token.generated || token.explicit)) { + return 1; + } + if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) { + line = nextLocation.first_line, column = nextLocation.first_column; + } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) { + line = prevLocation.last_line, column = prevLocation.last_column; + } else { + line = column = 0; + } + token[2] = { + first_line: line, + first_column: column, + last_line: line, + last_column: column + }; + return 1; + }); + }; + + Rewriter.prototype.normalizeLines = function() { + var action, condition, indent, outdent, starter; + starter = indent = outdent = null; + condition = function(token, i) { + var _ref, _ref1, _ref2, _ref3; + return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'TERMINATOR' && (_ref1 = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref1) >= 0)) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref2 = token[0]) === 'CATCH' || _ref2 === 'FINALLY') && (starter === '->' || starter === '=>')) || (_ref3 = token[0], __indexOf.call(CALL_CLOSERS, _ref3) >= 0) && this.tokens[i - 1].newLine; + }; + action = function(token, i) { + return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); + }; + return this.scanTokens(function(token, i, tokens) { + var j, tag, _i, _ref, _ref1, _ref2; + tag = token[0]; + if (tag === 'TERMINATOR') { + if (this.tag(i + 1) === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { + tokens.splice.apply(tokens, [i, 1].concat(__slice.call(this.indentation()))); + return 1; + } + if (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0) { + tokens.splice(i, 1); + return 0; + } + } + if (tag === 'CATCH') { + for (j = _i = 1; _i <= 2; j = ++_i) { + if (!((_ref1 = this.tag(i + j)) === 'OUTDENT' || _ref1 === 'TERMINATOR' || _ref1 === 'FINALLY')) { + continue; + } + tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation()))); + return 2 + j; + } + } + if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { + starter = tag; + _ref2 = this.indentation(tokens[i]), indent = _ref2[0], outdent = _ref2[1]; + if (starter === 'THEN') { + indent.fromThen = true; + } + tokens.splice(i + 1, 0, indent); + this.detectEnd(i + 2, condition, action); + if (tag === 'THEN') { + tokens.splice(i, 1); + } + return 1; + } + return 1; + }); + }; + + Rewriter.prototype.tagPostfixConditionals = function() { + var action, condition, original; + original = null; + condition = function(token, i) { + var prevTag, tag; + tag = token[0]; + prevTag = this.tokens[i - 1][0]; + return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0); + }; + action = function(token, i) { + if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { + return original[0] = 'POST_' + original[0]; + } + }; + return this.scanTokens(function(token, i) { + if (token[0] !== 'IF') { + return 1; + } + original = token; + this.detectEnd(i + 1, condition, action); + return 1; + }); + }; + + Rewriter.prototype.indentation = function(origin) { + var indent, outdent; + indent = ['INDENT', 2]; + outdent = ['OUTDENT', 2]; + if (origin) { + indent.generated = outdent.generated = true; + indent.origin = outdent.origin = origin; + } else { + indent.explicit = outdent.explicit = true; + } + return [indent, outdent]; + }; + + Rewriter.prototype.generate = generate; + + Rewriter.prototype.tag = function(i) { + var _ref; + return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; + }; + + return Rewriter; + + })(); + + BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']]; + + exports.INVERSES = INVERSES = {}; + + EXPRESSION_START = []; + + EXPRESSION_END = []; + + for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) { + _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1]; + EXPRESSION_START.push(INVERSES[rite] = left); + EXPRESSION_END.push(INVERSES[left] = rite); + } + + EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); + + IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; + + IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; + + IMPLICIT_UNSPACED_CALL = ['+', '-']; + + IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; + + SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; + + SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; + + LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; + + CALL_CLOSERS = ['.', '?.', '::', '?::']; + + IMPLICIT_FUNC.push('DEFER'); + + IMPLICIT_CALL.push('DEFER'); + + IMPLICIT_END.push('AWAIT'); + +}).call(this); + +},{}],10:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var Scope, extend, iced, last, _ref; + + _ref = _dereq_('./helpers'), extend = _ref.extend, last = _ref.last; + + iced = _dereq_('iced-runtime'); + + exports.Scope = Scope = (function() { + Scope.root = null; + + function Scope(parent, expressions, method) { + this.parent = parent; + this.expressions = expressions; + this.method = method; + this.variables = [ + { + name: 'arguments', + type: 'arguments' + } + ]; + this.positions = {}; + if (!this.parent) { + Scope.root = this; + } + } + + Scope.prototype.add = function(name, type, immediate) { + if (this.shared && !immediate) { + return this.parent.add(name, type, immediate); + } + if (Object.prototype.hasOwnProperty.call(this.positions, name)) { + return this.variables[this.positions[name]].type = type; + } else { + return this.positions[name] = this.variables.push({ + name: name, + type: type + }) - 1; + } + }; + + Scope.prototype.namedMethod = function() { + var _ref1; + if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) { + return this.method; + } + return this.parent.namedMethod(); + }; + + Scope.prototype.find = function(name) { + if (this.check(name)) { + return true; + } + this.add(name, 'var'); + return false; + }; + + Scope.prototype.parameter = function(name) { + if (this.shared && this.parent.check(name, true)) { + return; + } + return this.add(name, 'param'); + }; + + Scope.prototype.check = function(name) { + var _ref1; + return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0)); + }; + + Scope.prototype.temporary = function(name, index) { + if (name.length > 1) { + return '_' + name + (index > 1 ? index - 1 : ''); + } else { + return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a'); + } + }; + + Scope.prototype.type = function(name) { + var v, _i, _len, _ref1; + _ref1 = this.variables; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.name === name) { + return v.type; + } + } + return null; + }; + + Scope.prototype.freeVariable = function(name, reserve) { + var index, temp; + if (reserve == null) { + reserve = true; + } + index = 0; + while (this.check((temp = this.temporary(name, index)))) { + index++; + } + if (reserve) { + this.add(temp, 'var', true); + } + return temp; + }; + + Scope.prototype.assign = function(name, value) { + this.add(name, { + value: value, + assigned: true + }, true); + return this.hasAssignments = true; + }; + + Scope.prototype.hasDeclarations = function() { + return !!this.declaredVariables().length; + }; + + Scope.prototype.declaredVariables = function() { + var realVars, tempVars, v, _i, _len, _ref1; + realVars = []; + tempVars = []; + _ref1 = this.variables; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.type === 'var') { + (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name); + } + } + return realVars.sort().concat(tempVars.sort()); + }; + + Scope.prototype.assignedVariables = function() { + var v, _i, _len, _ref1, _results; + _ref1 = this.variables; + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + v = _ref1[_i]; + if (v.type.assigned) { + _results.push("" + v.name + " = " + v.type.value); + } + } + return _results; + }; + + return Scope; + + })(); + +}).call(this); + +},{"./helpers":3,"iced-runtime":15}],11:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.11 +(function() { + var LineMap, SourceMap; + + LineMap = (function() { + function LineMap(line) { + this.line = line; + this.columns = []; + } + + LineMap.prototype.add = function(column, _arg, options) { + var sourceColumn, sourceLine; + sourceLine = _arg[0], sourceColumn = _arg[1]; + if (options == null) { + options = {}; + } + if (this.columns[column] && options.noReplace) { + return; + } + return this.columns[column] = { + line: this.line, + column: column, + sourceLine: sourceLine, + sourceColumn: sourceColumn + }; + }; + + LineMap.prototype.sourceLocation = function(column) { + var mapping; + while (!((mapping = this.columns[column]) || (column <= 0))) { + column--; + } + return mapping && [mapping.sourceLine, mapping.sourceColumn]; + }; + + return LineMap; + + })(); + + SourceMap = (function() { + var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK; + + function SourceMap() { + this.lines = []; + } + + SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) { + var column, line, lineMap, _base; + if (options == null) { + options = {}; + } + line = generatedLocation[0], column = generatedLocation[1]; + lineMap = ((_base = this.lines)[line] || (_base[line] = new LineMap(line))); + return lineMap.add(column, sourceLocation, options); + }; + + SourceMap.prototype.sourceLocation = function(_arg) { + var column, line, lineMap; + line = _arg[0], column = _arg[1]; + while (!((lineMap = this.lines[line]) || (line <= 0))) { + line--; + } + return lineMap && lineMap.sourceLocation(column); + }; + + SourceMap.prototype.generate = function(options, code) { + var buffer, lastColumn, lastSourceColumn, lastSourceLine, lineMap, lineNumber, mapping, needComma, v3, writingline, _i, _j, _len, _len1, _ref, _ref1; + if (options == null) { + options = {}; + } + if (code == null) { + code = null; + } + writingline = 0; + lastColumn = 0; + lastSourceLine = 0; + lastSourceColumn = 0; + needComma = false; + buffer = ""; + _ref = this.lines; + for (lineNumber = _i = 0, _len = _ref.length; _i < _len; lineNumber = ++_i) { + lineMap = _ref[lineNumber]; + if (lineMap) { + _ref1 = lineMap.columns; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + mapping = _ref1[_j]; + if (!(mapping)) { + continue; + } + while (writingline < mapping.line) { + lastColumn = 0; + needComma = false; + buffer += ";"; + writingline++; + } + if (needComma) { + buffer += ","; + needComma = false; + } + buffer += this.encodeVlq(mapping.column - lastColumn); + lastColumn = mapping.column; + buffer += this.encodeVlq(0); + buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine); + lastSourceLine = mapping.sourceLine; + buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn); + lastSourceColumn = mapping.sourceColumn; + needComma = true; + } + } + } + v3 = { + version: 3, + file: options.generatedFile || '', + sourceRoot: options.sourceRoot || '', + sources: options.sourceFiles || [''], + names: [], + mappings: buffer + }; + if (options.inline) { + v3.sourcesContent = [code]; + } + return JSON.stringify(v3, null, 2); + }; + + VLQ_SHIFT = 5; + + VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT; + + VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1; + + SourceMap.prototype.encodeVlq = function(value) { + var answer, nextChunk, signBit, valueToEncode; + answer = ''; + signBit = value < 0 ? 1 : 0; + valueToEncode = (Math.abs(value) << 1) + signBit; + while (valueToEncode || !answer) { + nextChunk = valueToEncode & VLQ_VALUE_MASK; + valueToEncode = valueToEncode >> VLQ_SHIFT; + if (valueToEncode) { + nextChunk |= VLQ_CONTINUATION_BIT; + } + answer += this.encodeBase64(nextChunk); + } + return answer; + }; + + BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + SourceMap.prototype.encodeBase64 = function(value) { + return BASE64_CHARS[value] || (function() { + throw new Error("Cannot Base64 encode value: " + value); + })(); + }; + + return SourceMap; + + })(); + + exports.SourceMap = SourceMap; + +}).call(this); + +},{}],12:[function(_dereq_,module,exports){ + +},{}],13:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + module.exports = { + k: "__iced_k", + k_noop: "__iced_k_noop", + param: "__iced_p_", + ns: "iced", + runtime: "runtime", + Deferrals: "Deferrals", + deferrals: "__iced_deferrals", + fulfill: "_fulfill", + b_while: "_break", + t_while: "_while", + c_while: "_continue", + n_while: "_next", + n_arg: "__iced_next_arg", + defer_method: "defer", + slot: "__slot", + assign_fn: "assign_fn", + autocb: "autocb", + retslot: "ret", + trace: "__iced_trace", + passed_deferral: "__iced_passed_deferral", + findDeferral: "findDeferral", + lineno: "lineno", + parent: "parent", + filename: "filename", + funcname: "funcname", + catchExceptions: 'catchExceptions', + runtime_modes: ["node", "inline", "window", "none", "browserify", "interp"], + trampoline: "trampoline", + context: "context", + defer_arg: "__iced_defer_" + }; + +}).call(this); + +},{}],14:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var C, Pipeliner, iced, __iced_k, __iced_k_noop, _iand, _ior, _timeout, + __slice = [].slice; + + __iced_k = __iced_k_noop = function() {}; + + C = _dereq_('./const'); + + exports.iced = iced = _dereq_('./runtime'); + + _timeout = function(cb, t, res, tmp) { + var arr, rv, which, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + rv = new iced.Rendezvous; + tmp[0] = rv.id(true).defer({ + assign_fn: (function(_this) { + return function() { + return function() { + return arr = __slice.call(arguments, 0); + }; + }; + })(this)(), + lineno: 20, + context: __iced_deferrals + }); + setTimeout(rv.id(false).defer({ + lineno: 21, + context: __iced_deferrals + }), t); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + rv.wait(__iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return which = arguments[0]; + }; + })(), + lineno: 22 + })); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (res) { + res[0] = which; + } + return cb.apply(null, arr); + }; + })(this)); + }; + + exports.timeout = function(cb, t, res) { + var tmp; + tmp = []; + _timeout(cb, t, res, tmp); + return tmp[0]; + }; + + _iand = function(cb, res, tmp) { + var ok, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + tmp[0] = __iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return ok = arguments[0]; + }; + })(), + lineno: 39 + }); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (!ok) { + res[0] = false; + } + return cb(); + }; + })(this)); + }; + + exports.iand = function(cb, res) { + var tmp; + tmp = []; + _iand(cb, res, tmp); + return tmp[0]; + }; + + _ior = function(cb, res, tmp) { + var ok, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced" + }); + tmp[0] = __iced_deferrals.defer({ + assign_fn: (function() { + return function() { + return ok = arguments[0]; + }; + })(), + lineno: 58 + }); + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + if (ok) { + res[0] = true; + } + return cb(); + }; + })(this)); + }; + + exports.ior = function(cb, res) { + var tmp; + tmp = []; + _ior(cb, res, tmp); + return tmp[0]; + }; + + exports.Pipeliner = Pipeliner = (function() { + function Pipeliner(window, delay) { + this.window = window || 1; + this.delay = delay || 0; + this.queue = []; + this.n_out = 0; + this.cb = null; + this[C.deferrals] = this; + this["defer"] = this._defer; + } + + Pipeliner.prototype.waitInQueue = function(cb) { + var ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + var _while; + _while = function(__iced_k) { + var _break, _continue, _next; + _break = __iced_k; + _continue = function() { + return iced.trampoline(function() { + return _while(__iced_k); + }); + }; + _next = _continue; + if (!(_this.n_out >= _this.window)) { + return _break(); + } else { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.waitInQueue" + }); + _this.cb = __iced_deferrals.defer({ + lineno: 100 + }); + __iced_deferrals._fulfill(); + })(_next); + } + }; + _while(__iced_k); + }); + })(this)((function(_this) { + return function() { + _this.n_out++; + (function(__iced_k) { + if (_this.delay) { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.waitInQueue" + }); + setTimeout(__iced_deferrals.defer({ + lineno: 108 + }), _this.delay); + __iced_deferrals._fulfill(); + })(__iced_k); + } else { + return __iced_k(); + } + })(function() { + return cb(); + }); + }; + })(this)); + }; + + Pipeliner.prototype.__defer = function(out, deferArgs) { + var tmp, voidCb, ___iced_passed_deferral, __iced_deferrals, __iced_k; + __iced_k = __iced_k_noop; + ___iced_passed_deferral = iced.findDeferral(arguments); + (function(_this) { + return (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.__defer" + }); + voidCb = __iced_deferrals.defer({ + lineno: 122 + }); + out[0] = function() { + var args, _ref; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if ((_ref = deferArgs.assign_fn) != null) { + _ref.apply(null, args); + } + return voidCb(); + }; + __iced_deferrals._fulfill(); + }); + })(this)((function(_this) { + return function() { + _this.n_out--; + if (_this.cb) { + tmp = _this.cb; + _this.cb = null; + return tmp(); + } + }; + })(this)); + }; + + Pipeliner.prototype._defer = function(deferArgs) { + var tmp; + tmp = []; + this.__defer(tmp, deferArgs); + return tmp[0]; + }; + + Pipeliner.prototype.flush = function(autocb) { + var ___iced_passed_deferral, __iced_k, _while; + __iced_k = autocb; + ___iced_passed_deferral = iced.findDeferral(arguments); + _while = (function(_this) { + var __iced_deferrals; + return function(__iced_k) { + var _break, _continue, _next; + _break = __iced_k; + _continue = function() { + return iced.trampoline(function() { + return _while(__iced_k); + }); + }; + _next = _continue; + if (!_this.n_out) { + return _break(); + } else { + (function(__iced_k) { + __iced_deferrals = new iced.Deferrals(__iced_k, { + parent: ___iced_passed_deferral, + filename: "/Users/max/src/iced/iced-runtime/src/library.iced", + funcname: "Pipeliner.flush" + }); + _this.cb = __iced_deferrals.defer({ + lineno: 151 + }); + __iced_deferrals._fulfill(); + })(_next); + } + }; + })(this); + _while(__iced_k); + }; + + return Pipeliner; + + })(); + +}).call(this); + +},{"./const":13,"./runtime":16}],15:[function(_dereq_,module,exports){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var k, mod, mods, v, _i, _len; + + exports["const"] = _dereq_('./const'); + + mods = [_dereq_('./runtime'), _dereq_('./library')]; + + for (_i = 0, _len = mods.length; _i < _len; _i++) { + mod = mods[_i]; + for (k in mod) { + v = mod[k]; + exports[k] = v; + } + } + +}).call(this); + +},{"./const":13,"./library":14,"./runtime":16}],16:[function(_dereq_,module,exports){ +(function (process){ +// Generated by IcedCoffeeScript 108.0.8 +(function() { + var C, Deferrals, Rendezvous, exceptionHandler, findDeferral, make_defer_return, stackWalk, tick_counter, trampoline, warn, __active_trace, __c, _trace_to_string, + __slice = [].slice; + + C = _dereq_('./const'); + + make_defer_return = function(obj, defer_args, id, trace_template, multi) { + var k, ret, trace, v; + trace = {}; + for (k in trace_template) { + v = trace_template[k]; + trace[k] = v; + } + trace[C.lineno] = defer_args != null ? defer_args[C.lineno] : void 0; + ret = function() { + var inner_args, o, _ref; + inner_args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (defer_args != null) { + if ((_ref = defer_args.assign_fn) != null) { + _ref.apply(null, inner_args); + } + } + if (obj) { + o = obj; + if (!multi) { + obj = null; + } + return o._fulfill(id, trace); + } else { + return warn("overused deferral at " + (_trace_to_string(trace))); + } + }; + ret[C.trace] = trace; + return ret; + }; + + __c = 0; + + tick_counter = function(mod) { + __c++; + if ((__c % mod) === 0) { + __c = 0; + return true; + } else { + return false; + } + }; + + __active_trace = null; + + _trace_to_string = function(tr) { + var fn; + fn = tr[C.funcname] || ""; + return "" + fn + " (" + tr[C.filename] + ":" + (tr[C.lineno] + 1) + ")"; + }; + + warn = function(m) { + return typeof console !== "undefined" && console !== null ? console.error("ICED warning: " + m) : void 0; + }; + + exports.trampoline = trampoline = function(fn) { + if (!tick_counter(500)) { + return fn(); + } else if ((typeof process !== "undefined" && process !== null ? process.nextTick : void 0) != null) { + return process.nextTick(fn); + } else { + return setTimeout(fn); + } + }; + + exports.Deferrals = Deferrals = (function() { + function Deferrals(k, trace) { + this.trace = trace; + this.continuation = k; + this.count = 1; + this.ret = null; + } + + Deferrals.prototype._call = function(trace) { + var c; + if (this.continuation) { + __active_trace = trace; + c = this.continuation; + this.continuation = null; + return c(this.ret); + } else { + return warn("Entered dead await at " + (_trace_to_string(trace))); + } + }; + + Deferrals.prototype._fulfill = function(id, trace) { + if (--this.count > 0) { + + } else { + return trampoline(((function(_this) { + return function() { + return _this._call(trace); + }; + })(this))); + } + }; + + Deferrals.prototype.defer = function(args) { + var self; + this.count++; + self = this; + return make_defer_return(self, args, null, this.trace); + }; + + return Deferrals; + + })(); + + exports.findDeferral = findDeferral = function(args) { + var a, _i, _len; + for (_i = 0, _len = args.length; _i < _len; _i++) { + a = args[_i]; + if (a != null ? a[C.trace] : void 0) { + return a; + } + } + return null; + }; + + exports.Rendezvous = Rendezvous = (function() { + var RvId; + + function Rendezvous() { + this.completed = []; + this.waiters = []; + this.defer_id = 0; + } + + RvId = (function() { + function RvId(rv, id, multi) { + this.rv = rv; + this.id = id; + this.multi = multi; + } + + RvId.prototype.defer = function(defer_args) { + return this.rv._defer_with_id(this.id, defer_args, this.multi); + }; + + return RvId; + + })(); + + Rendezvous.prototype.wait = function(cb) { + var x; + if (this.completed.length) { + x = this.completed.shift(); + return cb(x); + } else { + return this.waiters.push(cb); + } + }; + + Rendezvous.prototype.defer = function(defer_args) { + var id; + id = this.defer_id++; + return this._defer_with_id(id, defer_args); + }; + + Rendezvous.prototype.id = function(i, multi) { + multi = !!multi; + return new RvId(this, i, multi); + }; + + Rendezvous.prototype._fulfill = function(id, trace) { + var cb; + if (this.waiters.length) { + cb = this.waiters.shift(); + return cb(id); + } else { + return this.completed.push(id); + } + }; + + Rendezvous.prototype._defer_with_id = function(id, defer_args, multi) { + this.count++; + return make_defer_return(this, defer_args, id, {}, multi); + }; + + return Rendezvous; + + })(); + + exports.stackWalk = stackWalk = function(cb) { + var line, ret, tr, _ref; + ret = []; + tr = cb ? cb[C.trace] : __active_trace; + while (tr) { + line = " at " + (_trace_to_string(tr)); + ret.push(line); + tr = tr != null ? (_ref = tr[C.parent]) != null ? _ref[C.trace] : void 0 : void 0; + } + return ret; + }; + + exports.exceptionHandler = exceptionHandler = function(err, logger) { + var stack; + if (!logger) { + logger = console.error; + } + logger(err.stack); + stack = stackWalk(); + if (stack.length) { + logger("Iced 'stack' trace (w/ real line numbers):"); + return logger(stack.join("\n")); + } + }; + + exports.catchExceptions = function(logger) { + return typeof process !== "undefined" && process !== null ? process.on('uncaughtException', function(err) { + exceptionHandler(err, logger); + return process.exit(1); + }) : void 0; + }; + +}).call(this); + +}).call(this,_dereq_("g5I+bs")) +},{"./const":13,"g5I+bs":19}],17:[function(_dereq_,module,exports){ + +var indexOf = [].indexOf; + +module.exports = function(arr, obj){ + if (indexOf) return arr.indexOf(obj); + for (var i = 0; i < arr.length; ++i) { + if (arr[i] === obj) return i; + } + return -1; +}; +},{}],18:[function(_dereq_,module,exports){ +(function (process){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isAbsolute ? '/' : '') + path; +}; + +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; + +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +}; + + +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +}; + + +exports.basename = function(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + + +exports.extname = function(path) { + return splitPath(path)[3]; +}; + +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +}).call(this,_dereq_("g5I+bs")) +},{"g5I+bs":19}],19:[function(_dereq_,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; + +process.nextTick = (function () { + var canSetImmediate = typeof window !== 'undefined' + && window.setImmediate; + var canPost = typeof window !== 'undefined' + && window.postMessage && window.addEventListener + ; + + if (canSetImmediate) { + return function (f) { return window.setImmediate(f) }; + } + + if (canPost) { + var queue = []; + window.addEventListener('message', function (ev) { + var source = ev.source; + if ((source === window || source === null) && ev.data === 'process-tick') { + ev.stopPropagation(); + if (queue.length > 0) { + var fn = queue.shift(); + fn(); + } + } + }, true); + + return function nextTick(fn) { + queue.push(fn); + window.postMessage('process-tick', '*'); + }; + } + + return function nextTick(fn) { + setTimeout(fn, 0); + }; +})(); + +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +} + +// TODO(shtylman) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; + +},{}],20:[function(_dereq_,module,exports){ +var indexOf = _dereq_('indexof'); + +var Object_keys = function (obj) { + if (Object.keys) return Object.keys(obj) + else { + var res = []; + for (var key in obj) res.push(key) + return res; + } +}; + +var forEach = function (xs, fn) { + if (xs.forEach) return xs.forEach(fn) + else for (var i = 0; i < xs.length; i++) { + fn(xs[i], i, xs); + } +}; + +var defineProp = (function() { + try { + Object.defineProperty({}, '_', {}); + return function(obj, name, value) { + Object.defineProperty(obj, name, { + writable: true, + enumerable: false, + configurable: true, + value: value + }) + }; + } catch(e) { + return function(obj, name, value) { + obj[name] = value; + }; + } +}()); + +var globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function', +'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError', +'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError', +'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape', +'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape']; + +function Context() {} +Context.prototype = {}; + +var Script = exports.Script = function NodeScript (code) { + if (!(this instanceof Script)) return new Script(code); + this.code = code; +}; + +Script.prototype.runInContext = function (context) { + if (!(context instanceof Context)) { + throw new TypeError("needs a 'context' argument."); + } + + var iframe = document.createElement('iframe'); + if (!iframe.style) iframe.style = {}; + iframe.style.display = 'none'; + + document.body.appendChild(iframe); + + var win = iframe.contentWindow; + var wEval = win.eval, wExecScript = win.execScript; + + if (!wEval && wExecScript) { + // win.eval() magically appears when this is called in IE: + wExecScript.call(win, 'null'); + wEval = win.eval; + } + + forEach(Object_keys(context), function (key) { + win[key] = context[key]; + }); + forEach(globals, function (key) { + if (context[key]) { + win[key] = context[key]; + } + }); + + var winKeys = Object_keys(win); + + var res = wEval.call(win, this.code); + + forEach(Object_keys(win), function (key) { + // Avoid copying circular objects like `top` and `window` by only + // updating existing context properties or new properties in the `win` + // that was only introduced after the eval. + if (key in context || indexOf(winKeys, key) === -1) { + context[key] = win[key]; + } + }); + + forEach(globals, function (key) { + if (!(key in context)) { + defineProp(context, key, win[key]); + } + }); + + document.body.removeChild(iframe); + + return res; +}; + +Script.prototype.runInThisContext = function () { + return eval(this.code); // maybe... +}; + +Script.prototype.runInNewContext = function (context) { + var ctx = Script.createContext(context); + var res = this.runInContext(ctx); + + forEach(Object_keys(ctx), function (key) { + context[key] = ctx[key]; + }); + + return res; +}; + +forEach(Object_keys(Script.prototype), function (name) { + exports[name] = Script[name] = function (code) { + var s = Script(code); + return s[name].apply(s, [].slice.call(arguments, 1)); + }; +}); + +exports.createScript = function (code) { + return exports.Script(code); +}; + +exports.createContext = Script.createContext = function (context) { + var copy = new Context(); + if(typeof context === 'object') { + forEach(Object_keys(context), function (key) { + copy[key] = context[key]; + }); + } + return copy; +}; + +},{"indexof":17}]},{},[1]) +(1) +}); +if (typeof CoffeeScript !== 'undefined') { root.CoffeeScript = CoffeeScript; } +})(this); \ No newline at end of file