From 021d2e437630a60ef4ea53556c2f64cecb762b8c Mon Sep 17 00:00:00 2001 From: Simon Lydell Date: Sun, 31 Jan 2016 20:24:31 +0100 Subject: [PATCH] Refactor `Literal` into several subtypes Previously, the parser created `Literal` nodes for many things. This resulted in information loss. Instead of being able to check the node type, we had to use regexes to tell the different types of `Literal`s apart. That was a bit like parsing literals twice: Once in the lexer, and once (or more) in the compiler. It also caused problems, such as `` `this` `` and `this` being indistinguishable (fixes #2009). Instead returning `new Literal` in the grammar, subtypes of it are now returned instead, such as `NumberLiteral`, `StringLiteral` and `IdentifierLiteral`. `new Literal` by itself is only used to represent code chunks that fit no category. (While mentioning `NumberLiteral`, there's also `InfinityLiteral` now, which is a subtype of `NumberLiteral`.) `StringWithInterpolations` has been added as a subtype of `Parens`, and `RegexWithInterpolations` as a subtype of `Call`. This makes it easier for other programs to make use of CoffeeScript's "AST" (nodes). For example, it is now possible to distinguish between `"a #{b} c"` and `"a " + b + " c"`. Fixes #4192. `SuperCall` has been added as a subtype of `Call`. Note, though, that some information is still lost, especially in the lexer. For example, there is no way to distinguish a heredoc from a regular string, or a heregex without interpolations from a regular regex. Binary and octal number literals are indistinguishable from hexadecimal literals. After the new subtypes were added, they were taken advantage of, removing most regexes in nodes.coffee. `SIMPLENUM` (which matches non-hex integers) had to be kept, though, because such numbers need special handling in JavaScript (for example in `1..toString()`). An especially nice hack to get rid of was using `new String()` for the token value for reserved identifiers (to be able to set a property on them which could survive through the parser). Now it's a good old regular string. In range literals, slices, splices and for loop steps when number literals are involved, CoffeeScript can do some optimizations, such as precomputing the value of, say, `5 - 3` (outputting `2` instead of `5 - 3` literally). As a side bonus, this now also works with hexadecimal number literals, such as `0x02`. Finally, this also improves the output of `coffee --nodes`: # Before: $ bin/coffee -ne 'while true "#{a}" break' Block While Value Bool Block Value Parens Block Op + Value """" Value Parens Block Value "a" "break" # After: $ bin/coffee -ne 'while true "#{a}" break' Block While Value BooleanLiteral: true Block Value StringWithInterpolations Block Op + Value StringLiteral: "" Value Parens Block Value IdentifierLiteral: a StatementLiteral: break --- lib/coffee-script/coffee-script.js | 2 +- lib/coffee-script/grammar.js | 53 +-- lib/coffee-script/helpers.js | 7 +- lib/coffee-script/lexer.js | 25 +- lib/coffee-script/nodes.js | 541 ++++++++++++++++++----------- lib/coffee-script/parser.js | 246 +++++++------ lib/coffee-script/rewriter.js | 2 +- src/coffee-script.coffee | 2 +- src/grammar.coffee | 48 +-- src/lexer.coffee | 23 +- src/nodes.coffee | 376 +++++++++++--------- src/rewriter.coffee | 2 +- test/error_messages.coffee | 4 +- test/functions.coffee | 9 + test/numbers.coffee | 9 + 15 files changed, 778 insertions(+), 571 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index eafb50a1..d4865618 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -299,7 +299,7 @@ return 'end of input'; case errorTag !== 'INDENT' && errorTag !== 'OUTDENT': return 'indentation'; - case errorTag !== 'IDENTIFIER' && errorTag !== 'NUMBER' && errorTag !== 'STRING' && errorTag !== 'STRING_START' && errorTag !== 'REGEX' && errorTag !== 'REGEX_START': + case errorTag !== 'IDENTIFIER' && errorTag !== 'NUMBER' && errorTag !== 'INFINITY' && errorTag !== 'STRING' && errorTag !== 'STRING_START' && errorTag !== 'REGEX' && errorTag !== 'REGEX_START': return errorTag.replace(/_START$/, '').toLowerCase(); default: return helpers.nameWhitespaceCharacter(errorText); diff --git a/lib/coffee-script/grammar.js b/lib/coffee-script/grammar.js index 593e97cf..eacd16e0 100644 --- a/lib/coffee-script/grammar.js +++ b/lib/coffee-script/grammar.js @@ -44,7 +44,7 @@ Line: [o('Expression'), o('Statement'), o('YieldReturn')], Statement: [ o('Return'), o('Comment'), o('STATEMENT', function() { - return new Literal($1); + return new StatementLiteral($1); }) ], Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw'), o('Yield')], @@ -66,39 +66,39 @@ ], Identifier: [ o('IDENTIFIER', function() { - return new Literal($1); + return new IdentifierLiteral($1); }) ], AlphaNumeric: [ o('NUMBER', function() { - return new Literal($1); + return new NumberLiteral($1); + }), o('INFINITY', function() { + return new InfinityLiteral($1); }), o('String') ], String: [ o('STRING', function() { - return new Literal($1); + return new StringLiteral($1); }), o('STRING_START Body STRING_END', function() { - return new Parens($2); + return new StringWithInterpolations($2); }) ], Regex: [ o('REGEX', function() { - return new Literal($1); + return new RegexLiteral($1); }), o('REGEX_START Invocation REGEX_END', function() { - return $2; + return new RegexWithInterpolations($2.args); }) ], Literal: [ o('AlphaNumeric'), o('JS', function() { - return new Literal($1); - }), o('Regex'), o('DEBUGGER', function() { - return new Literal($1); - }), o('UNDEFINED', function() { - return new Undefined; + return new PassthroughLiteral($1); + }), o('Regex'), o('UNDEFINED', function() { + return new UndefinedLiteral; }), o('NULL', function() { - return new Null; + return new NullLiteral; }), o('BOOL', function() { - return new Bool($1); + return new BooleanLiteral($1); }) ], Assign: [ @@ -228,11 +228,11 @@ }), o('?. Identifier', function() { return new Access($2, 'soak'); }), o(':: Identifier', function() { - return [LOC(1)(new Access(new Literal('prototype'))), LOC(2)(new Access($2))]; + return [LOC(1)(new Access(new IdentifierLiteral('prototype'))), LOC(2)(new Access($2))]; }), o('?:: Identifier', function() { - return [LOC(1)(new Access(new Literal('prototype'), 'soak')), LOC(2)(new Access($2))]; + return [LOC(1)(new Access(new IdentifierLiteral('prototype'), 'soak')), LOC(2)(new Access($2))]; }), o('::', function() { - return new Access(new Literal('prototype')); + return new Access(new IdentifierLiteral('prototype')); }), o('Index') ], Index: [ @@ -293,10 +293,13 @@ return new Call($1, $3, $2); }), o('Invocation OptFuncExist Arguments', function() { return new Call($1, $3, $2); - }), o('SUPER', function() { - return new Call('super', [new Splat(new Literal('arguments'))]); + }), o('Super') + ], + Super: [ + o('SUPER', function() { + return new SuperCall; }), o('SUPER Arguments', function() { - return new Call('super', $2); + return new SuperCall($2); }) ], OptFuncExist: [ @@ -315,14 +318,14 @@ ], This: [ o('THIS', function() { - return new Value(new Literal('this')); + return new Value(new ThisLiteral); }), o('@', function() { - return new Value(new Literal('this')); + return new Value(new ThisLiteral); }) ], ThisProperty: [ o('@ Identifier', function() { - return new Value(LOC(1)(new Literal('this')), [LOC(2)(new Access($2))], 'this'); + return new Value(LOC(1)(new ThisLiteral), [LOC(2)(new Access($2))], 'this'); }) ], Array: [ @@ -441,9 +444,9 @@ ], Loop: [ o('LOOP Block', function() { - return new While(LOC(1)(new Literal('true'))).addBody($2); + return new While(LOC(1)(new BooleanLiteral('true'))).addBody($2); }), o('LOOP Expression', function() { - return new While(LOC(1)(new Literal('true'))).addBody(LOC(2)(Block.wrap([$2]))); + return new While(LOC(1)(new BooleanLiteral('true'))).addBody(LOC(2)(Block.wrap([$2]))); }) ], For: [ diff --git a/lib/coffee-script/helpers.js b/lib/coffee-script/helpers.js index 6e3d13bc..38c3f51e 100644 --- a/lib/coffee-script/helpers.js +++ b/lib/coffee-script/helpers.js @@ -84,9 +84,10 @@ }; exports.some = (ref = Array.prototype.some) != null ? ref : function(fn) { - var e, i, len1; - for (i = 0, len1 = this.length; i < len1; i++) { - e = this[i]; + var e, i, len1, ref1; + ref1 = this; + for (i = 0, len1 = ref1.length; i < len1; i++) { + e = ref1[i]; if (fn(e)) { return true; } diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index ed8b8b31..ee11bf1f 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -109,8 +109,6 @@ 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 + "'", { length: id.length @@ -137,6 +135,7 @@ return 'BOOL'; case 'break': case 'continue': + case 'debugger': return 'STATEMENT'; default: return tag; @@ -159,7 +158,7 @@ }; Lexer.prototype.numberToken = function() { - var binaryLiteral, lexedLength, match, number, octalLiteral; + var binaryLiteral, lexedLength, match, number, numberValue, octalLiteral, tag; if (!(match = NUMBER.exec(this.chunk))) { return 0; } @@ -183,12 +182,16 @@ }); } if (octalLiteral = /^0o([0-7]+)/.exec(number)) { - number = '0x' + parseInt(octalLiteral[1], 8).toString(16); + numberValue = parseInt(octalLiteral[1], 8); + number = "0x" + (numberValue.toString(16)); + } else if (binaryLiteral = /^0b([01]+)/.exec(number)) { + numberValue = parseInt(binaryLiteral[1], 2); + number = "0x" + (numberValue.toString(16)); + } else { + numberValue = parseFloat(number); } - if (binaryLiteral = /^0b([01]+)/.exec(number)) { - number = '0x' + parseInt(binaryLiteral[1], 2).toString(16); - } - this.token('NUMBER', number, 0, lexedLength); + tag = numberValue === Infinity ? 'INFINITY' : 'NUMBER'; + this.token(tag, number, 0, lexedLength); return lexedLength; }; @@ -504,7 +507,7 @@ tag = value; ref2 = this.tokens, prev = ref2[ref2.length - 1]; if (value === '=' && prev) { - if (!prev[1].reserved && (ref3 = prev[1], indexOf.call(JS_FORBIDDEN, ref3) >= 0)) { + if (prev.variable && (ref3 = prev[1], indexOf.call(JS_FORBIDDEN, ref3) >= 0)) { if (prev.origin) { prev = prev.origin; } @@ -920,6 +923,8 @@ exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; + exports.JS_FORBIDDEN = JS_FORBIDDEN; + BOM = 65279; IDENTIFIER = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/; @@ -1000,7 +1005,7 @@ CALLABLE = ['IDENTIFIER', ')', ']', '?', '@', 'THIS', 'SUPER']; - INDEXABLE = CALLABLE.concat(['NUMBER', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END', 'BOOL', 'NULL', 'UNDEFINED', '}', '::']); + INDEXABLE = CALLABLE.concat(['NUMBER', 'INFINITY', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END', 'BOOL', 'NULL', 'UNDEFINED', '}', '::']); NOT_REGEX = INDEXABLE.concat(['++', '--']); diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index b9462628..fb1635fc 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.10.0 (function() { - var Access, Arr, Assign, Base, Block, Call, Class, Code, CodeFragment, Comment, Existence, Expansion, Extends, For, HEXNUM, IDENTIFIER, IS_REGEX, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, NEGATE, NO, NUMBER, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, YieldReturn, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isComplexOrAssignable, isLiteralArguments, isLiteralThis, locationDataToString, merge, multident, parseNum, ref1, ref2, some, starts, throwSyntaxError, unfoldSoak, utility, + var Access, Arr, Assign, Base, Block, BooleanLiteral, Call, Class, Code, CodeFragment, Comment, Existence, Expansion, Extends, For, IdentifierLiteral, If, In, Index, InfinityLiteral, JS_FORBIDDEN, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, NEGATE, NO, NullLiteral, NumberLiteral, Obj, Op, Param, Parens, PassthroughLiteral, RESERVED, Range, RegexLiteral, RegexWithInterpolations, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, StatementLiteral, StringLiteral, StringWithInterpolations, SuperCall, Switch, TAB, THIS, ThisLiteral, Throw, Try, UTILITIES, UndefinedLiteral, Value, While, YES, YieldReturn, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isComplexOrAssignable, isLiteralArguments, isLiteralThis, locationDataToString, merge, multident, ref1, ref2, some, starts, throwSyntaxError, unfoldSoak, utility, extend1 = 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; }, 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; }, @@ -10,7 +10,7 @@ Scope = require('./scope').Scope; - ref1 = require('./lexer'), RESERVED = ref1.RESERVED, STRICT_PROSCRIBED = ref1.STRICT_PROSCRIBED; + ref1 = require('./lexer'), RESERVED = ref1.RESERVED, STRICT_PROSCRIBED = ref1.STRICT_PROSCRIBED, JS_FORBIDDEN = ref1.JS_FORBIDDEN; ref2 = require('./helpers'), compact = ref2.compact, flatten = ref2.flatten, extend = ref2.extend, merge = ref2.merge, del = ref2.del, starts = ref2.starts, ends = ref2.ends, some = ref2.some, addLocationDataFn = ref2.addLocationDataFn, locationDataToString = ref2.locationDataToString, throwSyntaxError = ref2.throwSyntaxError; @@ -95,14 +95,14 @@ func = new Code([], Block.wrap([this])); args = []; if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { - args = [new Literal('this')]; + args = [new ThisLiteral]; if (argumentsNode) { meth = 'apply'; - args.push(new Literal('arguments')); + args.push(new IdentifierLiteral('arguments')); } else { meth = 'call'; } - func = new Value(func, [new Access(new Literal(meth))]); + func = new Value(func, [new Access(new IdentifierLiteral(meth))]); } parts = (new Call(func, args)).compileNode(o); if (func.isGenerator || ((ref3 = func.base) != null ? ref3.isGenerator : void 0)) { @@ -116,7 +116,7 @@ var complex, ref, sub; complex = isComplex != null ? isComplex(this) : this.isComplex(); if (complex) { - ref = new Literal(o.scope.freeVariable('ref')); + ref = new IdentifierLiteral(o.scope.freeVariable('ref')); sub = new Assign(ref, this); if (level) { return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]]; @@ -240,6 +240,8 @@ Base.prototype.isAssignable = NO; + Base.prototype.isNumber = NO; + Base.prototype.unwrap = THIS; Base.prototype.unfoldSoak = NO; @@ -522,30 +524,111 @@ this.value = value1; } - 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 ref3; - return (ref3 = this.value) === 'break' || ref3 === 'continue' || ref3 === 'debugger'; - }; - Literal.prototype.isComplex = NO; Literal.prototype.assigns = function(name) { return name === this.value; }; - Literal.prototype.jumps = function(o) { + Literal.prototype.compileNode = function(o) { + return [this.makeCode(this.value)]; + }; + + Literal.prototype.toString = function() { + return " " + (this.isStatement() ? Literal.__super__.toString.apply(this, arguments) : this.constructor.name) + ": " + this.value; + }; + + return Literal; + + })(Base); + + exports.NumberLiteral = NumberLiteral = (function(superClass1) { + extend1(NumberLiteral, superClass1); + + function NumberLiteral() { + return NumberLiteral.__super__.constructor.apply(this, arguments); + } + + return NumberLiteral; + + })(Literal); + + exports.InfinityLiteral = InfinityLiteral = (function(superClass1) { + extend1(InfinityLiteral, superClass1); + + function InfinityLiteral() { + return InfinityLiteral.__super__.constructor.apply(this, arguments); + } + + InfinityLiteral.prototype.compileNode = function() { + return [this.makeCode('Infinity')]; + }; + + return InfinityLiteral; + + })(NumberLiteral); + + exports.StringLiteral = StringLiteral = (function(superClass1) { + extend1(StringLiteral, superClass1); + + function StringLiteral() { + return StringLiteral.__super__.constructor.apply(this, arguments); + } + + return StringLiteral; + + })(Literal); + + exports.RegexLiteral = RegexLiteral = (function(superClass1) { + extend1(RegexLiteral, superClass1); + + function RegexLiteral() { + return RegexLiteral.__super__.constructor.apply(this, arguments); + } + + return RegexLiteral; + + })(Literal); + + exports.PassthroughLiteral = PassthroughLiteral = (function(superClass1) { + extend1(PassthroughLiteral, superClass1); + + function PassthroughLiteral() { + return PassthroughLiteral.__super__.constructor.apply(this, arguments); + } + + return PassthroughLiteral; + + })(Literal); + + exports.IdentifierLiteral = IdentifierLiteral = (function(superClass1) { + extend1(IdentifierLiteral, superClass1); + + function IdentifierLiteral() { + return IdentifierLiteral.__super__.constructor.apply(this, arguments); + } + + IdentifierLiteral.prototype.isAssignable = function() { + var ref3; + return ref3 = this.value, indexOf.call(RESERVED, ref3) < 0; + }; + + return IdentifierLiteral; + + })(Literal); + + exports.StatementLiteral = StatementLiteral = (function(superClass1) { + extend1(StatementLiteral, superClass1); + + function StatementLiteral() { + return StatementLiteral.__super__.constructor.apply(this, arguments); + } + + StatementLiteral.prototype.isStatement = YES; + + StatementLiteral.prototype.makeReturn = THIS; + + StatementLiteral.prototype.jumps = function(o) { if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { return this; } @@ -554,77 +637,67 @@ } }; - Literal.prototype.compileNode = function(o) { - var answer, code, ref3; - code = this.value === 'this' ? ((ref3 = o.scope.method) != null ? ref3.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)]; + StatementLiteral.prototype.compileNode = function(o) { + return [this.makeCode("" + this.tab + this.value + ";")]; }; - Literal.prototype.toString = function() { - return ' "' + this.value + '"'; - }; + return StatementLiteral; - return Literal; + })(Literal); - })(Base); + exports.ThisLiteral = ThisLiteral = (function(superClass1) { + extend1(ThisLiteral, superClass1); - exports.Undefined = (function(superClass1) { - extend1(Undefined, superClass1); - - function Undefined() { - return Undefined.__super__.constructor.apply(this, arguments); + function ThisLiteral() { + ThisLiteral.__super__.constructor.call(this, 'this'); } - Undefined.prototype.isAssignable = NO; + ThisLiteral.prototype.compileNode = function(o) { + var code, ref3; + code = ((ref3 = o.scope.method) != null ? ref3.bound : void 0) ? o.scope.method.context : this.value; + return [this.makeCode(code)]; + }; - Undefined.prototype.isComplex = NO; + return ThisLiteral; - Undefined.prototype.compileNode = function(o) { + })(Literal); + + exports.UndefinedLiteral = UndefinedLiteral = (function(superClass1) { + extend1(UndefinedLiteral, superClass1); + + function UndefinedLiteral() { + UndefinedLiteral.__super__.constructor.call(this, 'undefined'); + } + + UndefinedLiteral.prototype.compileNode = function(o) { return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')]; }; - return Undefined; + return UndefinedLiteral; - })(Base); + })(Literal); - exports.Null = (function(superClass1) { - extend1(Null, superClass1); + exports.NullLiteral = NullLiteral = (function(superClass1) { + extend1(NullLiteral, superClass1); - function Null() { - return Null.__super__.constructor.apply(this, arguments); + function NullLiteral() { + NullLiteral.__super__.constructor.call(this, 'null'); } - Null.prototype.isAssignable = NO; + return NullLiteral; - Null.prototype.isComplex = NO; + })(Literal); - Null.prototype.compileNode = function() { - return [this.makeCode("null")]; - }; + exports.BooleanLiteral = BooleanLiteral = (function(superClass1) { + extend1(BooleanLiteral, superClass1); - return Null; - - })(Base); - - exports.Bool = (function(superClass1) { - extend1(Bool, superClass1); - - Bool.prototype.isAssignable = NO; - - Bool.prototype.isComplex = NO; - - Bool.prototype.compileNode = function() { - return [this.makeCode(this.val)]; - }; - - function Bool(val1) { - this.val = val1; + function BooleanLiteral() { + return BooleanLiteral.__super__.constructor.apply(this, arguments); } - return Bool; + return BooleanLiteral; - })(Base); + })(Literal); exports.Return = Return = (function(superClass1) { extend1(Return, superClass1); @@ -730,16 +803,28 @@ return this.hasProperties() || this.base.isAssignable(); }; - Value.prototype.isSimpleNumber = function() { - return this.bareLiteral(Literal) && SIMPLENUM.test(this.base.value); + Value.prototype.isNumber = function() { + return this.bareLiteral(NumberLiteral); }; Value.prototype.isString = function() { - return this.bareLiteral(Literal) && IS_STRING.test(this.base.value); + return this.bareLiteral(StringLiteral); }; Value.prototype.isRegex = function() { - return this.bareLiteral(Literal) && IS_REGEX.test(this.base.value); + return this.bareLiteral(RegexLiteral); + }; + + Value.prototype.isUndefined = function() { + return this.bareLiteral(UndefinedLiteral); + }; + + Value.prototype.isNull = function() { + return this.bareLiteral(NullLiteral); + }; + + Value.prototype.isBoolean = function() { + return this.bareLiteral(BooleanLiteral); }; Value.prototype.isAtomic = function() { @@ -755,7 +840,7 @@ }; Value.prototype.isNotCallable = function() { - return this.isSimpleNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject(); + return this.isNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject() || this.isUndefined() || this.isNull() || this.isBoolean(); }; Value.prototype.isStatement = function(o) { @@ -804,14 +889,14 @@ } base = new Value(this.base, this.properties.slice(0, -1)); if (base.isComplex()) { - bref = new Literal(o.scope.freeVariable('base')); + bref = new IdentifierLiteral(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')); + nref = new IdentifierLiteral(o.scope.freeVariable('name')); name = new Index(new Assign(nref, name.index)); nref = new Index(nref); } @@ -823,7 +908,7 @@ 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))) { + if (props.length && SIMPLENUM.test(fragmentsToText(fragments))) { fragments.push(this.makeCode('.')); } for (j = 0, len1 = props.length; j < len1; j++) { @@ -851,7 +936,7 @@ 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')); + ref = new IdentifierLiteral(o.scope.freeVariable('ref')); fst = new Parens(new Assign(ref, fst)); snd.base = ref; } @@ -896,14 +981,13 @@ exports.Call = Call = (function(superClass1) { extend1(Call, superClass1); - function Call(variable, args1, soak) { + function Call(variable1, args1, soak) { + this.variable = variable1; this.args = args1 != null ? args1 : []; this.soak = soak; 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"); + if (this.variable instanceof Value && this.variable.isNotCallable()) { + this.variable.error("literal is not a function"); } } @@ -920,53 +1004,17 @@ return this; }; - Call.prototype.superReference = function(o) { - var accesses, base, bref, klass, method, name, nref, variable; - method = o.scope.namedMethod(); - if (method != null ? method.klass : void 0) { - klass = method.klass, name = method.name, variable = method.variable; - if (klass.isComplex()) { - bref = new Literal(o.scope.parent.freeVariable('base')); - base = new Value(new Parens(new Assign(bref, klass))); - variable.base = base; - variable.properties.splice(0, klass.properties.length); - } - if (name.isComplex() || (name instanceof Index && name.index.isAssignable())) { - nref = new Literal(o.scope.parent.freeVariable('name')); - name = new Index(new Assign(nref, name.index)); - variable.properties.pop(); - variable.properties.push(name); - } - accesses = [new Access(new Literal('__super__'))]; - if (method["static"]) { - accesses.push(new Access(new Literal('constructor'))); - } - accesses.push(nref != null ? new Index(nref) : name); - return (new Value(bref != null ? bref : 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; - method = o.scope.method; - return (method && !method.klass && method.context) || "this"; - }; - Call.prototype.unfoldSoak = function(o) { var call, ifn, j, left, len1, list, ref3, ref4, rite; if (this.soak) { - if (this.variable) { + if (this instanceof SuperCall) { + left = new Literal(this.superReference(o)); + rite = new Value(left); + } else { if (ifn = unfoldSoak(o, this, 'variable')) { return ifn; } ref3 = new Value(this.variable).cacheReference(o), left = ref3[0], rite = ref3[1]; - } else { - left = new Literal(this.superReference(o)); - rite = new Value(left); } rite = new Call(rite, this.args); rite.isNew = this.isNew; @@ -1025,7 +1073,7 @@ compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST)); } fragments = []; - if (this.isSuper) { + if (this instanceof SuperCall) { preface = this.superReference(o) + (".call(" + (this.superThis(o))); if (compiledArgs.length) { preface += ", "; @@ -1045,7 +1093,7 @@ Call.prototype.compileSplat = function(o, splatArgs) { var answer, base, fun, idt, name, ref; - if (this.isSuper) { + if (this instanceof SuperCall) { return [].concat(this.makeCode((this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")")); } if (this.isNew) { @@ -1077,6 +1125,68 @@ })(Base); + exports.SuperCall = SuperCall = (function(superClass1) { + extend1(SuperCall, superClass1); + + function SuperCall(args) { + SuperCall.__super__.constructor.call(this, null, args != null ? args : [new Splat(new IdentifierLiteral('arguments'))]); + this.isBare = args != null; + } + + SuperCall.prototype.superReference = function(o) { + var accesses, base, bref, klass, method, name, nref, variable; + method = o.scope.namedMethod(); + if (method != null ? method.klass : void 0) { + klass = method.klass, name = method.name, variable = method.variable; + if (klass.isComplex()) { + bref = new IdentifierLiteral(o.scope.parent.freeVariable('base')); + base = new Value(new Parens(new Assign(bref, klass))); + variable.base = base; + variable.properties.splice(0, klass.properties.length); + } + if (name.isComplex() || (name instanceof Index && name.index.isAssignable())) { + nref = new IdentifierLiteral(o.scope.parent.freeVariable('name')); + name = new Index(new Assign(nref, name.index)); + variable.properties.pop(); + variable.properties.push(name); + } + accesses = [new Access(new IdentifierLiteral('__super__'))]; + if (method["static"]) { + accesses.push(new Access(new IdentifierLiteral('constructor'))); + } + accesses.push(nref != null ? new Index(nref) : name); + return (new Value(bref != null ? bref : 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.'); + } + }; + + SuperCall.prototype.superThis = function(o) { + var method; + method = o.scope.method; + return (method && !method.klass && method.context) || "this"; + }; + + return SuperCall; + + })(Call); + + exports.RegexWithInterpolations = RegexWithInterpolations = (function(superClass1) { + extend1(RegexWithInterpolations, superClass1); + + function RegexWithInterpolations(args) { + if (args == null) { + args = []; + } + RegexWithInterpolations.__super__.constructor.call(this, new Value(new IdentifierLiteral('RegExp')), args, false); + } + + return RegexWithInterpolations; + + })(Call); + exports.Extends = Extends = (function(superClass1) { extend1(Extends, superClass1); @@ -1107,15 +1217,18 @@ Access.prototype.children = ['name']; Access.prototype.compileToFragments = function(o) { - var name; + var name, node, ref3; name = this.name.compileToFragments(o); - if (IDENTIFIER.test(fragmentsToText(name))) { - name.unshift(this.makeCode(".")); + node = this.name.unwrap(); + if (node instanceof IdentifierLiteral) { + if (ref3 = node.value, indexOf.call(JS_FORBIDDEN, ref3) >= 0) { + return [this.makeCode('["')].concat(slice.call(name), [this.makeCode('"]')]); + } else { + return [this.makeCode('.')].concat(slice.call(name)); + } } else { - name.unshift(this.makeCode("[")); - name.push(this.makeCode("]")); + return [this.makeCode('[')].concat(slice.call(name), [this.makeCode(']')]); } - return name; }; Access.prototype.isComplex = NO; @@ -1158,7 +1271,7 @@ } Range.prototype.compileVariables = function(o) { - var isComplex, ref3, ref4, ref5, ref6, step; + var isComplex, ref3, ref4, ref5, step; o = merge(o, { top: true }); @@ -1168,10 +1281,9 @@ if (step = del(o, 'step')) { ref5 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST, isComplex)), this.step = ref5[0], this.stepVar = ref5[1]; } - ref6 = [this.fromVar.match(NUMBER), this.toVar.match(NUMBER)], this.fromNum = ref6[0], this.toNum = ref6[1]; - if (this.stepVar) { - return this.stepNum = this.stepVar.match(NUMBER); - } + this.fromNum = this.from.isNumber() ? Number(this.fromVar) : null; + this.toNum = this.to.isNumber() ? Number(this.toVar) : null; + return this.stepNum = (step != null ? step.isNumber() : void 0) ? Number(this.stepVar) : null; }; Range.prototype.compileNode = function(o) { @@ -1182,7 +1294,7 @@ if (!o.index) { return this.compileArray(o); } - known = this.fromNum && this.toNum; + known = (this.fromNum != null) && (this.toNum != null); idx = del(o, 'index'); idxName = del(o, 'name'); namedIndex = idxName && idxName !== idx; @@ -1194,7 +1306,7 @@ varPart += ", " + this.step; } ref3 = [idx + " <" + this.equals, idx + " >" + this.equals], lt = ref3[0], gt = ref3[1]; - condPart = this.stepNum ? parseNum(this.stepNum[0]) > 0 ? lt + " " + this.toVar : gt + " " + this.toVar : known ? ((ref4 = [parseNum(this.fromNum[0]), parseNum(this.toNum[0])], from = ref4[0], to = ref4[1], ref4), from <= to ? lt + " " + to : gt + " " + to) : (cond = this.stepVar ? this.stepVar + " > 0" : this.fromVar + " <= " + this.toVar, cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); + condPart = this.stepNum != null ? this.stepNum > 0 ? lt + " " + this.toVar : gt + " " + this.toVar : known ? ((ref4 = [this.fromNum, this.toNum], from = ref4[0], to = ref4[1], ref4), 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; @@ -1206,11 +1318,12 @@ }; Range.prototype.compileArray = function(o) { - var args, body, cond, hasArgs, i, idt, j, post, pre, range, ref3, ref4, result, results, vars; - if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { + var args, body, cond, hasArgs, i, idt, j, known, post, pre, range, ref3, ref4, result, results, vars; + known = (this.fromNum != null) && (this.toNum != null); + if (known && Math.abs(this.fromNum - this.toNum) <= 20) { range = (function() { results = []; - for (var j = ref3 = +this.fromNum, ref4 = +this.toNum; ref3 <= ref4 ? j <= ref4 : j >= ref4; ref3 <= ref4 ? j++ : j--){ results.push(j); } + for (var j = ref3 = this.fromNum, ref4 = this.toNum; ref3 <= ref4 ? j <= ref4 : j >= ref4; ref3 <= ref4 ? j++ : j--){ results.push(j); } return results; }).apply(this); if (this.exclusive) { @@ -1224,7 +1337,7 @@ }); result = o.scope.freeVariable('results'); pre = "\n" + idt + result + " = [];"; - if (this.fromNum && this.toNum) { + if (known) { o.index = i; body = fragmentsToText(this.compileNode(o)); } else { @@ -1264,7 +1377,7 @@ 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")); + toStr = ', ' + (this.range.exclusive ? compiledText : to.isNumber() ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9")); } } return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")]; @@ -1347,7 +1460,7 @@ } else { ref3 = prop.base.cache(o), key = ref3[0], value = ref3[1]; } - prop = new Assign(new Value(new Literal(oref), [new Access(key)]), value); + prop = new Assign(new Value(new IdentifierLiteral(oref), [new Access(key)]), value); } } if (indent) { @@ -1464,17 +1577,24 @@ Class.prototype.children = ['variable', 'parent', 'body']; + Class.prototype.defaultClassVariableName = '_Class'; + Class.prototype.determineName = function() { - var decl, ref3, tail; + var name, node, ref3, tail; if (!this.variable) { - return null; + return this.defaultClassVariableName; } ref3 = this.variable.properties, tail = ref3[ref3.length - 1]; - decl = tail ? 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); + node = tail ? tail instanceof Access && tail.name : this.variable.base; + if (!(node instanceof IdentifierLiteral)) { + return this.defaultClassVariableName; + } + name = node.value; + if (indexOf.call(JS_FORBIDDEN, name) >= 0) { + return "_" + name; + } else { + return name; } - return decl && (decl = IDENTIFIER.test(decl) && decl); }; Class.prototype.setContext = function(name) { @@ -1482,7 +1602,7 @@ if (node.classBody) { return false; } - if (node instanceof Literal && node.value === 'this') { + if (node instanceof ThisLiteral) { return node.value = name; } else if (node instanceof Code) { if (node.bound) { @@ -1497,7 +1617,7 @@ ref3 = this.boundFuncs; for (j = 0, len1 = ref3.length; j < len1; j++) { bvar = ref3[j]; - lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); + lhs = (new Value(new ThisLiteral, [new Access(bvar)])).compile(o); this.ctor.body.unshift(new Literal(lhs + " = " + (utility('bind', o)) + "(" + lhs + ", this)")); } }; @@ -1524,14 +1644,14 @@ assign = this.ctor = func; } else { this.externalCtor = o.classScope.freeVariable('class'); - assign = new Assign(new Literal(this.externalCtor), func); + assign = new Assign(new IdentifierLiteral(this.externalCtor), func); } } else { if (assign.variable["this"]) { func["static"] = true; } else { acc = base.isComplex() ? new Index(base) : new Access(base); - assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), acc]); + assign.variable = new Value(new IdentifierLiteral(name), [new Access(new IdentifierLiteral('prototype')), acc]); if (func instanceof Code && func.bound) { this.boundFuncs.push(base); func.bound = false; @@ -1606,11 +1726,8 @@ 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); + name = this.determineName(); + lname = new IdentifierLiteral(name); func = new Code([], Block.wrap([this.body])); args = []; o.classScope = func.makeScope(o.scope); @@ -1622,7 +1739,7 @@ this.body.spaced = true; this.body.expressions.push(lname); if (this.parent) { - superClass = new Literal(o.classScope.freeVariable('superClass', { + superClass = new IdentifierLiteral(o.classScope.freeVariable('superClass', { reserve: false })); this.body.expressions.unshift(new Extends(lname, superClass)); @@ -1674,7 +1791,7 @@ }; Assign.prototype.compileNode = function(o) { - var answer, compiledName, isValue, j, name, properties, prototype, ref3, ref4, ref5, ref6, ref7, val, varBase; + var answer, compiledName, isValue, j, name, properties, prototype, ref3, ref4, ref5, ref6, ref7, ref8, val, varBase; if (isValue = this.variable instanceof Value) { if (this.variable.isArray() || this.variable.isObject()) { return this.compilePatternMatch(o); @@ -1722,6 +1839,10 @@ } compiledName = this.variable.compileToFragments(o, LEVEL_LIST); if (this.context === 'object') { + if (ref8 = fragmentsToText(compiledName), indexOf.call(JS_FORBIDDEN, ref8) >= 0) { + compiledName.unshift(this.makeCode('"')); + compiledName.push(this.makeCode('"')); + } return compiledName.concat(this.makeCode(": "), val); } answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val); @@ -1763,9 +1884,9 @@ defaultValue = obj.value; obj = obj.variable; } - idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); + idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new NumberLiteral(0); } - acc = IDENTIFIER.test(idx.unwrap().value); + acc = idx.unwrap() instanceof IdentifierLiteral; value = new Value(value); value.properties.push(new (acc ? Access : Index)(idx)); if (ref5 = obj.unwrap().value, indexOf.call(RESERVED, ref5) >= 0) { @@ -1782,7 +1903,7 @@ vvarText = fragmentsToText(vvar); assigns = []; expandedIdx = false; - if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) { + if (!(value.unwrap() instanceof IdentifierLiteral) || this.variable.assigns(vvarText)) { assigns.push([this.makeCode((ref = o.scope.freeVariable('ref')) + " = ")].concat(slice.call(vvar))); vvar = [this.makeCode(ref)]; vvarText = ref; @@ -1837,7 +1958,7 @@ idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(expandedIdx || idx); } name = obj.unwrap().value; - acc = IDENTIFIER.test(idx.unwrap().value); + acc = idx.unwrap() instanceof IdentifierLiteral; val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]); if (defaultValue) { val = new Op('?', val, defaultValue); @@ -1865,7 +1986,7 @@ Assign.prototype.compileConditional = function(o) { var fragments, left, ref3, right; ref3 = this.variable.cacheReference(o), left = ref3[0], right = ref3[1]; - if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { + if (!left.properties.length && left.base instanceof Literal && !(left.base instanceof ThisLiteral) && !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) { @@ -1899,7 +2020,7 @@ fromDecl = fromRef = '0'; } if (to) { - if (from instanceof Value && from.isSimpleNumber() && to instanceof Value && to.isSimpleNumber()) { + if ((from != null ? from.isNumber() : void 0) && to.isNumber()) { to = to.compile(o) - fromRef; if (!exclusive) { to += 1; @@ -1957,8 +2078,8 @@ } 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')]); + wrapper = new Code([new Param(new IdentifierLiteral(this.context))], new Block([this])); + boundfunc = new Call(wrapper, [new ThisLiteral]); boundfunc.updateLocationDataIfMissing(this.locationData); return boundfunc.compileNode(o); } @@ -1998,7 +2119,7 @@ results.push(p.asReference(o)); } return results; - }).call(this))), new Value(new Literal('arguments'))); + }).call(this))), new Value(new IdentifierLiteral('arguments'))); break; } ref7 = this.params; @@ -2129,12 +2250,12 @@ node = this.name; if (node["this"]) { name = node.properties[0].name.value; - if (name.reserved) { + if (indexOf.call(JS_FORBIDDEN, name) >= 0) { name = "_" + name; } - node = new Literal(o.scope.freeVariable(name)); + node = new IdentifierLiteral(o.scope.freeVariable(name)); } else if (node.isComplex()) { - node = new Literal(o.scope.freeVariable('arg')); + node = new IdentifierLiteral(o.scope.freeVariable('arg')); } node = new Value(node); if (this.splat) { @@ -2347,7 +2468,7 @@ } if (this.guard) { if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new StatementLiteral("continue"))); } else { if (this.guard) { body = Block.wrap([new If(this.guard, body)]); @@ -2408,7 +2529,10 @@ Op.prototype.children = ['first', 'second']; - Op.prototype.isSimpleNumber = NO; + Op.prototype.isNumber = function() { + var ref3; + return this.isUnary() && ((ref3 = this.operator) === '+' || ref3 === '-') && this.first instanceof Value && this.first.isNumber(); + }; Op.prototype.isYield = function() { var ref3; @@ -2420,8 +2544,7 @@ }; Op.prototype.isComplex = function() { - var ref3; - return !(this.isUnary() && ((ref3 = this.operator) === '+' || ref3 === '-') && this.first instanceof Value && this.first.isSimpleNumber()); + return !this.isNumber(); }; Op.prototype.isChainable = function() { @@ -2540,7 +2663,7 @@ Op.prototype.compileExistence = function(o) { var fst, ref; if (this.first.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); + ref = new IdentifierLiteral(o.scope.freeVariable('ref')); fst = new Parens(new Assign(ref, this.first)); } else { fst = this.first; @@ -2606,13 +2729,13 @@ Op.prototype.compilePower = function(o) { var pow; - pow = new Value(new Literal('Math'), [new Access(new Literal('pow'))]); + pow = new Value(new IdentifierLiteral('Math'), [new Access(new IdentifierLiteral('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'))]); + floor = new Value(new IdentifierLiteral('Math'), [new Access(new IdentifierLiteral('floor'))]); div = new Op('/', this.first, this.second); return new Call(floor, [div]).compileToFragments(o); }; @@ -2740,7 +2863,7 @@ tryPart = this.attempt.compileToFragments(o, LEVEL_TOP); catchPart = this.recovery ? (generatedErrorVariableName = o.scope.freeVariable('error', { reserve: false - }), placeholder = new Literal(generatedErrorVariableName), 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) ? (generatedErrorVariableName = o.scope.freeVariable('error', { + }), placeholder = new IdentifierLiteral(generatedErrorVariableName), 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) ? (generatedErrorVariableName = o.scope.freeVariable('error', { reserve: false }), [this.makeCode(" catch (" + generatedErrorVariableName + ") {}")]) : []; ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : []; @@ -2789,7 +2912,7 @@ var cmp, cnj, code, ref3; this.expression.front = this.front; code = this.expression.compile(o, LEVEL_OP); - if (IDENTIFIER.test(code) && !o.scope.check(code)) { + if (this.expression.unwrap() instanceof IdentifierLiteral && !o.scope.check(code)) { ref3 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = ref3[0], cnj = ref3[1]; code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; } else { @@ -2839,6 +2962,17 @@ })(Base); + exports.StringWithInterpolations = StringWithInterpolations = (function(superClass1) { + extend1(StringWithInterpolations, superClass1); + + function StringWithInterpolations() { + return StringWithInterpolations.__super__.constructor.apply(this, arguments); + } + + return StringWithInterpolations; + + })(Parens); + exports.For = For = (function(superClass1) { extend1(For, superClass1); @@ -2899,7 +3033,9 @@ kvarAssign = kvar !== ivar ? kvar + " = " : ""; if (this.step && !this.range) { ref4 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST, isComplexOrAssignable)), step = ref4[0], stepVar = ref4[1]; - stepNum = stepVar.match(NUMBER); + if (this.step.isNumber()) { + stepNum = Number(stepVar); + } } if (this.pattern) { name = ivar; @@ -2917,7 +3053,7 @@ })); } else { svar = this.source.compile(o, LEVEL_LIST); - if ((name || this.own) && !IDENTIFIER.test(svar)) { + if ((name || this.own) && !(this.source.unwrap() instanceof IdentifierLiteral)) { defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; svar = ref; } @@ -2928,7 +3064,8 @@ if (step !== stepVar) { defPart += "" + this.tab + step + ";\n"; } - if (!(this.step && stepNum && (down = parseNum(stepNum[0]) < 0))) { + down = stepNum < 0; + if (!(this.step && (stepNum != null) && down)) { lvar = scope.freeVariable('len'); } declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; @@ -2936,7 +3073,7 @@ compare = ivar + " < " + lvar; compareDown = ivar + " >= 0"; if (this.step) { - if (stepNum) { + if (stepNum != null) { if (down) { compare = compareDown; declare = declareDown; @@ -2959,7 +3096,7 @@ } if (this.guard) { if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new StatementLiteral("continue"))); } else { if (this.guard) { body = Block.wrap([new If(this.guard, body)]); @@ -3003,7 +3140,7 @@ continue; } fn = ((ref8 = val.base) != null ? ref8.unwrapAll() : void 0) || val; - ref = new Literal(o.scope.freeVariable('fn')); + ref = new IdentifierLiteral(o.scope.freeVariable('fn')); base = new Value(ref); if (val.base) { ref9 = [base, val], val.base = ref9[0], base = ref9[1]; @@ -3264,18 +3401,8 @@ TAB = ' '; - IDENTIFIER = /^(?!\d)[$\w\x7f-\uffff]+$/; - SIMPLENUM = /^[+-]?\d+$/; - HEXNUM = /^[+-]?0x[\da-f]+/i; - - NUMBER = /^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i; - - IS_STRING = /^['"]/; - - IS_REGEX = /^\//; - utility = function(name, o) { var ref, root; root = o.scope.root; @@ -3293,22 +3420,12 @@ 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); + return (node instanceof ThisLiteral && !node.asKey) || (node instanceof Code && node.bound) || node instanceof SuperCall; }; isComplexOrAssignable = function(node) { diff --git a/lib/coffee-script/parser.js b/lib/coffee-script/parser.js index 3255dd09..75037240 100755 --- a/lib/coffee-script/parser.js +++ b/lib/coffee-script/parser.js @@ -72,12 +72,12 @@ } */ var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,22],$V1=[1,23],$V2=[1,77],$V3=[1,73],$V4=[1,78],$V5=[1,79],$V6=[1,75],$V7=[1,76],$V8=[1,52],$V9=[1,54],$Va=[1,55],$Vb=[1,56],$Vc=[1,57],$Vd=[1,47],$Ve=[1,48],$Vf=[1,30],$Vg=[1,62],$Vh=[1,63],$Vi=[1,72],$Vj=[1,45],$Vk=[1,29],$Vl=[1,60],$Vm=[1,61],$Vn=[1,59],$Vo=[1,40],$Vp=[1,46],$Vq=[1,58],$Vr=[1,67],$Vs=[1,68],$Vt=[1,69],$Vu=[1,70],$Vv=[1,44],$Vw=[1,66],$Vx=[1,32],$Vy=[1,33],$Vz=[1,34],$VA=[1,35],$VB=[1,36],$VC=[1,37],$VD=[1,80],$VE=[1,6,30,38,113],$VF=[1,90],$VG=[1,83],$VH=[1,82],$VI=[1,81],$VJ=[1,84],$VK=[1,85],$VL=[1,86],$VM=[1,87],$VN=[1,88],$VO=[1,89],$VP=[1,93],$VQ=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$VR=[1,99],$VS=[1,100],$VT=[1,101],$VU=[1,102],$VV=[1,104],$VW=[1,105],$VX=[1,98],$VY=[2,122],$VZ=[1,6,30,38,113,115,117,121,137],$V_=[2,25],$V$=[1,112],$V01=[1,110],$V11=[1,6,29,30,38,60,65,68,77,78,79,80,82,84,85,89,95,96,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$V21=[2,89],$V31=[1,115],$V41=[2,68],$V51=[1,119],$V61=[1,124],$V71=[1,125],$V81=[1,127],$V91=[1,6,29,30,38,50,60,65,68,77,78,79,80,82,84,85,89,95,96,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$Va1=[2,86],$Vb1=[1,6,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$Vc1=[2,58],$Vd1=[1,158],$Ve1=[1,160],$Vf1=[1,155],$Vg1=[1,6,29,30,38,50,60,65,68,77,78,79,80,82,84,85,89,91,95,96,97,102,104,113,115,116,117,121,122,137,140,141,142,143,144,145,146,147,148,149,150,151],$Vh1=[2,105],$Vi1=[1,6,29,30,38,53,60,65,68,77,78,79,80,82,84,85,89,95,96,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$Vj1=[1,6,29,30,38,50,53,60,65,68,77,78,79,80,82,84,85,89,91,95,96,97,102,104,113,115,116,117,121,122,128,129,137,140,141,142,143,144,145,146,147,148,149,150,151],$Vk1=[1,210],$Vl1=[1,209],$Vm1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137],$Vn1=[1,6,29,30,38,42,60,65,68,77,78,79,80,82,84,85,89,95,96,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$Vo1=[2,66],$Vp1=[1,222],$Vq1=[6,29,30,60,65],$Vr1=[6,29,30,50,60,65,68],$Vs1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,140,141,145,147,148,149,150],$Vt1=[77,78,79,80,82,85,95,96],$Vu1=[1,240],$Vv1=[2,57],$Vw1=[2,143],$Vx1=[1,6,29,30,38,50,60,65,68,77,78,79,80,82,84,85,89,95,96,97,102,104,113,115,116,117,121,122,128,129,137,140,141,144,145,146,147,148,149,150],$Vy1=[1,249],$Vz1=[6,29,30,65,97,102],$VA1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,122,137],$VB1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,116,122,137],$VC1=[128,129],$VD1=[65,128,129],$VE1=[1,260],$VF1=[6,29,30,65,89],$VG1=[6,29,30,53,65,89],$VH1=[6,29,30,50,53,65,89],$VI1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,140,141,147,148,149,150],$VJ1=[12,26,32,34,36,37,40,41,44,45,46,47,48,56,57,58,62,63,84,87,90,94,99,100,101,107,111,112,115,117,119,121,130,136,138,139,140,141,142,143],$VK1=[2,132],$VL1=[6,29,30],$VM1=[2,67],$VN1=[1,274],$VO1=[1,275],$VP1=[1,6,29,30,38,60,65,68,84,89,97,102,104,109,110,113,115,116,117,121,122,132,134,137,140,141,144,145,146,147,148,149,150],$VQ1=[30,132,134],$VR1=[1,6,30,38,60,65,68,84,89,97,102,104,113,116,122,137],$VS1=[2,81],$VT1=[1,297],$VU1=[1,298],$VV1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,132,137,140,141,144,145,146,147,148,149,150],$VW1=[1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,117,121,122,137],$VX1=[1,309],$VY1=[1,310],$VZ1=[6,29,30,65],$V_1=[1,6,29,30,38,60,65,68,84,89,97,102,104,109,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],$V$1=[29,65]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,22],$V1=[1,23],$V2=[1,78],$V3=[1,73],$V4=[1,74],$V5=[1,79],$V6=[1,80],$V7=[1,76],$V8=[1,77],$V9=[1,52],$Va=[1,54],$Vb=[1,55],$Vc=[1,56],$Vd=[1,47],$Ve=[1,48],$Vf=[1,30],$Vg=[1,62],$Vh=[1,63],$Vi=[1,72],$Vj=[1,45],$Vk=[1,61],$Vl=[1,59],$Vm=[1,60],$Vn=[1,58],$Vo=[1,40],$Vp=[1,46],$Vq=[1,57],$Vr=[1,67],$Vs=[1,68],$Vt=[1,69],$Vu=[1,70],$Vv=[1,44],$Vw=[1,66],$Vx=[1,32],$Vy=[1,33],$Vz=[1,34],$VA=[1,35],$VB=[1,36],$VC=[1,37],$VD=[1,81],$VE=[1,6,30,39,114],$VF=[1,91],$VG=[1,84],$VH=[1,83],$VI=[1,82],$VJ=[1,85],$VK=[1,86],$VL=[1,87],$VM=[1,88],$VN=[1,89],$VO=[1,90],$VP=[1,94],$VQ=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$VR=[1,100],$VS=[1,101],$VT=[1,102],$VU=[1,103],$VV=[1,105],$VW=[1,106],$VX=[1,99],$VY=[2,123],$VZ=[1,6,30,39,114,116,118,122,138],$V_=[2,25],$V$=[1,113],$V01=[1,111],$V11=[1,6,29,30,39,60,65,68,77,78,79,80,82,84,85,89,96,97,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$V21=[2,89],$V31=[1,6,29,30,39,43,60,65,68,77,78,79,80,82,84,85,89,96,97,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$V41=[2,68],$V51=[1,118],$V61=[1,123],$V71=[1,124],$V81=[1,126],$V91=[1,6,29,30,39,50,60,65,68,77,78,79,80,82,84,85,89,96,97,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$Va1=[2,86],$Vb1=[1,6,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$Vc1=[2,58],$Vd1=[1,157],$Ve1=[1,159],$Vf1=[1,154],$Vg1=[1,162],$Vh1=[1,6,29,30,39,50,60,65,68,77,78,79,80,82,84,85,89,91,96,97,98,103,105,114,116,117,118,122,123,138,141,142,143,144,145,146,147,148,149,150,151,152],$Vi1=[2,105],$Vj1=[1,6,29,30,39,53,60,65,68,77,78,79,80,82,84,85,89,96,97,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$Vk1=[1,6,29,30,39,50,53,60,65,68,77,78,79,80,82,84,85,89,91,96,97,98,103,105,114,116,117,118,122,123,129,130,138,141,142,143,144,145,146,147,148,149,150,151,152],$Vl1=[1,211],$Vm1=[1,210],$Vn1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138],$Vo1=[2,66],$Vp1=[1,220],$Vq1=[6,29,30,60,65],$Vr1=[6,29,30,50,60,65,68],$Vs1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,141,142,146,148,149,150,151],$Vt1=[77,78,79,80,82,85,96,97],$Vu1=[1,239],$Vv1=[2,57],$Vw1=[2,144],$Vx1=[1,6,29,30,39,50,60,65,68,77,78,79,80,82,84,85,89,96,97,98,103,105,114,116,117,118,122,123,129,130,138,141,142,145,146,147,148,149,150,151],$Vy1=[1,248],$Vz1=[6,29,30,65,98,103],$VA1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,123,138],$VB1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,117,123,138],$VC1=[129,130],$VD1=[65,129,130],$VE1=[1,261],$VF1=[6,29,30,65,89],$VG1=[6,29,30,53,65,89],$VH1=[6,29,30,50,53,65,89],$VI1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,141,142,148,149,150,151],$VJ1=[12,26,32,34,35,37,38,41,42,45,46,47,48,56,57,58,62,63,84,87,90,95,100,101,102,108,112,113,116,118,120,122,131,137,139,140,141,142,143,144],$VK1=[2,133],$VL1=[6,29,30],$VM1=[2,67],$VN1=[1,273],$VO1=[1,274],$VP1=[1,6,29,30,39,60,65,68,84,89,98,103,105,110,111,114,116,117,118,122,123,133,135,138,141,142,145,146,147,148,149,150,151],$VQ1=[30,133,135],$VR1=[1,6,30,39,60,65,68,84,89,98,103,105,114,117,123,138],$VS1=[2,81],$VT1=[1,297],$VU1=[1,298],$VV1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,133,138,141,142,145,146,147,148,149,150,151],$VW1=[1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,118,122,123,138],$VX1=[1,310],$VY1=[1,311],$VZ1=[6,29,30,65],$V_1=[1,6,29,30,39,60,65,68,84,89,98,103,105,110,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],$V$1=[29,65]; var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"YieldReturn":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"Yield":25,"YIELD":26,"FROM":27,"Block":28,"INDENT":29,"OUTDENT":30,"Identifier":31,"IDENTIFIER":32,"AlphaNumeric":33,"NUMBER":34,"String":35,"STRING":36,"STRING_START":37,"STRING_END":38,"Regex":39,"REGEX":40,"REGEX_START":41,"REGEX_END":42,"Literal":43,"JS":44,"DEBUGGER":45,"UNDEFINED":46,"NULL":47,"BOOL":48,"Assignable":49,"=":50,"AssignObj":51,"ObjAssignable":52,":":53,"SimpleObjAssignable":54,"ThisProperty":55,"RETURN":56,"HERECOMMENT":57,"PARAM_START":58,"ParamList":59,"PARAM_END":60,"FuncGlyph":61,"->":62,"=>":63,"OptComma":64,",":65,"Param":66,"ParamVar":67,"...":68,"Array":69,"Object":70,"Splat":71,"SimpleAssignable":72,"Accessor":73,"Parenthetical":74,"Range":75,"This":76,".":77,"?.":78,"::":79,"?::":80,"Index":81,"INDEX_START":82,"IndexValue":83,"INDEX_END":84,"INDEX_SOAK":85,"Slice":86,"{":87,"AssignList":88,"}":89,"CLASS":90,"EXTENDS":91,"OptFuncExist":92,"Arguments":93,"SUPER":94,"FUNC_EXIST":95,"CALL_START":96,"CALL_END":97,"ArgList":98,"THIS":99,"@":100,"[":101,"]":102,"RangeDots":103,"..":104,"Arg":105,"SimpleArgs":106,"TRY":107,"Catch":108,"FINALLY":109,"CATCH":110,"THROW":111,"(":112,")":113,"WhileSource":114,"WHILE":115,"WHEN":116,"UNTIL":117,"Loop":118,"LOOP":119,"ForBody":120,"FOR":121,"BY":122,"ForStart":123,"ForSource":124,"ForVariables":125,"OWN":126,"ForValue":127,"FORIN":128,"FOROF":129,"SWITCH":130,"Whens":131,"ELSE":132,"When":133,"LEADING_WHEN":134,"IfBlock":135,"IF":136,"POST_IF":137,"UNARY":138,"UNARY_MATH":139,"-":140,"+":141,"--":142,"++":143,"?":144,"MATH":145,"**":146,"SHIFT":147,"COMPARE":148,"LOGIC":149,"RELATION":150,"COMPOUND_ASSIGN":151,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",26:"YIELD",27:"FROM",29:"INDENT",30:"OUTDENT",32:"IDENTIFIER",34:"NUMBER",36:"STRING",37:"STRING_START",38:"STRING_END",40:"REGEX",41:"REGEX_START",42:"REGEX_END",44:"JS",45:"DEBUGGER",46:"UNDEFINED",47:"NULL",48:"BOOL",50:"=",53:":",56:"RETURN",57:"HERECOMMENT",58:"PARAM_START",60:"PARAM_END",62:"->",63:"=>",65:",",68:"...",77:".",78:"?.",79:"::",80:"?::",82:"INDEX_START",84:"INDEX_END",85:"INDEX_SOAK",87:"{",89:"}",90:"CLASS",91:"EXTENDS",94:"SUPER",95:"FUNC_EXIST",96:"CALL_START",97:"CALL_END",99:"THIS",100:"@",101:"[",102:"]",104:"..",107:"TRY",109:"FINALLY",110:"CATCH",111:"THROW",112:"(",113:")",115:"WHILE",116:"WHEN",117:"UNTIL",119:"LOOP",121:"FOR",122:"BY",126:"OWN",128:"FORIN",129:"FOROF",130:"SWITCH",132:"ELSE",134:"LEADING_WHEN",136:"IF",137:"POST_IF",138:"UNARY",139:"UNARY_MATH",140:"-",141:"+",142:"--",143:"++",144:"?",145:"MATH",146:"**",147:"SHIFT",148:"COMPARE",149:"LOGIC",150:"RELATION",151:"COMPOUND_ASSIGN"}, -productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[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],[25,1],[25,2],[25,3],[28,2],[28,3],[31,1],[33,1],[33,1],[35,1],[35,3],[39,1],[39,3],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[17,3],[17,4],[17,5],[51,1],[51,3],[51,5],[51,3],[51,5],[51,1],[54,1],[54,1],[52,1],[52,1],[10,2],[10,1],[9,3],[9,2],[11,1],[15,5],[15,2],[61,1],[61,1],[64,0],[64,1],[59,0],[59,1],[59,3],[59,4],[59,6],[66,1],[66,2],[66,3],[66,1],[67,1],[67,1],[67,1],[67,1],[71,2],[72,1],[72,2],[72,2],[72,1],[49,1],[49,1],[49,1],[13,1],[13,1],[13,1],[13,1],[13,1],[73,2],[73,2],[73,2],[73,2],[73,1],[73,1],[81,3],[81,2],[83,1],[83,1],[70,4],[88,0],[88,1],[88,3],[88,4],[88,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[92,0],[92,1],[93,2],[93,4],[76,1],[76,1],[55,2],[69,2],[69,4],[103,1],[103,1],[75,5],[86,3],[86,2],[86,2],[86,1],[98,1],[98,3],[98,4],[98,4],[98,6],[105,1],[105,1],[105,1],[106,1],[106,3],[19,2],[19,3],[19,4],[19,5],[108,3],[108,3],[108,2],[24,2],[74,3],[74,5],[114,2],[114,4],[114,2],[114,4],[20,2],[20,2],[20,2],[20,1],[118,2],[118,2],[21,2],[21,2],[21,2],[120,2],[120,4],[120,2],[123,2],[123,3],[127,1],[127,1],[127,1],[127,1],[125,1],[125,3],[124,2],[124,2],[124,4],[124,4],[124,4],[124,6],[124,6],[22,5],[22,7],[22,4],[22,6],[131,1],[131,2],[133,3],[133,4],[135,3],[135,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,4],[16,3]], +symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"YieldReturn":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"Yield":25,"YIELD":26,"FROM":27,"Block":28,"INDENT":29,"OUTDENT":30,"Identifier":31,"IDENTIFIER":32,"AlphaNumeric":33,"NUMBER":34,"INFINITY":35,"String":36,"STRING":37,"STRING_START":38,"STRING_END":39,"Regex":40,"REGEX":41,"REGEX_START":42,"REGEX_END":43,"Literal":44,"JS":45,"UNDEFINED":46,"NULL":47,"BOOL":48,"Assignable":49,"=":50,"AssignObj":51,"ObjAssignable":52,":":53,"SimpleObjAssignable":54,"ThisProperty":55,"RETURN":56,"HERECOMMENT":57,"PARAM_START":58,"ParamList":59,"PARAM_END":60,"FuncGlyph":61,"->":62,"=>":63,"OptComma":64,",":65,"Param":66,"ParamVar":67,"...":68,"Array":69,"Object":70,"Splat":71,"SimpleAssignable":72,"Accessor":73,"Parenthetical":74,"Range":75,"This":76,".":77,"?.":78,"::":79,"?::":80,"Index":81,"INDEX_START":82,"IndexValue":83,"INDEX_END":84,"INDEX_SOAK":85,"Slice":86,"{":87,"AssignList":88,"}":89,"CLASS":90,"EXTENDS":91,"OptFuncExist":92,"Arguments":93,"Super":94,"SUPER":95,"FUNC_EXIST":96,"CALL_START":97,"CALL_END":98,"ArgList":99,"THIS":100,"@":101,"[":102,"]":103,"RangeDots":104,"..":105,"Arg":106,"SimpleArgs":107,"TRY":108,"Catch":109,"FINALLY":110,"CATCH":111,"THROW":112,"(":113,")":114,"WhileSource":115,"WHILE":116,"WHEN":117,"UNTIL":118,"Loop":119,"LOOP":120,"ForBody":121,"FOR":122,"BY":123,"ForStart":124,"ForSource":125,"ForVariables":126,"OWN":127,"ForValue":128,"FORIN":129,"FOROF":130,"SWITCH":131,"Whens":132,"ELSE":133,"When":134,"LEADING_WHEN":135,"IfBlock":136,"IF":137,"POST_IF":138,"UNARY":139,"UNARY_MATH":140,"-":141,"+":142,"--":143,"++":144,"?":145,"MATH":146,"**":147,"SHIFT":148,"COMPARE":149,"LOGIC":150,"RELATION":151,"COMPOUND_ASSIGN":152,"$accept":0,"$end":1}, +terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",26:"YIELD",27:"FROM",29:"INDENT",30:"OUTDENT",32:"IDENTIFIER",34:"NUMBER",35:"INFINITY",37:"STRING",38:"STRING_START",39:"STRING_END",41:"REGEX",42:"REGEX_START",43:"REGEX_END",45:"JS",46:"UNDEFINED",47:"NULL",48:"BOOL",50:"=",53:":",56:"RETURN",57:"HERECOMMENT",58:"PARAM_START",60:"PARAM_END",62:"->",63:"=>",65:",",68:"...",77:".",78:"?.",79:"::",80:"?::",82:"INDEX_START",84:"INDEX_END",85:"INDEX_SOAK",87:"{",89:"}",90:"CLASS",91:"EXTENDS",95:"SUPER",96:"FUNC_EXIST",97:"CALL_START",98:"CALL_END",100:"THIS",101:"@",102:"[",103:"]",105:"..",108:"TRY",110:"FINALLY",111:"CATCH",112:"THROW",113:"(",114:")",116:"WHILE",117:"WHEN",118:"UNTIL",120:"LOOP",122:"FOR",123:"BY",127:"OWN",129:"FORIN",130:"FOROF",131:"SWITCH",133:"ELSE",135:"LEADING_WHEN",137:"IF",138:"POST_IF",139:"UNARY",140:"UNARY_MATH",141:"-",142:"+",143:"--",144:"++",145:"?",146:"MATH",147:"**",148:"SHIFT",149:"COMPARE",150:"LOGIC",151:"RELATION",152:"COMPOUND_ASSIGN"}, +productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[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],[25,1],[25,2],[25,3],[28,2],[28,3],[31,1],[33,1],[33,1],[33,1],[36,1],[36,3],[40,1],[40,3],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[17,3],[17,4],[17,5],[51,1],[51,3],[51,5],[51,3],[51,5],[51,1],[54,1],[54,1],[52,1],[52,1],[10,2],[10,1],[9,3],[9,2],[11,1],[15,5],[15,2],[61,1],[61,1],[64,0],[64,1],[59,0],[59,1],[59,3],[59,4],[59,6],[66,1],[66,2],[66,3],[66,1],[67,1],[67,1],[67,1],[67,1],[71,2],[72,1],[72,2],[72,2],[72,1],[49,1],[49,1],[49,1],[13,1],[13,1],[13,1],[13,1],[13,1],[73,2],[73,2],[73,2],[73,2],[73,1],[73,1],[81,3],[81,2],[83,1],[83,1],[70,4],[88,0],[88,1],[88,3],[88,4],[88,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[94,1],[94,2],[92,0],[92,1],[93,2],[93,4],[76,1],[76,1],[55,2],[69,2],[69,4],[104,1],[104,1],[75,5],[86,3],[86,2],[86,2],[86,1],[99,1],[99,3],[99,4],[99,4],[99,6],[106,1],[106,1],[106,1],[107,1],[107,3],[19,2],[19,3],[19,4],[19,5],[109,3],[109,3],[109,2],[24,2],[74,3],[74,5],[115,2],[115,4],[115,2],[115,4],[20,2],[20,2],[20,2],[20,1],[119,2],[119,2],[21,2],[21,2],[21,2],[121,2],[121,4],[121,2],[124,2],[124,3],[128,1],[128,1],[128,1],[128,1],[126,1],[126,3],[125,2],[125,2],[125,4],[125,4],[125,4],[125,6],[125,6],[22,5],[22,7],[22,4],[22,6],[132,1],[132,2],[134,3],[134,4],[136,3],[136,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,4],[16,3]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -98,16 +98,16 @@ break; case 5: this.$ = $$[$0-1]; break; -case 6: case 7: case 8: case 9: case 10: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 32: case 37: case 39: case 52: case 53: case 54: case 55: case 56: case 66: case 67: case 77: case 78: case 79: case 80: case 85: case 86: case 89: case 93: case 99: case 143: case 144: case 146: case 176: case 177: case 193: case 199: +case 6: case 7: case 8: case 9: case 10: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 33: case 38: case 40: case 52: case 53: case 54: case 55: case 56: case 66: case 67: case 77: case 78: case 79: case 80: case 85: case 86: case 89: case 93: case 99: case 120: case 144: case 145: case 147: case 177: case 178: case 194: case 200: this.$ = $$[$0]; break; -case 11: case 30: case 31: case 33: case 35: case 38: case 40: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); +case 11: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.StatementLiteral($$[$0])); break; case 25: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Op($$[$0], new yy.Value(new yy.Literal('')))); break; -case 26: case 203: case 204: +case 26: case 204: case 205: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); break; case 27: @@ -116,20 +116,41 @@ break; case 28: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block); break; -case 29: case 36: case 100: +case 29: case 100: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); break; -case 34: case 156: -this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); +case 30: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.IdentifierLiteral($$[$0])); +break; +case 31: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.NumberLiteral($$[$0])); +break; +case 32: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.InfinityLiteral($$[$0])); +break; +case 34: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.StringLiteral($$[$0])); +break; +case 35: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.StringWithInterpolations($$[$0-1])); +break; +case 36: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.RegexLiteral($$[$0])); +break; +case 37: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.RegexWithInterpolations($$[$0-1].args)); +break; +case 39: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.PassthroughLiteral($$[$0])); break; case 41: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.UndefinedLiteral); break; case 42: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.NullLiteral); break; case 43: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0])); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.BooleanLiteral($$[$0])); break; case 44: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0])); @@ -140,7 +161,7 @@ break; case 46: this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1])); break; -case 47: case 82: case 87: case 88: case 90: case 91: case 92: case 178: case 179: +case 47: case 82: case 87: case 88: case 90: case 91: case 92: case 179: case 180: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); break; case 48: @@ -193,16 +214,16 @@ break; case 68: case 105: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); break; -case 69: case 106: case 138: case 180: +case 69: case 106: case 139: case 181: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); break; -case 70: case 107: case 139: +case 70: case 107: case 140: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); break; -case 71: case 108: case 140: +case 71: case 108: case 141: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); break; -case 72: case 109: case 142: +case 72: case 109: case 143: this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); break; case 73: @@ -214,7 +235,7 @@ break; case 75: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0])); break; -case 76: case 145: +case 76: case 146: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); break; case 81: @@ -233,13 +254,13 @@ case 95: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak')); break; case 96: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.IdentifierLiteral('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); break; case 97: -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]))]); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.IdentifierLiteral('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); break; case 98: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype'))); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.IdentifierLiteral('prototype'))); break; case 101: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], { @@ -282,139 +303,142 @@ break; case 118: case 119: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); break; -case 120: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))])); -break; case 121: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0])); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.SuperCall); break; case 122: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.SuperCall($$[$0])); break; case 123: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); break; case 124: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); +break; +case 125: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]); break; -case 125: case 141: +case 126: case 142: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); break; -case 126: case 127: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); -break; -case 128: -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')); +case 127: case 128: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.ThisLiteral)); break; case 129: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.ThisLiteral), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this')); break; case 130: -this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); break; case 131: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); break; case 132: -this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); break; case 133: -this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); break; case 134: -this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); break; case 135: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); break; case 136: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); break; case 137: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); +break; +case 138: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0])); break; -case 147: +case 148: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0])); break; -case 148: +case 149: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0])); break; -case 149: +case 150: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1])); break; -case 150: +case 151: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0])); break; -case 151: +case 152: this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0])); break; -case 152: +case 153: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]); break; -case 153: +case 154: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]); break; -case 154: +case 155: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]); break; -case 155: +case 156: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0])); break; case 157: -this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); break; case 158: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); break; case 159: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); +break; +case 160: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { guard: $$[$0] })); break; -case 160: +case 161: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], { invert: true })); break; -case 161: +case 162: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { invert: true, guard: $$[$0] })); break; -case 162: +case 163: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0])); break; -case 163: case 164: +case 164: case 165: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); break; -case 165: +case 166: this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]); break; -case 166: -this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0])); -break; case 167: -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]])))); +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.BooleanLiteral('true'))).addBody($$[$0])); break; -case 168: case 169: +case 168: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.BooleanLiteral('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]])))); +break; +case 169: case 170: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); break; -case 170: +case 171: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1])); break; -case 171: +case 172: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0])) }); break; -case 172: +case 173: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ source: yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), step: $$[$0] }); break; -case 173: +case 174: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { $$[$0].own = $$[$0-1].own; $$[$0].name = $$[$0-1][0]; @@ -422,133 +446,133 @@ this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { return $$[$0]; }())); break; -case 174: +case 175: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]); break; -case 175: +case 176: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { $$[$0].own = true; return $$[$0]; }())); break; -case 181: +case 182: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]); break; -case 182: +case 183: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ source: $$[$0] }); break; -case 183: +case 184: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ source: $$[$0], object: true }); break; -case 184: +case 185: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ source: $$[$0-2], guard: $$[$0] }); break; -case 185: +case 186: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ source: $$[$0-2], guard: $$[$0], object: true }); break; -case 186: +case 187: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ source: $$[$0-2], step: $$[$0] }); break; -case 187: -this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ - source: $$[$0-4], - guard: $$[$0-2], - step: $$[$0] - }); -break; case 188: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + guard: $$[$0-2], + step: $$[$0] + }); +break; +case 189: this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ source: $$[$0-4], step: $$[$0-2], guard: $$[$0] }); break; -case 189: +case 190: this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1])); break; -case 190: +case 191: this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1])); break; -case 191: +case 192: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1])); break; -case 192: +case 193: this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1])); break; -case 194: +case 195: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0])); break; -case 195: +case 196: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]); break; -case 196: +case 197: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]); break; -case 197: +case 198: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { type: $$[$0-2] })); break; -case 198: +case 199: 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 200: +case 201: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0])); break; -case 201: case 202: +case 202: case 203: 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 205: +case 206: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0])); break; -case 206: +case 207: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0])); break; -case 207: +case 208: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); break; -case 208: +case 209: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); break; -case 209: +case 210: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); break; -case 210: +case 211: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); break; -case 211: +case 212: this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); break; -case 212: +case 213: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); break; -case 213: +case 214: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); break; -case 214: case 215: case 216: case 217: case 218: +case 215: case 216: case 217: case 218: case 219: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); break; -case 219: +case 220: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { if ($$[$0-1].charAt(0) === '!') { return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); @@ -557,22 +581,22 @@ this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { } }())); break; -case 220: +case 221: this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); break; -case 221: +case 222: this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); break; -case 222: +case 223: this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); break; -case 223: +case 224: 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:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{1:[3]},{1:[2,2],6:$VD},o($VE,[2,3]),o($VE,[2,6],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VE,[2,7],{123:71,114:94,120:95,115:$Vr,117:$Vs,121:$Vu,137:$VP}),o($VE,[2,8]),o($VQ,[2,12],{92:96,73:97,81:103,77:$VR,78:$VS,79:$VT,80:$VU,82:$VV,85:$VW,95:$VX,96:$VY}),o($VQ,[2,13],{81:103,92:106,73:107,77:$VR,78:$VS,79:$VT,80:$VU,82:$VV,85:$VW,95:$VX,96:$VY}),o($VQ,[2,14]),o($VQ,[2,15]),o($VQ,[2,16]),o($VQ,[2,17]),o($VQ,[2,18]),o($VQ,[2,19]),o($VQ,[2,20]),o($VQ,[2,21]),o($VQ,[2,22]),o($VQ,[2,23]),o($VQ,[2,24]),o($VZ,[2,9]),o($VZ,[2,10]),o($VZ,[2,11]),o([1,6,30,38,113,115,117,121,137,144,145,146,147,148,149,150],$V_,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,7:109,8:111,12:$V0,26:$V$,27:$V01,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:[1,108],57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,119:$Vt,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),o($V11,$V21,{50:[1,113]}),o($V11,[2,90]),o($V11,[2,91]),o($V11,[2,92]),o($V11,[2,93]),o([1,6,29,30,38,42,60,65,68,77,78,79,80,82,84,85,89,95,97,102,104,113,115,116,117,121,122,137,140,141,144,145,146,147,148,149,150],[2,120],{93:114,96:$V31}),o([6,29,60,65],$V41,{59:116,66:117,67:118,31:120,55:121,69:122,70:123,32:$V2,68:$V51,87:$Vi,100:$V61,101:$V71}),{28:126,29:$V81},{7:128,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:129,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:130,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:131,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{13:133,14:134,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:135,55:65,69:49,70:50,72:132,74:26,75:27,76:28,87:$Vi,94:$Vk,99:$Vl,100:$Vm,101:$Vn,112:$Vq},{13:133,14:134,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:135,55:65,69:49,70:50,72:136,74:26,75:27,76:28,87:$Vi,94:$Vk,99:$Vl,100:$Vm,101:$Vn,112:$Vq},o($V91,$Va1,{91:[1,140],142:[1,137],143:[1,138],151:[1,139]}),o($VQ,[2,199],{132:[1,141]}),{28:142,29:$V81},{28:143,29:$V81},o($VQ,[2,165]),{28:144,29:$V81},{7:145,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,146],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vb1,[2,110],{43:25,74:26,75:27,76:28,69:49,70:50,33:51,39:53,31:64,55:65,35:74,13:133,14:134,49:135,28:147,72:149,29:$V81,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,87:$Vi,91:[1,148],94:$Vk,99:$Vl,100:$Vm,101:$Vn,112:$Vq}),{7:150,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VZ,$Vc1,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,8:111,7:151,12:$V0,26:$V$,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,119:$Vt,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),o([1,6,29,30,38,65,89,113,115,117,121,137],[2,61]),o($V91,[2,87]),o($V91,[2,88]),o($V11,[2,37]),o($V11,[2,38]),o($V11,[2,39]),o($V11,[2,40]),o($V11,[2,41]),o($V11,[2,42]),o($V11,[2,43]),{4:152,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,29:[1,153],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:154,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,98:156,99:$Vl,100:$Vm,101:$Vn,102:$Vf1,105:157,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($V11,[2,126]),o($V11,[2,127],{31:161,32:$V2}),{29:[2,64]},{29:[2,65]},o($Vg1,[2,82]),o($Vg1,[2,85]),{7:162,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:163,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:164,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:166,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,28:165,29:$V81,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{31:171,32:$V2,55:172,69:173,70:174,75:167,87:$Vi,100:$V61,101:$Vn,125:168,126:[1,169],127:170},{124:175,128:[1,176],129:[1,177]},o([6,29,65,89],$Vh1,{35:74,88:178,51:179,52:180,54:181,11:182,33:183,31:184,55:185,32:$V2,34:$V3,36:$V4,37:$V5,57:$Ve,100:$V61}),o($Vi1,[2,31]),o($Vi1,[2,32]),o($V11,[2,35]),{13:133,14:186,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:135,55:65,69:49,70:50,72:187,74:26,75:27,76:28,87:$Vi,94:$Vk,99:$Vl,100:$Vm,101:$Vn,112:$Vq},o($Vj1,[2,30]),o($Vi1,[2,33]),{4:188,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VE,[2,5],{7:4,8:5,9:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,5:189,12:$V0,26:$V1,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,115:$Vr,117:$Vs,119:$Vt,121:$Vu,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),o($VQ,[2,211]),{7:190,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:191,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:192,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:193,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:194,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:195,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:196,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:197,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:198,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VQ,[2,164]),o($VQ,[2,169]),{7:199,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VQ,[2,163]),o($VQ,[2,168]),{93:200,96:$V31},o($Vg1,[2,83]),{96:[2,123]},{31:201,32:$V2},{31:202,32:$V2},o($Vg1,[2,98],{31:203,32:$V2}),{31:204,32:$V2},o($Vg1,[2,99]),{7:206,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Vk1,69:49,70:50,72:38,74:26,75:27,76:28,83:205,86:207,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,103:208,104:$Vl1,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{81:211,82:$VV,85:$VW},{93:212,96:$V31},o($Vg1,[2,84]),o($VE,[2,60],{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,8:111,7:213,12:$V0,26:$V$,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,115:$Vc1,117:$Vc1,121:$Vc1,137:$Vc1,119:$Vt,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),o($Vm1,[2,26],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{7:214,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{114:94,115:$Vr,117:$Vs,120:95,121:$Vu,123:71,137:$VP},o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,144,145,146,147,148,149,150],$V_,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,7:109,8:111,12:$V0,26:$V$,27:$V01,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,119:$Vt,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),{6:[1,216],7:215,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,217],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vn1,[2,121]),{7:220,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,97:[1,218],98:219,99:$Vl,100:$Vm,101:$Vn,105:157,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o([6,29],$Vo1,{64:223,60:[1,221],65:$Vp1}),o($Vq1,[2,69]),o($Vq1,[2,73],{50:[1,225],68:[1,224]}),o($Vq1,[2,76]),o($Vr1,[2,77]),o($Vr1,[2,78]),o($Vr1,[2,79]),o($Vr1,[2,80]),{31:161,32:$V2},{7:220,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,98:156,99:$Vl,100:$Vm,101:$Vn,102:$Vf1,105:157,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VQ,[2,63]),{4:227,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,30:[1,226],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,140,141,145,146,147,148,149,150],[2,203],{123:71,114:91,120:92,144:$VI}),o($Vs1,[2,204],{123:71,114:91,120:92,144:$VI,146:$VK}),o($Vs1,[2,205],{123:71,114:91,120:92,144:$VI,146:$VK}),o($Vs1,[2,206],{123:71,114:91,120:92,144:$VI,146:$VK}),o($VQ,[2,207],{77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,95:$Va1,96:$Va1}),{73:97,77:$VR,78:$VS,79:$VT,80:$VU,81:103,82:$VV,85:$VW,92:96,95:$VX,96:$VY},{73:107,77:$VR,78:$VS,79:$VT,80:$VU,81:103,82:$VV,85:$VW,92:106,95:$VX,96:$VY},o($Vt1,$V21),o($VQ,[2,208],{77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,95:$Va1,96:$Va1}),o($VQ,[2,209]),o($VQ,[2,210]),{6:[1,230],7:228,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,229],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:231,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{28:232,29:$V81,136:[1,233]},o($VQ,[2,148],{108:234,109:[1,235],110:[1,236]}),o($VQ,[2,162]),o($VQ,[2,170]),{29:[1,237],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{131:238,133:239,134:$Vu1},o($VQ,[2,111]),{7:241,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vb1,[2,114],{28:242,29:$V81,77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,95:$Va1,96:$Va1,91:[1,243]}),o($Vm1,[2,155],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VZ,$Vv1,{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{6:$VD,113:[1,244]},{4:245,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o([6,29,65,102],$Vw1,{123:71,114:91,120:92,103:246,68:[1,247],104:$Vl1,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vx1,[2,129]),o([6,29,102],$Vo1,{64:248,65:$Vy1}),o($Vz1,[2,138]),{7:220,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,98:250,99:$Vl,100:$Vm,101:$Vn,105:157,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vz1,[2,144]),o($Vz1,[2,145]),o($Vj1,[2,128]),{28:251,29:$V81,114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},o($VA1,[2,158],{123:71,114:91,120:92,115:$Vr,116:[1,252],117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VA1,[2,160],{123:71,114:91,120:92,115:$Vr,116:[1,253],117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VQ,[2,166]),o($VB1,[2,167],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,137,140,141,144,145,146,147,148,149,150],[2,171],{122:[1,254]}),o($VC1,[2,174]),{31:171,32:$V2,55:172,69:173,70:174,87:$Vi,100:$V61,101:$V71,125:255,127:170},o($VC1,[2,180],{65:[1,256]}),o($VD1,[2,176]),o($VD1,[2,177]),o($VD1,[2,178]),o($VD1,[2,179]),o($VQ,[2,173]),{7:257,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:258,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o([6,29,89],$Vo1,{64:259,65:$VE1}),o($VF1,[2,106]),o($VF1,[2,47],{53:[1,261]}),o($VG1,[2,55],{50:[1,262]}),o($VF1,[2,52]),o($VG1,[2,56]),o($VH1,[2,53]),o($VH1,[2,54]),{42:[1,263],73:107,77:$VR,78:$VS,79:$VT,80:$VU,81:103,82:$VV,85:$VW,92:106,95:$VX,96:$VY},o($Vt1,$Va1),{6:$VD,38:[1,264]},o($VE,[2,4]),o($VI1,[2,212],{123:71,114:91,120:92,144:$VI,145:$VJ,146:$VK}),o($VI1,[2,213],{123:71,114:91,120:92,144:$VI,145:$VJ,146:$VK}),o($Vs1,[2,214],{123:71,114:91,120:92,144:$VI,146:$VK}),o($Vs1,[2,215],{123:71,114:91,120:92,144:$VI,146:$VK}),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,147,148,149,150],[2,216],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK}),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,148,149],[2,217],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,150:$VO}),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,149],[2,218],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,150:$VO}),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,122,137,148,149,150],[2,219],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL}),o($VB1,[2,202],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VB1,[2,201],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vn1,[2,118]),o($Vg1,[2,94]),o($Vg1,[2,95]),o($Vg1,[2,96]),o($Vg1,[2,97]),{84:[1,265]},{68:$Vk1,84:[2,102],103:266,104:$Vl1,114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{84:[2,103]},{7:267,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,84:[2,137],87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VJ1,[2,131]),o($VJ1,$VK1),o($Vg1,[2,101]),o($Vn1,[2,119]),o($VE,[2,59],{123:71,114:91,120:92,115:$Vv1,117:$Vv1,121:$Vv1,137:$Vv1,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vm1,[2,27],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vm1,[2,44],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{7:268,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:269,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vn1,[2,124]),o([6,29,97],$Vo1,{64:270,65:$Vy1}),o($Vz1,$Vw1,{123:71,114:91,120:92,68:[1,271],115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{61:272,62:$Vg,63:$Vh},o($VL1,$VM1,{67:118,31:120,55:121,69:122,70:123,66:273,32:$V2,68:$V51,87:$Vi,100:$V61,101:$V71}),{6:$VN1,29:$VO1},o($Vq1,[2,74]),{7:276,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VP1,[2,28]),{6:$VD,30:[1,277]},o($Vm1,[2,220],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{7:278,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:279,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vm1,[2,223],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VQ,[2,200]),{7:280,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VQ,[2,149],{109:[1,281]}),{28:282,29:$V81},{28:285,29:$V81,31:283,32:$V2,70:284,87:$Vi},{131:286,133:239,134:$Vu1},{30:[1,287],132:[1,288],133:289,134:$Vu1},o($VQ1,[2,193]),{7:291,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,106:290,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VR1,[2,112],{123:71,114:91,120:92,28:292,29:$V81,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VQ,[2,115]),{7:293,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($V11,[2,156]),{6:$VD,30:[1,294]},{7:295,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o([12,26,32,34,36,37,40,41,44,45,46,47,48,56,57,58,62,63,87,90,94,99,100,101,107,111,112,115,117,119,121,130,136,138,139,140,141,142,143],$VK1,{6:$VS1,29:$VS1,65:$VS1,102:$VS1}),{6:$VT1,29:$VU1,102:[1,296]},o([6,29,30,97,102],$VM1,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,43:25,74:26,75:27,76:28,61:31,72:38,135:39,114:41,118:42,120:43,69:49,70:50,33:51,39:53,31:64,55:65,123:71,35:74,8:111,71:159,7:220,105:299,12:$V0,26:$V$,32:$V2,34:$V3,36:$V4,37:$V5,40:$V6,41:$V7,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,68:$Ve1,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,115:$Vr,117:$Vs,119:$Vt,121:$Vu,130:$Vv,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC}),o($VL1,$Vo1,{64:300,65:$Vy1}),o($VV1,[2,197]),{7:301,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:302,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:303,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VC1,[2,175]),{31:171,32:$V2,55:172,69:173,70:174,87:$Vi,100:$V61,101:$V71,127:304},o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,117,121,137],[2,182],{123:71,114:91,120:92,116:[1,305],122:[1,306],140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VW1,[2,183],{123:71,114:91,120:92,116:[1,307],140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{6:$VX1,29:$VY1,89:[1,308]},o([6,29,30,89],$VM1,{35:74,52:180,54:181,11:182,33:183,31:184,55:185,51:311,32:$V2,34:$V3,36:$V4,37:$V5,57:$Ve,100:$V61}),{7:312,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,313],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:314,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,315],31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($V11,[2,36]),o($Vi1,[2,34]),o($Vg1,[2,100]),{7:316,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,84:[2,135],87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{84:[2,136],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},o($Vm1,[2,45],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{30:[1,317],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{6:$VT1,29:$VU1,97:[1,318]},o($Vz1,$VS1),{28:319,29:$V81},o($Vq1,[2,70]),{31:120,32:$V2,55:121,66:320,67:118,68:$V51,69:122,70:123,87:$Vi,100:$V61,101:$V71},o($VZ1,$V41,{66:117,67:118,31:120,55:121,69:122,70:123,59:321,32:$V2,68:$V51,87:$Vi,100:$V61,101:$V71}),o($Vq1,[2,75],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VP1,[2,29]),{30:[1,322],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},o($Vm1,[2,222],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{28:323,29:$V81,114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{28:324,29:$V81},o($VQ,[2,150]),{28:325,29:$V81},{28:326,29:$V81},o($V_1,[2,154]),{30:[1,327],132:[1,328],133:289,134:$Vu1},o($VQ,[2,191]),{28:329,29:$V81},o($VQ1,[2,194]),{28:330,29:$V81,65:[1,331]},o($V$1,[2,146],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VQ,[2,113]),o($VR1,[2,116],{123:71,114:91,120:92,28:332,29:$V81,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{113:[1,333]},{102:[1,334],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},o($Vx1,[2,130]),{7:220,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,105:335,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:220,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:159,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,98:336,99:$Vl,100:$Vm,101:$Vn,105:157,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vz1,[2,139]),{6:$VT1,29:$VU1,30:[1,337]},o($VB1,[2,159],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VB1,[2,161],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VB1,[2,172],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VC1,[2,181]),{7:338,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:339,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:340,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($Vx1,[2,104]),{11:182,31:184,32:$V2,33:183,34:$V3,35:74,36:$V4,37:$V5,51:341,52:180,54:181,55:185,57:$Ve,100:$V61},o($VZ1,$Vh1,{35:74,51:179,52:180,54:181,11:182,33:183,31:184,55:185,88:342,32:$V2,34:$V3,36:$V4,37:$V5,57:$Ve,100:$V61}),o($VF1,[2,107]),o($VF1,[2,48],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{7:343,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VF1,[2,50],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{7:344,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{84:[2,134],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},o($VQ,[2,46]),o($Vn1,[2,125]),o($VQ,[2,62]),o($Vq1,[2,71]),o($VL1,$Vo1,{64:345,65:$Vp1}),o($VQ,[2,221]),o($VV1,[2,198]),o($VQ,[2,151]),o($V_1,[2,152]),o($V_1,[2,153]),o($VQ,[2,189]),{28:346,29:$V81},{30:[1,347]},o($VQ1,[2,195],{6:[1,348]}),{7:349,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},o($VQ,[2,117]),o($V11,[2,157]),o($V11,[2,133]),o($Vz1,[2,140]),o($VL1,$Vo1,{64:350,65:$Vy1}),o($Vz1,[2,141]),o([1,6,29,30,38,60,65,68,84,89,97,102,104,113,115,116,117,121,137],[2,184],{123:71,114:91,120:92,122:[1,351],140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VW1,[2,186],{123:71,114:91,120:92,116:[1,352],140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vm1,[2,185],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VF1,[2,108]),o($VL1,$Vo1,{64:353,65:$VE1}),{30:[1,354],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{30:[1,355],114:91,115:$Vr,117:$Vs,120:92,121:$Vu,123:71,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO},{6:$VN1,29:$VO1,30:[1,356]},{30:[1,357]},o($VQ,[2,192]),o($VQ1,[2,196]),o($V$1,[2,147],{123:71,114:91,120:92,115:$Vr,117:$Vs,121:$Vu,137:$VF,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),{6:$VT1,29:$VU1,30:[1,358]},{7:359,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{7:360,8:111,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:74,36:$V4,37:$V5,39:53,40:$V6,41:$V7,43:25,44:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:$Vk,99:$Vl,100:$Vm,101:$Vn,107:$Vo,111:$Vp,112:$Vq,114:41,115:$Vr,117:$Vs,118:42,119:$Vt,120:43,121:$Vu,123:71,130:$Vv,135:39,136:$Vw,138:$Vx,139:$Vy,140:$Vz,141:$VA,142:$VB,143:$VC},{6:$VX1,29:$VY1,30:[1,361]},o($VF1,[2,49]),o($VF1,[2,51]),o($Vq1,[2,72]),o($VQ,[2,190]),o($Vz1,[2,142]),o($Vm1,[2,187],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($Vm1,[2,188],{123:71,114:91,120:92,140:$VG,141:$VH,144:$VI,145:$VJ,146:$VK,147:$VL,148:$VM,149:$VN,150:$VO}),o($VF1,[2,109])], -defaultActions: {62:[2,64],63:[2,65],98:[2,123],207:[2,103]}, +table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{1:[3]},{1:[2,2],6:$VD},o($VE,[2,3]),o($VE,[2,6],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VE,[2,7],{124:71,115:95,121:96,116:$Vr,118:$Vs,122:$Vu,138:$VP}),o($VE,[2,8]),o($VQ,[2,12],{92:97,73:98,81:104,77:$VR,78:$VS,79:$VT,80:$VU,82:$VV,85:$VW,96:$VX,97:$VY}),o($VQ,[2,13],{81:104,92:107,73:108,77:$VR,78:$VS,79:$VT,80:$VU,82:$VV,85:$VW,96:$VX,97:$VY}),o($VQ,[2,14]),o($VQ,[2,15]),o($VQ,[2,16]),o($VQ,[2,17]),o($VQ,[2,18]),o($VQ,[2,19]),o($VQ,[2,20]),o($VQ,[2,21]),o($VQ,[2,22]),o($VQ,[2,23]),o($VQ,[2,24]),o($VZ,[2,9]),o($VZ,[2,10]),o($VZ,[2,11]),o([1,6,30,39,114,116,118,122,138,145,146,147,148,149,150,151],$V_,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,7:110,8:112,12:$V0,26:$V$,27:$V01,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:[1,109],57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,120:$Vt,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),o($V11,$V21,{50:[1,114]}),o($V11,[2,90]),o($V11,[2,91]),o($V11,[2,92]),o($V11,[2,93]),o($V31,[2,120]),o([6,29,60,65],$V41,{59:115,66:116,67:117,31:119,55:120,69:121,70:122,32:$V2,68:$V51,87:$Vi,101:$V61,102:$V71}),{28:125,29:$V81},{7:127,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:128,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:129,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:130,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{13:132,14:133,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:134,55:65,69:49,70:50,72:131,74:26,75:27,76:28,87:$Vi,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,113:$Vq},{13:132,14:133,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:134,55:65,69:49,70:50,72:135,74:26,75:27,76:28,87:$Vi,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,113:$Vq},o($V91,$Va1,{91:[1,139],143:[1,136],144:[1,137],152:[1,138]}),o($VQ,[2,200],{133:[1,140]}),{28:141,29:$V81},{28:142,29:$V81},o($VQ,[2,166]),{28:143,29:$V81},{7:144,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,145],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vb1,[2,110],{44:25,74:26,75:27,76:28,94:29,69:49,70:50,33:51,40:53,31:64,55:65,36:75,13:132,14:133,49:134,28:146,72:148,29:$V81,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,87:$Vi,91:[1,147],95:$Vk,100:$Vl,101:$Vm,102:$Vn,113:$Vq}),{7:149,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VZ,$Vc1,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,8:112,7:150,12:$V0,26:$V$,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,120:$Vt,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),o([1,6,29,30,39,65,89,114,116,118,122,138],[2,61]),o($V91,[2,87]),o($V91,[2,88]),o($V11,[2,38]),o($V11,[2,39]),o($V11,[2,40]),o($V11,[2,41]),o($V11,[2,42]),o($V11,[2,43]),{4:151,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,29:[1,152],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:153,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,99:155,100:$Vl,101:$Vm,102:$Vn,103:$Vf1,106:156,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($V11,[2,127]),o($V11,[2,128],{31:160,32:$V2}),o([1,6,29,30,39,43,60,65,68,77,78,79,80,82,84,85,89,96,98,103,105,114,116,117,118,122,123,138,141,142,145,146,147,148,149,150,151],[2,121],{93:161,97:$Vg1}),{29:[2,64]},{29:[2,65]},o($Vh1,[2,82]),o($Vh1,[2,85]),{7:163,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:164,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:165,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:167,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,28:166,29:$V81,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{31:172,32:$V2,55:173,69:174,70:175,75:168,87:$Vi,101:$V61,102:$Vn,126:169,127:[1,170],128:171},{125:176,129:[1,177],130:[1,178]},o([6,29,65,89],$Vi1,{36:75,88:179,51:180,52:181,54:182,11:183,33:184,31:185,55:186,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,57:$Ve,101:$V61}),o($Vj1,[2,31]),o($Vj1,[2,32]),o($Vj1,[2,33]),o($V11,[2,36]),{13:132,14:187,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:134,55:65,69:49,70:50,72:188,74:26,75:27,76:28,87:$Vi,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,113:$Vq},o($Vk1,[2,30]),o($Vj1,[2,34]),{4:189,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VE,[2,5],{7:4,8:5,9:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,5:190,12:$V0,26:$V1,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,116:$Vr,118:$Vs,120:$Vt,122:$Vu,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),o($VQ,[2,212]),{7:191,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:192,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:193,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:194,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:195,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:196,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:197,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:198,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:199,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VQ,[2,165]),o($VQ,[2,170]),{7:200,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VQ,[2,164]),o($VQ,[2,169]),{93:201,97:$Vg1},o($Vh1,[2,83]),{97:[2,124]},{31:202,32:$V2},{31:203,32:$V2},o($Vh1,[2,98],{31:204,32:$V2}),{31:205,32:$V2},o($Vh1,[2,99]),{7:207,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Vl1,69:49,70:50,72:38,74:26,75:27,76:28,83:206,86:208,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,104:209,105:$Vm1,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{81:212,82:$VV,85:$VW},{93:213,97:$Vg1},o($Vh1,[2,84]),o($VE,[2,60],{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,8:112,7:214,12:$V0,26:$V$,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,116:$Vc1,118:$Vc1,122:$Vc1,138:$Vc1,120:$Vt,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),o($Vn1,[2,26],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{7:215,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{115:95,116:$Vr,118:$Vs,121:96,122:$Vu,124:71,138:$VP},o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,145,146,147,148,149,150,151],$V_,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,7:110,8:112,12:$V0,26:$V$,27:$V01,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,120:$Vt,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),{6:[1,217],7:216,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,218],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o([6,29],$Vo1,{64:221,60:[1,219],65:$Vp1}),o($Vq1,[2,69]),o($Vq1,[2,73],{50:[1,223],68:[1,222]}),o($Vq1,[2,76]),o($Vr1,[2,77]),o($Vr1,[2,78]),o($Vr1,[2,79]),o($Vr1,[2,80]),{31:160,32:$V2},{7:224,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,99:155,100:$Vl,101:$Vm,102:$Vn,103:$Vf1,106:156,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VQ,[2,63]),{4:226,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,30:[1,225],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,141,142,146,147,148,149,150,151],[2,204],{124:71,115:92,121:93,145:$VI}),o($Vs1,[2,205],{124:71,115:92,121:93,145:$VI,147:$VK}),o($Vs1,[2,206],{124:71,115:92,121:93,145:$VI,147:$VK}),o($Vs1,[2,207],{124:71,115:92,121:93,145:$VI,147:$VK}),o($VQ,[2,208],{77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,96:$Va1,97:$Va1}),{73:98,77:$VR,78:$VS,79:$VT,80:$VU,81:104,82:$VV,85:$VW,92:97,96:$VX,97:$VY},{73:108,77:$VR,78:$VS,79:$VT,80:$VU,81:104,82:$VV,85:$VW,92:107,96:$VX,97:$VY},o($Vt1,$V21),o($VQ,[2,209],{77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,96:$Va1,97:$Va1}),o($VQ,[2,210]),o($VQ,[2,211]),{6:[1,229],7:227,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,228],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:230,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{28:231,29:$V81,137:[1,232]},o($VQ,[2,149],{109:233,110:[1,234],111:[1,235]}),o($VQ,[2,163]),o($VQ,[2,171]),{29:[1,236],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{132:237,134:238,135:$Vu1},o($VQ,[2,111]),{7:240,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vb1,[2,114],{28:241,29:$V81,77:$Va1,78:$Va1,79:$Va1,80:$Va1,82:$Va1,85:$Va1,96:$Va1,97:$Va1,91:[1,242]}),o($Vn1,[2,156],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VZ,$Vv1,{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{6:$VD,114:[1,243]},{4:244,5:3,7:4,8:5,9:6,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o([6,29,65,103],$Vw1,{124:71,115:92,121:93,104:245,68:[1,246],105:$Vm1,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vx1,[2,130]),o([6,29,103],$Vo1,{64:247,65:$Vy1}),o($Vz1,[2,139]),{7:224,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,99:249,100:$Vl,101:$Vm,102:$Vn,106:156,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vz1,[2,145]),o($Vz1,[2,146]),o($Vk1,[2,129]),o($V31,[2,122]),{7:224,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,98:[1,250],99:251,100:$Vl,101:$Vm,102:$Vn,106:156,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{28:252,29:$V81,115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},o($VA1,[2,159],{124:71,115:92,121:93,116:$Vr,117:[1,253],118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VA1,[2,161],{124:71,115:92,121:93,116:$Vr,117:[1,254],118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VQ,[2,167]),o($VB1,[2,168],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,138,141,142,145,146,147,148,149,150,151],[2,172],{123:[1,255]}),o($VC1,[2,175]),{31:172,32:$V2,55:173,69:174,70:175,87:$Vi,101:$V61,102:$V71,126:256,128:171},o($VC1,[2,181],{65:[1,257]}),o($VD1,[2,177]),o($VD1,[2,178]),o($VD1,[2,179]),o($VD1,[2,180]),o($VQ,[2,174]),{7:258,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:259,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o([6,29,89],$Vo1,{64:260,65:$VE1}),o($VF1,[2,106]),o($VF1,[2,47],{53:[1,262]}),o($VG1,[2,55],{50:[1,263]}),o($VF1,[2,52]),o($VG1,[2,56]),o($VH1,[2,53]),o($VH1,[2,54]),{43:[1,264],73:108,77:$VR,78:$VS,79:$VT,80:$VU,81:104,82:$VV,85:$VW,92:107,96:$VX,97:$VY},o($Vt1,$Va1),{6:$VD,39:[1,265]},o($VE,[2,4]),o($VI1,[2,213],{124:71,115:92,121:93,145:$VI,146:$VJ,147:$VK}),o($VI1,[2,214],{124:71,115:92,121:93,145:$VI,146:$VJ,147:$VK}),o($Vs1,[2,215],{124:71,115:92,121:93,145:$VI,147:$VK}),o($Vs1,[2,216],{124:71,115:92,121:93,145:$VI,147:$VK}),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,148,149,150,151],[2,217],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK}),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,149,150],[2,218],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,151:$VO}),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,150],[2,219],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,151:$VO}),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,123,138,149,150,151],[2,220],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL}),o($VB1,[2,203],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VB1,[2,202],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($V31,[2,118]),o($Vh1,[2,94]),o($Vh1,[2,95]),o($Vh1,[2,96]),o($Vh1,[2,97]),{84:[1,266]},{68:$Vl1,84:[2,102],104:267,105:$Vm1,115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{84:[2,103]},{7:268,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,84:[2,138],87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VJ1,[2,132]),o($VJ1,$VK1),o($Vh1,[2,101]),o($V31,[2,119]),o($VE,[2,59],{124:71,115:92,121:93,116:$Vv1,118:$Vv1,122:$Vv1,138:$Vv1,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vn1,[2,27],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vn1,[2,44],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{7:269,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:270,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{61:271,62:$Vg,63:$Vh},o($VL1,$VM1,{67:117,31:119,55:120,69:121,70:122,66:272,32:$V2,68:$V51,87:$Vi,101:$V61,102:$V71}),{6:$VN1,29:$VO1},o($Vq1,[2,74]),{7:275,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vz1,$Vw1,{124:71,115:92,121:93,68:[1,276],116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VP1,[2,28]),{6:$VD,30:[1,277]},o($Vn1,[2,221],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{7:278,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:279,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vn1,[2,224],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VQ,[2,201]),{7:280,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VQ,[2,150],{110:[1,281]}),{28:282,29:$V81},{28:285,29:$V81,31:283,32:$V2,70:284,87:$Vi},{132:286,134:238,135:$Vu1},{30:[1,287],133:[1,288],134:289,135:$Vu1},o($VQ1,[2,194]),{7:291,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,107:290,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VR1,[2,112],{124:71,115:92,121:93,28:292,29:$V81,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VQ,[2,115]),{7:293,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($V11,[2,157]),{6:$VD,30:[1,294]},{7:295,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o([12,26,32,34,35,37,38,41,42,45,46,47,48,56,57,58,62,63,87,90,95,100,101,102,108,112,113,116,118,120,122,131,137,139,140,141,142,143,144],$VK1,{6:$VS1,29:$VS1,65:$VS1,103:$VS1}),{6:$VT1,29:$VU1,103:[1,296]},o([6,29,30,98,103],$VM1,{13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,10:20,11:21,49:24,44:25,74:26,75:27,76:28,94:29,61:31,72:38,136:39,115:41,119:42,121:43,69:49,70:50,33:51,40:53,31:64,55:65,124:71,36:75,8:112,71:158,7:224,106:299,12:$V0,26:$V$,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,41:$V7,42:$V8,45:$V9,46:$Va,47:$Vb,48:$Vc,56:$Vd,57:$Ve,58:$Vf,62:$Vg,63:$Vh,68:$Ve1,87:$Vi,90:$Vj,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,116:$Vr,118:$Vs,120:$Vt,122:$Vu,131:$Vv,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC}),o($VL1,$Vo1,{64:300,65:$Vy1}),o($V31,[2,125]),o([6,29,98],$Vo1,{64:301,65:$Vy1}),o($VV1,[2,198]),{7:302,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:303,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:304,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VC1,[2,176]),{31:172,32:$V2,55:173,69:174,70:175,87:$Vi,101:$V61,102:$V71,128:305},o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,118,122,138],[2,183],{124:71,115:92,121:93,117:[1,306],123:[1,307],141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VW1,[2,184],{124:71,115:92,121:93,117:[1,308],141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{6:$VX1,29:$VY1,89:[1,309]},o([6,29,30,89],$VM1,{36:75,52:181,54:182,11:183,33:184,31:185,55:186,51:312,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,57:$Ve,101:$V61}),{7:313,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,314],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:315,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:[1,316],31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($V11,[2,37]),o($Vj1,[2,35]),o($Vh1,[2,100]),{7:317,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,84:[2,136],87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{84:[2,137],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},o($Vn1,[2,45],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{30:[1,318],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{28:319,29:$V81},o($Vq1,[2,70]),{31:119,32:$V2,55:120,66:320,67:117,68:$V51,69:121,70:122,87:$Vi,101:$V61,102:$V71},o($VZ1,$V41,{66:116,67:117,31:119,55:120,69:121,70:122,59:321,32:$V2,68:$V51,87:$Vi,101:$V61,102:$V71}),o($Vq1,[2,75],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vz1,$VS1),o($VP1,[2,29]),{30:[1,322],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},o($Vn1,[2,223],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{28:323,29:$V81,115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{28:324,29:$V81},o($VQ,[2,151]),{28:325,29:$V81},{28:326,29:$V81},o($V_1,[2,155]),{30:[1,327],133:[1,328],134:289,135:$Vu1},o($VQ,[2,192]),{28:329,29:$V81},o($VQ1,[2,195]),{28:330,29:$V81,65:[1,331]},o($V$1,[2,147],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VQ,[2,113]),o($VR1,[2,116],{124:71,115:92,121:93,28:332,29:$V81,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{114:[1,333]},{103:[1,334],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},o($Vx1,[2,131]),{7:224,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,106:335,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:224,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,29:$Vd1,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,68:$Ve1,69:49,70:50,71:158,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,99:336,100:$Vl,101:$Vm,102:$Vn,106:156,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vz1,[2,140]),{6:$VT1,29:$VU1,30:[1,337]},{6:$VT1,29:$VU1,98:[1,338]},o($VB1,[2,160],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VB1,[2,162],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VB1,[2,173],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VC1,[2,182]),{7:339,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:340,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:341,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($Vx1,[2,104]),{11:183,31:185,32:$V2,33:184,34:$V3,35:$V4,36:75,37:$V5,38:$V6,51:342,52:181,54:182,55:186,57:$Ve,101:$V61},o($VZ1,$Vi1,{36:75,51:180,52:181,54:182,11:183,33:184,31:185,55:186,88:343,32:$V2,34:$V3,35:$V4,37:$V5,38:$V6,57:$Ve,101:$V61}),o($VF1,[2,107]),o($VF1,[2,48],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{7:344,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VF1,[2,50],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{7:345,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{84:[2,135],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},o($VQ,[2,46]),o($VQ,[2,62]),o($Vq1,[2,71]),o($VL1,$Vo1,{64:346,65:$Vp1}),o($VQ,[2,222]),o($VV1,[2,199]),o($VQ,[2,152]),o($V_1,[2,153]),o($V_1,[2,154]),o($VQ,[2,190]),{28:347,29:$V81},{30:[1,348]},o($VQ1,[2,196],{6:[1,349]}),{7:350,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},o($VQ,[2,117]),o($V11,[2,158]),o($V11,[2,134]),o($Vz1,[2,141]),o($VL1,$Vo1,{64:351,65:$Vy1}),o($Vz1,[2,142]),o($V31,[2,126]),o([1,6,29,30,39,60,65,68,84,89,98,103,105,114,116,117,118,122,138],[2,185],{124:71,115:92,121:93,123:[1,352],141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VW1,[2,187],{124:71,115:92,121:93,117:[1,353],141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vn1,[2,186],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VF1,[2,108]),o($VL1,$Vo1,{64:354,65:$VE1}),{30:[1,355],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{30:[1,356],115:92,116:$Vr,118:$Vs,121:93,122:$Vu,124:71,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO},{6:$VN1,29:$VO1,30:[1,357]},{30:[1,358]},o($VQ,[2,193]),o($VQ1,[2,197]),o($V$1,[2,148],{124:71,115:92,121:93,116:$Vr,118:$Vs,122:$Vu,138:$VF,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),{6:$VT1,29:$VU1,30:[1,359]},{7:360,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{7:361,8:112,10:20,11:21,12:$V0,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:19,26:$V$,31:64,32:$V2,33:51,34:$V3,35:$V4,36:75,37:$V5,38:$V6,40:53,41:$V7,42:$V8,44:25,45:$V9,46:$Va,47:$Vb,48:$Vc,49:24,55:65,56:$Vd,57:$Ve,58:$Vf,61:31,62:$Vg,63:$Vh,69:49,70:50,72:38,74:26,75:27,76:28,87:$Vi,90:$Vj,94:29,95:$Vk,100:$Vl,101:$Vm,102:$Vn,108:$Vo,112:$Vp,113:$Vq,115:41,116:$Vr,118:$Vs,119:42,120:$Vt,121:43,122:$Vu,124:71,131:$Vv,136:39,137:$Vw,139:$Vx,140:$Vy,141:$Vz,142:$VA,143:$VB,144:$VC},{6:$VX1,29:$VY1,30:[1,362]},o($VF1,[2,49]),o($VF1,[2,51]),o($Vq1,[2,72]),o($VQ,[2,191]),o($Vz1,[2,143]),o($Vn1,[2,188],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($Vn1,[2,189],{124:71,115:92,121:93,141:$VG,142:$VH,145:$VI,146:$VJ,147:$VK,148:$VL,149:$VM,150:$VN,151:$VO}),o($VF1,[2,109])], +defaultActions: {62:[2,64],63:[2,65],99:[2,124],208:[2,103]}, parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); diff --git a/lib/coffee-script/rewriter.js b/lib/coffee-script/rewriter.js index 007bb870..29b0b52d 100644 --- a/lib/coffee-script/rewriter.js +++ b/lib/coffee-script/rewriter.js @@ -487,7 +487,7 @@ IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; - IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'STRING_START', 'JS', 'REGEX', 'REGEX_START', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; + IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'INFINITY', 'STRING', 'STRING_START', 'JS', 'REGEX', 'REGEX_START', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; IMPLICIT_UNSPACED_CALL = ['+', '-']; diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 87b33f58..732e34e4 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -251,7 +251,7 @@ parser.yy.parseError = (message, {token}) -> 'end of input' when errorTag in ['INDENT', 'OUTDENT'] 'indentation' - when errorTag in ['IDENTIFIER', 'NUMBER', 'STRING', 'STRING_START', 'REGEX', 'REGEX_START'] + when errorTag in ['IDENTIFIER', 'NUMBER', 'INFINITY', 'STRING', 'STRING_START', 'REGEX', 'REGEX_START'] errorTag.replace(/_START$/, '').toLowerCase() else helpers.nameWhitespaceCharacter errorText diff --git a/src/grammar.coffee b/src/grammar.coffee index eda9b783..d194f675 100644 --- a/src/grammar.coffee +++ b/src/grammar.coffee @@ -96,7 +96,7 @@ grammar = Statement: [ o 'Return' o 'Comment' - o 'STATEMENT', -> new Literal $1 + o 'STATEMENT', -> new StatementLiteral $1 ] # All the different types of expressions in our language. The basic unit of @@ -135,36 +135,36 @@ grammar = # A literal identifier, a variable name or property. Identifier: [ - o 'IDENTIFIER', -> new Literal $1 + o 'IDENTIFIER', -> new IdentifierLiteral $1 ] # Alphanumerics are separated from the other **Literal** matchers because # they can also serve as keys in object literals. AlphaNumeric: [ - o 'NUMBER', -> new Literal $1 + o 'NUMBER', -> new NumberLiteral $1 + o 'INFINITY', -> new InfinityLiteral $1 o 'String' ] String: [ - o 'STRING', -> new Literal $1 - o 'STRING_START Body STRING_END', -> new Parens $2 + o 'STRING', -> new StringLiteral $1 + o 'STRING_START Body STRING_END', -> new StringWithInterpolations $2 ] Regex: [ - o 'REGEX', -> new Literal $1 - o 'REGEX_START Invocation REGEX_END', -> $2 + o 'REGEX', -> new RegexLiteral $1 + o 'REGEX_START Invocation REGEX_END', -> new RegexWithInterpolations $2.args ] # All of our immediate values. Generally these can be passed straight # through and printed to JavaScript. Literal: [ o 'AlphaNumeric' - o 'JS', -> new Literal $1 + o 'JS', -> new PassthroughLiteral $1 o 'Regex' - o 'DEBUGGER', -> new Literal $1 - o 'UNDEFINED', -> new Undefined - o 'NULL', -> new Null - o 'BOOL', -> new Bool $1 + o 'UNDEFINED', -> new UndefinedLiteral + o 'NULL', -> new NullLiteral + o 'BOOL', -> new BooleanLiteral $1 ] # Assignment of a variable, property, or index to a value. @@ -299,9 +299,9 @@ grammar = Accessor: [ o '. Identifier', -> new Access $2 o '?. Identifier', -> new Access $2, 'soak' - o ':: Identifier', -> [LOC(1)(new Access new Literal('prototype')), LOC(2)(new Access $2)] - o '?:: Identifier', -> [LOC(1)(new Access new Literal('prototype'), 'soak'), LOC(2)(new Access $2)] - o '::', -> new Access new Literal 'prototype' + o ':: Identifier', -> [LOC(1)(new Access new IdentifierLiteral('prototype')), LOC(2)(new Access $2)] + o '?:: Identifier', -> [LOC(1)(new Access new IdentifierLiteral('prototype'), 'soak'), LOC(2)(new Access $2)] + o '::', -> new Access new IdentifierLiteral 'prototype' o 'Index' ] @@ -348,8 +348,12 @@ grammar = Invocation: [ o 'Value OptFuncExist Arguments', -> new Call $1, $3, $2 o 'Invocation OptFuncExist Arguments', -> new Call $1, $3, $2 - o 'SUPER', -> new Call 'super', [new Splat new Literal 'arguments'] - o 'SUPER Arguments', -> new Call 'super', $2 + o 'Super' + ] + + Super: [ + o 'SUPER', -> new SuperCall + o 'SUPER Arguments', -> new SuperCall $2 ] # An optional existence check on a function. @@ -366,13 +370,13 @@ grammar = # A reference to the *this* current object. This: [ - o 'THIS', -> new Value new Literal 'this' - o '@', -> new Value new Literal 'this' + o 'THIS', -> new Value new ThisLiteral + o '@', -> new Value new ThisLiteral ] # A reference to a property on *this*. ThisProperty: [ - o '@ Identifier', -> new Value LOC(1)(new Literal('this')), [LOC(2)(new Access($2))], 'this' + o '@ Identifier', -> new Value LOC(1)(new ThisLiteral), [LOC(2)(new Access($2))], 'this' ] # The array literal. @@ -473,8 +477,8 @@ grammar = ] Loop: [ - o 'LOOP Block', -> new While(LOC(1) new Literal 'true').addBody $2 - o 'LOOP Expression', -> new While(LOC(1) new Literal 'true').addBody LOC(2) Block.wrap [$2] + o 'LOOP Block', -> new While(LOC(1) new BooleanLiteral 'true').addBody $2 + o 'LOOP Expression', -> new While(LOC(1) new BooleanLiteral 'true').addBody LOC(2) Block.wrap [$2] ] # Array, object, and range comprehensions, at the most generic level. diff --git a/src/lexer.coffee b/src/lexer.coffee index e22b6913..5307fa98 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -142,8 +142,6 @@ exports.Lexer = class Lexer if id in JS_FORBIDDEN if forcedIdentifier tag = 'IDENTIFIER' - id = new String id - id.reserved = yes else if id in RESERVED @error "reserved word '#{id}'", length: id.length @@ -156,7 +154,8 @@ exports.Lexer = class Lexer when '==', '!=' then 'COMPARE' when '&&', '||' then 'LOGIC' when 'true', 'false' then 'BOOL' - when 'break', 'continue' then 'STATEMENT' + when 'break', 'continue', \ + 'debugger' then 'STATEMENT' else tag tagToken = @token tag, id, 0, idLength @@ -187,10 +186,15 @@ exports.Lexer = class Lexer else if /^0\d+/.test number @error "octal literal '#{number}' must be prefixed with '0o'", length: lexedLength 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 - @token 'NUMBER', number, 0, lexedLength + numberValue = parseInt(octalLiteral[1], 8) + number = "0x#{numberValue.toString 16}" + else if binaryLiteral = /^0b([01]+)/.exec number + numberValue = parseInt(binaryLiteral[1], 2) + number = "0x#{numberValue.toString 16}" + else + numberValue = parseFloat(number) + tag = if numberValue is Infinity then 'INFINITY' else 'NUMBER' + @token tag, number, 0, lexedLength lexedLength # Matches strings, including multi-line strings, as well as heredocs, with or without @@ -408,7 +412,7 @@ exports.Lexer = class Lexer tag = value [..., prev] = @tokens if value is '=' and prev - if not prev[1].reserved and prev[1] in JS_FORBIDDEN + if prev.variable and prev[1] in JS_FORBIDDEN prev = prev.origin if prev.origin @error "reserved word '#{prev[1]}' can't be assigned", prev[2] if prev[1] in ['||', '&&'] @@ -786,6 +790,7 @@ 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 +exports.JS_FORBIDDEN = JS_FORBIDDEN # The character code of the nasty Microsoft madness otherwise known as the BOM. BOM = 65279 @@ -918,7 +923,7 @@ BOOL = ['TRUE', 'FALSE'] # of a function invocation or indexing operation. CALLABLE = ['IDENTIFIER', ')', ']', '?', '@', 'THIS', 'SUPER'] INDEXABLE = CALLABLE.concat [ - 'NUMBER', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END' + 'NUMBER', 'INFINITY', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END' 'BOOL', 'NULL', 'UNDEFINED', '}', '::' ] diff --git a/src/nodes.coffee b/src/nodes.coffee index c1fad3fb..8796b72e 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -6,7 +6,7 @@ Error.stackTraceLimit = Infinity {Scope} = require './scope' -{RESERVED, STRICT_PROSCRIBED} = require './lexer' +{RESERVED, STRICT_PROSCRIBED, JS_FORBIDDEN} = require './lexer' # Import the helpers we plan to use. {compact, flatten, extend, merge, del, starts, ends, some, @@ -82,13 +82,13 @@ exports.Base = class Base func = new Code [], Block.wrap [this] args = [] if (argumentsNode = @contains isLiteralArguments) or @contains isLiteralThis - args = [new Literal 'this'] + args = [new ThisLiteral] if argumentsNode meth = 'apply' - args.push new Literal 'arguments' + args.push new IdentifierLiteral 'arguments' else meth = 'call' - func = new Value func, [new Access new Literal meth] + func = new Value func, [new Access new IdentifierLiteral meth] parts = (new Call func, args).compileNode o if func.isGenerator or func.base?.isGenerator parts.unshift @makeCode "(yield* " @@ -105,7 +105,7 @@ exports.Base = class Base cache: (o, level, isComplex) -> complex = if isComplex? then isComplex this else @isComplex() if complex - ref = new Literal o.scope.freeVariable 'ref' + ref = new IdentifierLiteral o.scope.freeVariable 'ref' sub = new Assign ref, this if level then [sub.compileToFragments(o, level), [@makeCode(ref.value)]] else [sub, ref] else @@ -181,6 +181,7 @@ exports.Base = class Base isComplex : YES isChainable : NO isAssignable : NO + isNumber : NO unwrap : THIS unfoldSoak : NO @@ -380,59 +381,70 @@ exports.Block = class Block extends Base #### Literal -# Literals are static values that can be passed through directly into -# JavaScript without translation, such as: strings, numbers, +# `Literal` is a base class for static values that can be passed through +# directly into JavaScript without translation, such as: strings, numbers, # `true`, `false`, `null`... exports.Literal = class Literal extends Base constructor: (@value) -> - makeReturn: -> - if @isStatement() then this else super - - isAssignable: -> - IDENTIFIER.test @value - - isStatement: -> - @value in ['break', 'continue', 'debugger'] - isComplex: NO assigns: (name) -> name is @value + compileNode: (o) -> + [@makeCode @value] + + toString: -> + " #{if @isStatement() then super else @constructor.name}: #{@value}" + +exports.NumberLiteral = class NumberLiteral extends Literal + +exports.InfinityLiteral = class InfinityLiteral extends NumberLiteral + compileNode: -> + [@makeCode 'Infinity'] + +exports.StringLiteral = class StringLiteral extends Literal + +exports.RegexLiteral = class RegexLiteral extends Literal + +exports.PassthroughLiteral = class PassthroughLiteral extends Literal + +exports.IdentifierLiteral = class IdentifierLiteral extends Literal + isAssignable: -> @value not in RESERVED + +exports.StatementLiteral = class StatementLiteral extends Literal + isStatement: YES + + makeReturn: THIS + jumps: (o) -> return this if @value is 'break' and not (o?.loop or o?.block) return this if @value is 'continue' and not o?.loop compileNode: (o) -> - code = if @value is 'this' - if o.scope.method?.bound then o.scope.method.context else @value - else if @value.reserved - "\"#{@value}\"" - else - @value - answer = if @isStatement() then "#{@tab}#{code};" else code - [@makeCode answer] + [@makeCode "#{@tab}#{@value};"] - toString: -> - ' "' + @value + '"' +exports.ThisLiteral = class ThisLiteral extends Literal + constructor: -> + super 'this' + + compileNode: (o) -> + code = if o.scope.method?.bound then o.scope.method.context else @value + [@makeCode code] + +exports.UndefinedLiteral = class UndefinedLiteral extends Literal + constructor: -> + super 'undefined' -class exports.Undefined extends Base - isAssignable: NO - isComplex: NO compileNode: (o) -> [@makeCode if o.level >= LEVEL_ACCESS then '(void 0)' else 'void 0'] -class exports.Null extends Base - isAssignable: NO - isComplex: NO - compileNode: -> [@makeCode "null"] +exports.NullLiteral = class NullLiteral extends Literal + constructor: -> + super 'null' -class exports.Bool extends Base - isAssignable: NO - isComplex: NO - compileNode: -> [@makeCode @val] - constructor: (@val) -> +exports.BooleanLiteral = class BooleanLiteral extends Literal #### Return @@ -498,16 +510,20 @@ exports.Value = class Value extends Base isRange : -> @bareLiteral(Range) isComplex : -> @hasProperties() or @base.isComplex() isAssignable : -> @hasProperties() or @base.isAssignable() - isSimpleNumber : -> @bareLiteral(Literal) and SIMPLENUM.test @base.value - isString : -> @bareLiteral(Literal) and IS_STRING.test @base.value - isRegex : -> @bareLiteral(Literal) and IS_REGEX.test @base.value + isNumber : -> @bareLiteral(NumberLiteral) + isString : -> @bareLiteral(StringLiteral) + isRegex : -> @bareLiteral(RegexLiteral) + isUndefined : -> @bareLiteral(UndefinedLiteral) + isNull : -> @bareLiteral(NullLiteral) + isBoolean : -> @bareLiteral(BooleanLiteral) isAtomic : -> for node in @properties.concat @base return no if node.soak or node instanceof Call yes - isNotCallable : -> @isSimpleNumber() or @isString() or @isRegex() or - @isArray() or @isRange() or @isSplice() or @isObject() + isNotCallable : -> @isNumber() or @isString() or @isRegex() or + @isArray() or @isRange() or @isSplice() or @isObject() or + @isUndefined() or @isNull() or @isBoolean() isStatement : (o) -> not @properties.length and @base.isStatement o assigns : (name) -> not @properties.length and @base.assigns name @@ -539,11 +555,11 @@ exports.Value = class Value extends Base return [this, this] # `a` `a.b` base = new Value @base, @properties[...-1] if base.isComplex() # `a().b` - bref = new Literal o.scope.freeVariable 'base' + bref = new IdentifierLiteral o.scope.freeVariable 'base' base = new Value new Parens new Assign bref, base return [base, bref] unless name # `a()` if name.isComplex() # `a[b()]` - nref = new Literal o.scope.freeVariable 'name' + nref = new IdentifierLiteral o.scope.freeVariable 'name' name = new Index new Assign nref, name.index nref = new Index nref [base.add(name), new Value(bref or base.base, [nref or name])] @@ -556,7 +572,7 @@ exports.Value = class Value extends Base @base.front = @front props = @properties fragments = @base.compileToFragments o, (if props.length then LEVEL_ACCESS else null) - if (@base instanceof Parens or props.length) and SIMPLENUM.test fragmentsToText fragments + if props.length and SIMPLENUM.test fragmentsToText fragments fragments.push @makeCode '.' for prop in props fragments.push (prop.compileToFragments o)... @@ -573,7 +589,7 @@ exports.Value = class Value extends Base fst = new Value @base, @properties[...i] snd = new Value @base, @properties[i..] if fst.isComplex() - ref = new Literal o.scope.freeVariable 'ref' + ref = new IdentifierLiteral o.scope.freeVariable 'ref' fst = new Parens new Assign ref, fst snd.base = ref return new If new Existence(fst), snd, soak: on @@ -597,15 +613,12 @@ exports.Comment = class Comment extends Base #### Call -# Node for a function invocation. Takes care of converting `super()` calls into -# calls against the prototype's function of the same name. +# Node for a function invocation. exports.Call = class Call extends Base - constructor: (variable, @args = [], @soak) -> + constructor: (@variable, @args = [], @soak) -> @isNew = false - @isSuper = variable is 'super' - @variable = if @isSuper then null else variable - if variable instanceof Value and variable.isNotCallable() - variable.error "literal is not a function" + if @variable instanceof Value and @variable.isNotCallable() + @variable.error "literal is not a function" children: ['variable', 'args'] @@ -618,45 +631,15 @@ exports.Call = class Call extends Base @isNew = true this - # Grab the reference to the superclass's implementation of the current - # method. - superReference: (o) -> - method = o.scope.namedMethod() - if method?.klass - {klass, name, variable} = method - if klass.isComplex() - bref = new Literal o.scope.parent.freeVariable 'base' - base = new Value new Parens new Assign bref, klass - variable.base = base - variable.properties.splice 0, klass.properties.length - if name.isComplex() or (name instanceof Index and name.index.isAssignable()) - nref = new Literal o.scope.parent.freeVariable 'name' - name = new Index new Assign nref, name.index - variable.properties.pop() - variable.properties.push name - accesses = [new Access new Literal '__super__'] - accesses.push new Access new Literal 'constructor' if method.static - accesses.push if nref? then new Index nref else name - (new Value bref ? klass, accesses).compile o - else if method?.ctor - "#{method.name}.__super__.constructor" - else - @error 'cannot call super outside of an instance method.' - - # The appropriate `this` value for a `super` call. - superThis : (o) -> - method = o.scope.method - (method and not method.klass and method.context) or "this" - # Soaked chained invocations unfold into if/else ternary structures. unfoldSoak: (o) -> if @soak - if @variable - return ifn if ifn = unfoldSoak o, this, 'variable' - [left, rite] = new Value(@variable).cacheReference o - else + if this instanceof SuperCall left = new Literal @superReference o rite = new Value left + else + return ifn if ifn = unfoldSoak o, this, 'variable' + [left, rite] = new Value(@variable).cacheReference o rite = new Call rite, @args rite.isNew = @isNew left = new Literal "typeof #{ left.compile o } === \"function\"" @@ -692,7 +675,7 @@ exports.Call = class Call extends Base compiledArgs.push (arg.compileToFragments o, LEVEL_LIST)... fragments = [] - if @isSuper + if this instanceof SuperCall preface = @superReference(o) + ".call(#{@superThis(o)}" if compiledArgs.length then preface += ", " fragments.push @makeCode preface @@ -711,7 +694,7 @@ exports.Call = class Call extends Base # # splatArgs is an array of CodeFragments to put into the 'apply'. compileSplat: (o, splatArgs) -> - if @isSuper + if this instanceof SuperCall return [].concat @makeCode("#{ @superReference o }.apply(#{@superThis(o)}, "), splatArgs, @makeCode(")") @@ -745,6 +728,54 @@ exports.Call = class Call extends Base answer = answer.concat fun answer = answer.concat @makeCode(".apply(#{ref}, "), splatArgs, @makeCode(")") +#### Super + +# Takes care of converting `super()` calls into calls against the prototype's +# function of the same name. +exports.SuperCall = class SuperCall extends Call + constructor: (args) -> + super null, args ? [new Splat new IdentifierLiteral 'arguments'] + # Allow to recognize a bare `super` call without parentheses and arguments. + @isBare = args? + + # Grab the reference to the superclass's implementation of the current + # method. + superReference: (o) -> + method = o.scope.namedMethod() + if method?.klass + {klass, name, variable} = method + if klass.isComplex() + bref = new IdentifierLiteral o.scope.parent.freeVariable 'base' + base = new Value new Parens new Assign bref, klass + variable.base = base + variable.properties.splice 0, klass.properties.length + if name.isComplex() or (name instanceof Index and name.index.isAssignable()) + nref = new IdentifierLiteral o.scope.parent.freeVariable 'name' + name = new Index new Assign nref, name.index + variable.properties.pop() + variable.properties.push name + accesses = [new Access new IdentifierLiteral '__super__'] + accesses.push new Access new IdentifierLiteral 'constructor' if method.static + accesses.push if nref? then new Index nref else name + (new Value bref ? klass, accesses).compile o + else if method?.ctor + "#{method.name}.__super__.constructor" + else + @error 'cannot call super outside of an instance method.' + + # The appropriate `this` value for a `super` call. + superThis : (o) -> + method = o.scope.method + (method and not method.klass and method.context) or "this" + +#### RegexWithInterpolations + +# Regexes with interpolations are in fact just a variation of a `Call` (a +# `RegExp()` call to be precise) with a `StringWithInterpolations` inside. +exports.RegexWithInterpolations = class RegexWithInterpolations extends Call + constructor: (args = []) -> + super (new Value new IdentifierLiteral 'RegExp'), args, false + #### Extends # Node to extend an object's prototype with an ancestor object. @@ -772,12 +803,14 @@ exports.Access = class Access extends Base compileToFragments: (o) -> name = @name.compileToFragments o - if IDENTIFIER.test fragmentsToText name - name.unshift @makeCode "." + node = @name.unwrap() + if node instanceof IdentifierLiteral + if node.value in JS_FORBIDDEN + [@makeCode('["'), name..., @makeCode('"]')] + else + [@makeCode('.'), name...] else - name.unshift @makeCode "[" - name.push @makeCode "]" - name + [@makeCode('['), name..., @makeCode(']')] isComplex: NO @@ -818,8 +851,9 @@ exports.Range = class Range extends Base [@fromC, @fromVar] = @cacheToCodeFragments @from.cache o, LEVEL_LIST, isComplex [@toC, @toVar] = @cacheToCodeFragments @to.cache o, LEVEL_LIST, isComplex [@step, @stepVar] = @cacheToCodeFragments step.cache o, LEVEL_LIST, isComplex if step = del o, 'step' - [@fromNum, @toNum] = [@fromVar.match(NUMBER), @toVar.match(NUMBER)] - @stepNum = @stepVar.match(NUMBER) if @stepVar + @fromNum = if @from.isNumber() then Number @fromVar else null + @toNum = if @to.isNumber() then Number @toVar else null + @stepNum = if step?.isNumber() then Number @stepVar else null # When compiled normally, the range returns the contents of the *for loop* # needed to iterate over the values in the range. Used by comprehensions. @@ -828,7 +862,7 @@ exports.Range = class Range extends Base return @compileArray(o) unless o.index # Set up endpoints. - known = @fromNum and @toNum + known = @fromNum? and @toNum? idx = del o, 'index' idxName = del o, 'name' namedIndex = idxName and idxName isnt idx @@ -838,10 +872,10 @@ exports.Range = class Range extends Base [lt, gt] = ["#{idx} <#{@equals}", "#{idx} >#{@equals}"] # Generate the condition. - condPart = if @stepNum - if parseNum(@stepNum[0]) > 0 then "#{lt} #{@toVar}" else "#{gt} #{@toVar}" + condPart = if @stepNum? + if @stepNum > 0 then "#{lt} #{@toVar}" else "#{gt} #{@toVar}" else if known - [from, to] = [parseNum(@fromNum[0]), parseNum(@toNum[0])] + [from, to] = [@fromNum, @toNum] if from <= to then "#{lt} #{to}" else "#{gt} #{to}" else cond = if @stepVar then "#{@stepVar} > 0" else "#{@fromVar} <= #{@toVar}" @@ -870,15 +904,16 @@ exports.Range = class Range extends Base # When used as a value, expand the range into the equivalent array. compileArray: (o) -> - if @fromNum and @toNum and Math.abs(@fromNum - @toNum) <= 20 - range = [+@fromNum..+@toNum] + known = @fromNum? and @toNum? + if known and Math.abs(@fromNum - @toNum) <= 20 + range = [@fromNum..@toNum] range.pop() if @exclusive return [@makeCode "[#{ range.join(', ') }]"] idt = @tab + TAB i = o.scope.freeVariable 'i', single: true result = o.scope.freeVariable 'results' pre = "\n#{idt}#{result} = [];" - if @fromNum and @toNum + if known o.index = i body = fragmentsToText @compileNode o else @@ -915,7 +950,7 @@ exports.Slice = class Slice extends Base if not (not @range.exclusive and +compiledText is -1) toStr = ', ' + if @range.exclusive compiledText - else if SIMPLENUM.test compiledText + else if to.isNumber() "#{+compiledText + 1}" else compiled = to.compileToFragments o, LEVEL_ACCESS @@ -975,7 +1010,7 @@ exports.Obj = class Obj extends Base value = prop.value else [key, value] = prop.base.cache o - prop = new Assign (new Value (new Literal oref), [new Access key]), value + prop = new Assign (new Value (new IdentifierLiteral oref), [new Access key]), value if indent then answer.push @makeCode indent answer.push prop.compileToFragments(o, LEVEL_TOP)... if join then answer.push @makeCode join @@ -1034,24 +1069,26 @@ exports.Class = class Class extends Base children: ['variable', 'parent', 'body'] + defaultClassVariableName: '_Class' + # Figure out the appropriate name for the constructor function of this class. determineName: -> - return null unless @variable + return @defaultClassVariableName unless @variable [..., tail] = @variable.properties - decl = if tail - tail instanceof Access and tail.name.value + node = if tail + tail instanceof Access and tail.name else - @variable.base.value - if decl in STRICT_PROSCRIBED - @variable.error "class variable name may not be #{decl}" - decl and= IDENTIFIER.test(decl) and decl + @variable.base + return @defaultClassVariableName unless node instanceof IdentifierLiteral + name = node.value + if name in JS_FORBIDDEN then "_#{name}" else name # For all `this`-references and bound functions in the class definition, # `this` is the Class being constructed. setContext: (name) -> @body.traverseChildren false, (node) -> return false if node.classBody - if node instanceof Literal and node.value is 'this' + if node instanceof ThisLiteral node.value = name else if node instanceof Code node.context = name if node.bound @@ -1060,7 +1097,7 @@ exports.Class = class Class extends Base # constructor. addBoundFunctions: (o) -> for bvar in @boundFuncs - lhs = (new Value (new Literal "this"), [new Access bvar]).compile o + lhs = (new Value (new ThisLiteral), [new Access bvar]).compile o @ctor.body.unshift new Literal "#{lhs} = #{utility 'bind', o}(#{lhs}, this)" return @@ -1082,13 +1119,13 @@ exports.Class = class Class extends Base assign = @ctor = func else @externalCtor = o.classScope.freeVariable 'class' - assign = new Assign new Literal(@externalCtor), func + assign = new Assign new IdentifierLiteral(@externalCtor), func else if assign.variable.this func.static = yes else acc = if base.isComplex() then new Index base else new Access base - assign.variable = new Value(new Literal(name), [(new Access new Literal 'prototype'), acc]) + assign.variable = new Value(new IdentifierLiteral(name), [(new Access new IdentifierLiteral 'prototype'), acc]) if func instanceof Code and func.bound @boundFuncs.push base func.bound = no @@ -1145,9 +1182,8 @@ exports.Class = class Class extends Base if argumentsNode = @body.contains isLiteralArguments argumentsNode.error "Class bodies shouldn't reference arguments" - name = @determineName() or '_Class' - name = "_#{name}" if name.reserved - lname = new Literal name + name = @determineName() + lname = new IdentifierLiteral name func = new Code [], Block.wrap [@body] args = [] o.classScope = func.makeScope o.scope @@ -1161,7 +1197,7 @@ exports.Class = class Class extends Base @body.expressions.push lname if @parent - superClass = new Literal o.classScope.freeVariable 'superClass', reserve: no + superClass = new IdentifierLiteral o.classScope.freeVariable 'superClass', reserve: no @body.expressions.unshift new Extends lname, superClass func.params.push new Param superClass args.push @parent @@ -1227,7 +1263,13 @@ exports.Assign = class Assign extends Base val = @value.compileToFragments o, LEVEL_LIST @variable.front = true if isValue and @variable.base instanceof Obj compiledName = @variable.compileToFragments o, LEVEL_LIST - return (compiledName.concat @makeCode(": "), val) if @context is 'object' + + if @context is 'object' + if fragmentsToText(compiledName) in JS_FORBIDDEN + compiledName.unshift @makeCode '"' + compiledName.push @makeCode '"' + return compiledName.concat @makeCode(": "), val + answer = compiledName.concat @makeCode(" #{ @context or '=' } "), val if o.level <= LEVEL_LIST then answer else @wrapInBraces answer @@ -1263,8 +1305,8 @@ exports.Assign = class Assign extends Base if obj.this then obj.properties[0].name else obj else # A regular array pattern-match. - new Literal 0 - acc = IDENTIFIER.test idx.unwrap().value + new NumberLiteral 0 + acc = idx.unwrap() instanceof IdentifierLiteral value = new Value value value.properties.push new (if acc then Access else Index) idx if obj.unwrap().value in RESERVED @@ -1276,7 +1318,7 @@ exports.Assign = class Assign extends Base assigns = [] expandedIdx = false # Make vvar into a simple variable if it isn't already. - if not IDENTIFIER.test(vvarText) or @variable.assigns(vvarText) + if value.unwrap() not instanceof IdentifierLiteral or @variable.assigns(vvarText) assigns.push [@makeCode("#{ ref = o.scope.freeVariable 'ref' } = "), vvar...] vvar = [@makeCode ref] vvarText = ref @@ -1324,7 +1366,7 @@ exports.Assign = class Assign extends Base # A regular array pattern-match. new Literal expandedIdx or idx name = obj.unwrap().value - acc = IDENTIFIER.test idx.unwrap().value + acc = idx.unwrap() instanceof IdentifierLiteral val = new Value new Literal(vvarText), [new (if acc then Access else Index) idx] val = new Op '?', val, defaultValue if defaultValue if name? and name in RESERVED @@ -1341,7 +1383,7 @@ exports.Assign = class Assign extends Base [left, right] = @variable.cacheReference o # Disallow conditional assignment of undefined variables. if not left.properties.length and left.base instanceof Literal and - left.base.value != "this" and not o.scope.check left.base.value + left.base not instanceof ThisLiteral and not o.scope.check left.base.value @variable.error "the variable \"#{left.base.value}\" can't be assigned with #{@context} because it has not been declared before" if "?" in @context o.isExistentialEquals = true @@ -1366,8 +1408,7 @@ exports.Assign = class Assign extends Base else fromDecl = fromRef = '0' if to - if from instanceof Value and from.isSimpleNumber() and - to instanceof Value and to.isSimpleNumber() + if from?.isNumber() and to.isNumber() to = to.compile(o) - fromRef to += 1 unless exclusive else @@ -1413,8 +1454,8 @@ exports.Code = class Code extends Base # Handle bound functions early. if @bound and not @context @context = '_this' - wrapper = new Code [new Param new Literal @context], new Block [this] - boundfunc = new Call(wrapper, [new Literal 'this']) + wrapper = new Code [new Param new IdentifierLiteral @context], new Block [this] + boundfunc = new Call(wrapper, [new ThisLiteral]) boundfunc.updateLocationDataIfMissing @locationData return boundfunc.compileNode(o) @@ -1431,7 +1472,7 @@ exports.Code = class Code extends Base for p in @params when p not instanceof Expansion and p.name.value o.scope.add p.name.value, 'var', yes splats = new Assign new Value(new Arr(p.asReference o for p in @params)), - new Value new Literal 'arguments' + new Value new IdentifierLiteral 'arguments' break for param in @params if param.isComplex() @@ -1502,10 +1543,10 @@ exports.Param = class Param extends Base node = @name if node.this name = node.properties[0].name.value - name = "_#{name}" if name.reserved - node = new Literal o.scope.freeVariable name + name = "_#{name}" if name in JS_FORBIDDEN + node = new IdentifierLiteral o.scope.freeVariable name else if node.isComplex() - node = new Literal o.scope.freeVariable 'arg' + node = new IdentifierLiteral o.scope.freeVariable 'arg' node = new Value node node = new Splat node if @splat node.updateLocationDataIfMissing @locationData @@ -1663,7 +1704,7 @@ exports.While = class While extends Base set = "#{@tab}#{rvar} = [];\n" if @guard if body.expressions.length > 1 - body.expressions.unshift new If (new Parens @guard).invert(), new Literal "continue" + body.expressions.unshift new If (new Parens @guard).invert(), new StatementLiteral "continue" else body = Block.wrap [new If @guard, body] if @guard body = [].concat @makeCode("\n"), (body.compileToFragments o, LEVEL_TOP), @makeCode("\n#{@tab}") @@ -1705,7 +1746,9 @@ exports.Op = class Op extends Base children: ['first', 'second'] - isSimpleNumber: NO + isNumber: -> + @isUnary() and @operator in ['+', '-'] and + @first instanceof Value and @first.isNumber() isYield: -> @operator in ['yield', 'yield*'] @@ -1714,8 +1757,7 @@ exports.Op = class Op extends Base not @second isComplex: -> - not (@isUnary() and @operator in ['+', '-'] and - @first instanceof Value and @first.isSimpleNumber()) + not @isNumber() # Am I capable of # [Python-style comparison chaining](http://docs.python.org/reference/expressions.html#notin)? @@ -1806,7 +1848,7 @@ exports.Op = class Op extends Base # Keep reference to the left expression, unless this an existential assignment compileExistence: (o) -> if @first.isComplex() - ref = new Literal o.scope.freeVariable 'ref' + ref = new IdentifierLiteral o.scope.freeVariable 'ref' fst = new Parens new Assign ref, @first else fst = @first @@ -1849,11 +1891,11 @@ exports.Op = class Op extends Base compilePower: (o) -> # Make a Math.pow call - pow = new Value new Literal('Math'), [new Access new Literal 'pow'] + pow = new Value new IdentifierLiteral('Math'), [new Access new IdentifierLiteral 'pow'] new Call(pow, [@first, @second]).compileToFragments o compileFloorDivision: (o) -> - floor = new Value new Literal('Math'), [new Access new Literal 'floor'] + floor = new Value new IdentifierLiteral('Math'), [new Access new IdentifierLiteral 'floor'] div = new Op '/', @first, @second new Call(floor, [div]).compileToFragments o @@ -1926,7 +1968,7 @@ exports.Try = class Try extends Base catchPart = if @recovery generatedErrorVariableName = o.scope.freeVariable 'error', reserve: no - placeholder = new Literal generatedErrorVariableName + placeholder = new IdentifierLiteral generatedErrorVariableName @recovery.unshift new Assign @errorVariable, placeholder if @errorVariable [].concat @makeCode(" catch ("), placeholder.compileToFragments(o), @makeCode(") {\n"), @recovery.compileToFragments(o, LEVEL_TOP), @makeCode("\n#{@tab}}") @@ -1975,7 +2017,7 @@ exports.Existence = class Existence extends Base compileNode: (o) -> @expression.front = @front code = @expression.compile o, LEVEL_OP - if IDENTIFIER.test(code) and not o.scope.check code + if @expression.unwrap() instanceof IdentifierLiteral and not o.scope.check code [cmp, cnj] = if @negated then ['===', '||'] else ['!==', '&&'] code = "typeof #{code} #{cmp} \"undefined\" #{cnj} #{code} #{cmp} null" else @@ -2008,6 +2050,13 @@ exports.Parens = class Parens extends Base (expr instanceof For and expr.returns)) if bare then fragments else @wrapInBraces fragments +#### StringWithInterpolations + +# Strings with interpolations are in fact just a variation of `Parens` with +# string concatenation inside. + +exports.StringWithInterpolations = class StringWithInterpolations extends Parens + #### For # CoffeeScript's replacement for the *for* loop is our array and object @@ -2054,7 +2103,7 @@ exports.For = class For extends While kvarAssign = if kvar isnt ivar then "#{kvar} = " else "" if @step and not @range [step, stepVar] = @cacheToCodeFragments @step.cache o, LEVEL_LIST, isComplexOrAssignable - stepNum = stepVar.match NUMBER + stepNum = Number stepVar if @step.isNumber() name = ivar if @pattern varPart = '' guardPart = '' @@ -2065,20 +2114,21 @@ exports.For = class For extends While {index: ivar, name, @step, isComplex: isComplexOrAssignable} else svar = @source.compile o, LEVEL_LIST - if (name or @own) and not IDENTIFIER.test svar + if (name or @own) and @source.unwrap() not instanceof IdentifierLiteral defPart += "#{@tab}#{ref = scope.freeVariable 'ref'} = #{svar};\n" svar = ref if name and not @pattern namePart = "#{name} = #{svar}[#{kvar}]" if not @object defPart += "#{@tab}#{step};\n" if step isnt stepVar - lvar = scope.freeVariable 'len' unless @step and stepNum and down = (parseNum(stepNum[0]) < 0) + down = stepNum < 0 + lvar = scope.freeVariable 'len' unless @step and stepNum? and down declare = "#{kvarAssign}#{ivar} = 0, #{lvar} = #{svar}.length" declareDown = "#{kvarAssign}#{ivar} = #{svar}.length - 1" compare = "#{ivar} < #{lvar}" compareDown = "#{ivar} >= 0" if @step - if stepNum + if stepNum? if down compare = compareDown declare = declareDown @@ -2095,7 +2145,7 @@ exports.For = class For extends While body.makeReturn rvar if @guard if body.expressions.length > 1 - body.expressions.unshift new If (new Parens @guard).invert(), new Literal "continue" + body.expressions.unshift new If (new Parens @guard).invert(), new StatementLiteral "continue" else body = Block.wrap [new If @guard, body] if @guard if @pattern @@ -2124,7 +2174,7 @@ exports.For = class For extends While val.properties.length is 1 and val.properties[0].name?.value in ['call', 'apply']) fn = val.base?.unwrapAll() or val - ref = new Literal o.scope.freeVariable 'fn' + ref = new IdentifierLiteral o.scope.freeVariable 'fn' base = new Value ref if val.base [val.base, base] = [base, val] @@ -2317,17 +2367,7 @@ LEVEL_ACCESS = 6 # ...[0] # Tabs are two spaces for pretty printing. TAB = ' ' -IDENTIFIER = /// ^ (?!\d) [$\w\x7f-\uffff]+ $ /// -SIMPLENUM = /^[+-]?\d+$/ -HEXNUM = /^[+-]?0x[\da-f]+/i -NUMBER = ///^[+-]?(?: - 0x[\da-f]+ | # hex - \d*\.?\d+ (?:e[+-]?\d+)? # decimal -)$///i - -# Is a literal value a string/regex? -IS_STRING = /^['"]/ -IS_REGEX = /^\// +SIMPLENUM = /^[+-]?\d+$/ # Helper Functions # ---------------- @@ -2346,23 +2386,13 @@ multident = (code, tab) -> code = code.replace /\n/g, '$&' + tab code.replace /\s+$/, '' -# Parse a number (+- decimal/hexadecimal) -# Examples: 0, -1, 1, 2e3, 2e-3, -0xfe, 0xfe -parseNum = (x) -> - if not x? - 0 - else if x.match HEXNUM - parseInt x, 16 - else - parseFloat x - isLiteralArguments = (node) -> node instanceof Literal and node.value is 'arguments' and not node.asKey isLiteralThis = (node) -> - (node instanceof Literal and node.value is 'this' and not node.asKey) or + (node instanceof ThisLiteral and not node.asKey) or (node instanceof Code and node.bound) or - (node instanceof Call and node.isSuper) + node instanceof SuperCall isComplexOrAssignable = (node) -> node.isComplex() or node.isAssignable?() diff --git a/src/rewriter.coffee b/src/rewriter.coffee index fddd5df7..8a10f47f 100644 --- a/src/rewriter.coffee +++ b/src/rewriter.coffee @@ -483,7 +483,7 @@ IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@ # If preceded by an `IMPLICIT_FUNC`, indicates a function invocation. IMPLICIT_CALL = [ - 'IDENTIFIER', 'NUMBER', 'STRING', 'STRING_START', 'JS', 'REGEX', 'REGEX_START' + 'IDENTIFIER', 'NUMBER', 'INFINITY', 'STRING', 'STRING_START', 'JS', 'REGEX', 'REGEX_START' 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL' 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW' '@', '->', '=>', '[', '(', '{', '--', '++' diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 40853ab7..0e55bf87 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -832,14 +832,14 @@ test "#4130: unassignable in destructured param", -> }) -> console.log "Oh hello!" ''', ''' - [stdin]:2:12: error: "null" cannot be assigned + [stdin]:2:12: error: assignment to a reserved word: null @param : null ^^^^ ''' assertErrorFormat ''' ({a: null}) -> ''', ''' - [stdin]:1:6: error: "null" cannot be assigned + [stdin]:1:6: error: assignment to a reserved word: null ({a: null}) -> ^^^^ ''' diff --git a/test/functions.coffee b/test/functions.coffee index d7a7faba..005700cd 100644 --- a/test/functions.coffee +++ b/test/functions.coffee @@ -86,6 +86,15 @@ test "self-referencing functions", -> changeMe() eq changeMe, 2 +test "#2009: don't touch `` `this` ``", -> + nonceA = {} + nonceB = {} + fn = null + (-> + fn = => this is nonceA and `this` is nonceB + ).call nonceA + ok fn.call nonceB + # Parameter List Features diff --git a/test/numbers.coffee b/test/numbers.coffee index 185f7af6..81f9217c 100644 --- a/test/numbers.coffee +++ b/test/numbers.coffee @@ -29,6 +29,8 @@ eq Number::toString, 42['toString'] eq Number::toString, 42.toString +eq Number::toString, 2e308['toString'] # Infinity + # Non-Integer Literals @@ -74,3 +76,10 @@ test "#2224: hex literals with 0b or B or E", -> eq 176, 0x0b0 eq 177, 0x0B1 eq 225, 0xE1 + +test "Infinity", -> + eq Infinity, CoffeeScript.eval "0b#{Array(1024 + 1).join('1')}" + eq Infinity, CoffeeScript.eval "0o#{Array(342 + 1).join('7')}" + eq Infinity, CoffeeScript.eval "0x#{Array(256 + 1).join('f')}" + eq Infinity, CoffeeScript.eval Array(500 + 1).join('9') + eq Infinity, 2e308