From db216ec384e7aa11b307fd2056dc614d9c60eb2f Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Thu, 13 Apr 2017 10:42:32 -0700 Subject: [PATCH] [CS2] 2.0.0-beta1 (#4499) * Fix browser build to incorporate Markdown-It, not Marked * Update Google Closure Compiler; recompile browser build but with MINIFY=false, because Closure Compiler throws an error on our current code; see https://github.com/google/closure-compiler-js/issues/59 * Bump version to 2.0.0-beta1; do release build, with updated docs and annotated source --- Cakefile | 2 +- docs/v2/annotated-source/grammar.html | 1 + docs/v2/annotated-source/helpers.html | 193 +- docs/v2/annotated-source/lexer.html | 438 +- docs/v2/annotated-source/nodes.html | 1097 +-- docs/v2/browser-compiler/coffeescript.js | 8431 ++++++++++++++++++++-- docs/v2/index.html | 12 +- docs/v2/test.html | 600 +- lib/coffeescript/browser.js | 2 +- lib/coffeescript/cake.js | 2 +- lib/coffeescript/coffeescript.js | 2 +- lib/coffeescript/command.js | 2 +- lib/coffeescript/grammar.js | 2 +- lib/coffeescript/helpers.js | 2 +- lib/coffeescript/index.js | 2 +- lib/coffeescript/lexer.js | 2 +- lib/coffeescript/nodes.js | 2 +- lib/coffeescript/optparse.js | 2 +- lib/coffeescript/register.js | 2 +- lib/coffeescript/repl.js | 2 +- lib/coffeescript/rewriter.js | 2 +- lib/coffeescript/scope.js | 2 +- lib/coffeescript/sourcemap.js | 2 +- package.json | 4 +- 24 files changed, 9567 insertions(+), 1241 deletions(-) diff --git a/Cakefile b/Cakefile index 8b34403d..f97eeebd 100644 --- a/Cakefile +++ b/Cakefile @@ -122,7 +122,7 @@ task 'build:browser', 'build the merged script for inclusion in the browser', -> return #{fs.readFileSync "./package.json"}; })(); """ - for {name, src} in [{name: 'marked', src: 'lib/marked.js'}] + for {name, src} in [{name: 'markdown-it', src: 'dist/markdown-it.min.js'}] code += """ require['#{name}'] = (function() { var exports = {}, module = {exports: exports}; diff --git a/docs/v2/annotated-source/grammar.html b/docs/v2/annotated-source/grammar.html index bdf2497f..fe08fb27 100644 --- a/docs/v2/annotated-source/grammar.html +++ b/docs/v2/annotated-source/grammar.html @@ -996,6 +996,7 @@ and optional references to the superclass.

o 'Identifier AS Identifier', -> new ExportSpecifier $1, $3 o 'Identifier AS DEFAULT', -> new ExportSpecifier $1, new Literal $3 o 'DEFAULT', -> new ExportSpecifier new Literal $1 + o 'DEFAULT AS Identifier', -> new ExportSpecifier new Literal($1), $3 ] diff --git a/docs/v2/annotated-source/helpers.html b/docs/v2/annotated-source/helpers.html index ba22410c..9a12312c 100644 --- a/docs/v2/annotated-source/helpers.html +++ b/docs/v2/annotated-source/helpers.html @@ -122,7 +122,7 @@ arrays, count characters, that sort of thing.

-marked = require 'marked'
+md = require('markdown-it')() @@ -133,27 +133,6 @@ marked = require 'm
-

marked.setOptions - renderer: new marked.Renderer() - gfm: true - tables: true - breaks: false - pedantic: false - sanitize: true - smartLists: true - smartypants: false

- - - - - - -
  • -
    - -
    - -

    Peek at the beginning of a given string to see if it matches a sequence.

    @@ -164,11 +143,11 @@ marked = require 'm
  • -
  • +
  • - +

    Peek at the end of a given string to see if it matches a sequence.

    @@ -181,11 +160,11 @@ marked = require 'm
  • -
  • +
  • - +

    Repeat a string n times.

    @@ -196,11 +175,11 @@ marked = require 'm
  • -
  • +
  • - +

    Use clever algorithm to have O(log(n)) string concatenation operations.

    @@ -216,11 +195,11 @@ marked = require 'm
  • -
  • +
  • - +

    Trim out all falsy values from an array.

    @@ -232,11 +211,11 @@ marked = require 'm
  • -
  • +
  • - +

    Count the number of occurrences of a string in a string.

    @@ -251,11 +230,11 @@ marked = require 'm
  • -
  • +
  • - +

    Merge objects, returning a fresh copy with attributes from both sides. Used every time Base#compile is called, to allow properties in the @@ -269,11 +248,11 @@ options hash to propagate down the tree without polluting other branches.

  • -
  • +
  • - +

    Extend a source object with the properties of another object (shallow copy).

    @@ -287,11 +266,11 @@ options hash to propagate down the tree without polluting other branches.

  • -
  • +
  • - +

    Return a flattened version of an array. Handy for getting a list of children from the nodes.

    @@ -310,11 +289,11 @@ Handy for getting a list of children from the nodes.

  • -
  • +
  • - +

    Delete a key from an object, returning the value. Useful when a node is looking for a particular method in an options hash.

    @@ -329,11 +308,11 @@ looking for a particular method in an options hash.

  • -
  • +
  • - +

    Typical Array::some

    @@ -346,19 +325,43 @@ looking for a particular method in an options hash.

  • +
  • +
    + +
    + +
    +

    Simple function for extracting code from Literate CoffeeScript by stripping +out all non-code blocks, producing a string of CoffeeScript code that can +be compiled “normally.” Uses MarkdownIt +to tell the difference between Markdown and code blocks.

    + +
    + +
    exports.invertLiterate = (code) ->
    +  out = []
    +  md.renderer.rules =
    + +
  • + +
  • -

    Simple function for extracting code from Literate CoffeeScript by stripping -out all non-code blocks, producing a string of CoffeeScript code that can -be compiled “normally.”

    +

    Delete all other rules, since all we want are the code blocks.

    -
    exports.invertLiterate = (code) ->
    +
        code_block: (tokens, idx, options, env, slf) ->
    +      startLine = tokens[idx].map[0]
    +      lines = tokens[idx].content.split '\n'
    +      for line, i in lines
    +        out[startLine + i] = line
    +  md.render code
    +  out.join '\n'
  • @@ -369,60 +372,6 @@ be compiled “normally.”

    -

    Create a placeholder for tabs, that isn’t used anywhere in code, and then -re-insert the tabs after code extraction.

    - - - -
      generateRandomToken = ->
    -    "#{Math.random() * Date.now()}"
    -  while token is undefined or code.indexOf(token) isnt -1
    -    token = generateRandomToken()
    -
    -  code = code.replace "\t", token
    - - - - -
  • -
    - -
    - -
    -

    Parse as markdown, discard everything except code blocks.

    - -
    - -
      out = ""
    -  for item in marked.lexer code, {}
    -    out += "#{item.text}\n" if item.type is 'code'
    - -
  • - - -
  • -
    - -
    - -
    -

    Put the tabs back in.

    - -
    - -
      out.replace token, "\t"
    -  out
    - -
  • - - -
  • -
    - -
    - -

    Merge two jison-style location data objects together. If last is not provided, this will simply return first.

    @@ -440,11 +389,11 @@ If last is not provided, this will simply return first
  • -
  • +
  • - +

    This returns a function which takes an object as a parameter, and if that object is an AST node, updates that object’s locationData. @@ -462,11 +411,11 @@ The object is returned either way.

  • -
  • +
  • - +

    Convert jison location data to a string. obj can be a token, or a locationData.

    @@ -486,11 +435,11 @@ The object is returned either way.

  • -
  • +
  • - +

    A .coffee.md compatible version of basename, that returns the file sans-extension.

    @@ -509,11 +458,11 @@ The object is returned either way.

  • -
  • +
  • - +

    Determine if a filename represents a CoffeeScript file.

    @@ -524,11 +473,11 @@ The object is returned either way.

  • -
  • +
  • - +

    Determine if a filename represents a Literate CoffeeScript file.

    @@ -539,11 +488,11 @@ The object is returned either way.

  • -
  • +
  • - +

    Throws a SyntaxError from a given location. The error’s toString will return an error message following the “standard” @@ -560,11 +509,11 @@ marker showing where the error is.

  • -
  • +
  • - +

    Instead of showing the compiler’s stacktrace, show our custom error message (this is useful when the error bubbles up in Node.js applications that @@ -579,11 +528,11 @@ compile CoffeeScript for example).

  • -
  • +
  • - +

    Update a compiler SyntaxError with source code information if it didn’t have it already.

    @@ -595,11 +544,11 @@ it already.

  • -
  • +
  • - +

    Avoid screwing up the stack property of other errors (i.e. possible bugs).

    @@ -625,11 +574,11 @@ it already.

  • -
  • +
  • - +

    Show only the first line on multi-line errors.

    @@ -641,11 +590,11 @@ it already.

  • -
  • +
  • - +

    Check to see if we’re running on a color-enabled TTY.

    diff --git a/docs/v2/annotated-source/lexer.html b/docs/v2/annotated-source/lexer.html index 8afec0e7..e16bee93 100644 --- a/docs/v2/annotated-source/lexer.html +++ b/docs/v2/annotated-source/lexer.html @@ -220,6 +220,7 @@ it has consumed.

    @seenFor = no # Used to recognize FORIN, FOROF and FORFROM tokens. @seenImport = no # Used to recognize IMPORT FROM? AS? tokens. @seenExport = no # Used to recognize EXPORT FROM? AS? tokens. + @importSpecifierList = no # Used to identify when in an IMPORT {...} FROM? ... @exportSpecifierList = no # Used to identify when in an EXPORT {...} FROM? ... @chunkLine = @@ -381,14 +382,14 @@ though is means === otherwise.

    if @tag() in ['DEFAULT', 'IMPORT_ALL', 'IDENTIFIER'] @token 'AS', id return id.length - if id is 'as' and @seenExport and @tag() is 'IDENTIFIER' + if id is 'as' and @seenExport and @tag() in ['IDENTIFIER', 'DEFAULT'] @token 'AS', id return id.length - if id is 'default' and @seenExport + if id is 'default' and @seenExport and @tag() in ['EXPORT', 'AS'] @token 'DEFAULT', id return id.length - [..., prev] = @tokens + prev = @prev() tag = if colon or prev? and @@ -425,7 +426,30 @@ though is means === otherwise.

    else if tag is 'IDENTIFIER' and @seenFor and id is 'from' and isForFrom(prev) tag = 'FORFROM' - @seenFor = no + @seenFor = no
    + +
  • + + +
  • +
    + +
    + +
    +

    Throw an error on attempts to use get or set as keywords, or +what CoffeeScript would normally interpret as calls to functions named +get or set, i.e. get({foo: function () {}})

    + +
    + +
        else if tag is 'PROPERTY' and prev
    +      if prev.spaced and prev[0] in CALLABLE and /^[gs]et$/.test(prev[1])
    +        @error "'#{prev[1]}' cannot be used as a keyword, or as a function call without parentheses", prev[2]
    +      else
    +        prevprev = @tokens[@tokens.length - 2]
    +        if prev[0] in ['@', 'THIS'] and prevprev and prevprev.spaced and /^[gs]et$/.test(prevprev[1])
    +          @error "'#{prevprev[1]}' cannot be used as a keyword, or as a function call without parentheses", prevprev[2]
     
         if tag is 'IDENTIFIER' and id in RESERVED
           @error "reserved word '#{id}'", length: id.length
    @@ -457,11 +481,11 @@ though is means === otherwise.

  • -
  • +
  • - +

    Matches numbers, including decimals, hex, and exponential notation. Be careful not to interfere with ranges-in-progress.

    @@ -500,11 +524,11 @@ Be careful not to interfere with ranges-in-progress.

  • -
  • +
  • - +

    Matches strings, including multi-line strings, as well as heredocs, with or without interpolation.

    @@ -518,19 +542,20 @@ interpolation.

  • -
  • +
  • - +

    If the preceding token is from and this is an import or export statement, properly tag the from.

    -
        if @tokens.length and @value() is 'from' and (@seenImport or @seenExport)
    -      @tokens[@tokens.length - 1][0] = 'FROM'
    +            
        prev = @prev()
    +    if prev and @value() is 'from' and (@seenImport or @seenExport)
    +      prev[0] = 'FROM'
     
         regex = switch quote
           when "'"   then STRING_SINGLE
    @@ -548,11 +573,11 @@ properly tag the from.

  • -
  • +
  • - +

    Find the smallest indentation. It will be removed from all lines later.

    @@ -586,11 +611,11 @@ properly tag the from.

  • -
  • +
  • - +

    Matches and consumes comments.

    @@ -611,11 +636,11 @@ properly tag the from.

  • -
  • +
  • - +

    Matches JavaScript interpolated directly into the source via backticks.

    @@ -628,11 +653,11 @@ properly tag the from.

  • -
  • +
  • - +

    Convert escaped backticks to backticks, and escaped backslashes just before escaped backticks to backslashes

    @@ -644,11 +669,11 @@ just before escaped backticks to backslashes

  • -
  • +
  • - +

    string is always a value like ‘`‘, ‘\`‘, ‘\\`‘, etc. By reducing it to its latter half, we turn ‘`‘ to ‘', '\\\‘ to ‘`‘, etc.

    @@ -662,11 +687,11 @@ By reducing it to its latter half, we turn ‘`‘ to ‘', '\\\ -
  • +
  • - +

    Matches regular expression literals, as well as multiline extended ones. Lexing regular expressions is difficult to distinguish from division, so we @@ -685,7 +710,7 @@ borrow some basic heuristics from JavaScript and Ruby.

    [regex, body, closed] = match @validateEscapes body, isRegex: yes, offsetInChunk: 1 index = regex.length - [..., prev] = @tokens + prev = @prev() if prev if prev.spaced and prev[0] in CALLABLE return 0 if not closed or POSSIBLY_DIVISION.test regex @@ -720,11 +745,11 @@ borrow some basic heuristics from JavaScript and Ruby.

  • -
  • +
  • - +

    Matches newlines, indents, and outdents, and determines which is which. If we can detect that the current line is continued onto the next line, @@ -742,6 +767,8 @@ can close multiple indents, so we need to know how far in we happen to be.

    indent = match[0] @seenFor = no + @seenImport = no unless @importSpecifierList + @seenExport = no unless @exportSpecifierList size = indent.length - 1 - indent.lastIndexOf '\n' noNewlines = @unfinished() @@ -786,11 +813,11 @@ can close multiple indents, so we need to know how far in we happen to be.

  • -
  • +
  • - +

    Record an outdent token or multiple tokens, if we happen to be moving back inwards past several recorded indents. Sets new @indent value.

    @@ -803,12 +830,9 @@ inwards past several recorded indents. Sets new @indent value.

    lastIndent = @indents[@indents.length - 1] if not lastIndent moveOut = 0 - else if lastIndent is @outdebt - moveOut -= @outdebt - @outdebt = 0 - else if lastIndent < @outdebt - @outdebt -= lastIndent - moveOut -= lastIndent + else if @outdebt and moveOut <= @outdebt + @outdebt -= moveOut + moveOut = 0 else dent = @indents.pop() + @outdebt if outdentLength and @chunk[outdentLength] in INDENTABLE_CLOSERS @@ -819,11 +843,11 @@ inwards past several recorded indents. Sets new @indent value.

  • -
  • +
  • - +

    pair might call outdentToken, so preserve decreasedIndent

    @@ -843,11 +867,11 @@ inwards past several recorded indents. Sets new @indent value.

  • -
  • +
  • - +

    Matches and consumes non-meaningful whitespace. Tag the previous token as being “spaced”, because there are some cases where it makes a difference.

    @@ -857,18 +881,18 @@ as being “spaced”, because there are some cases where it makes a difference.
      whitespaceToken: ->
         return 0 unless (match = WHITESPACE.exec @chunk) or
                         (nline = @chunk.charAt(0) is '\n')
    -    [..., prev] = @tokens
    +    prev = @prev()
         prev[if match then 'spaced' else 'newLine'] = true if prev
         if match then match[0].length else 0
  • -
  • +
  • - +

    Generate a newline token. Consecutive newlines get merged together.

    @@ -882,11 +906,11 @@ as being “spaced”, because there are some cases where it makes a difference.
  • -
  • +
  • - +

    Use a \ at a line-ending to suppress the newline. The slash is removed here once its job is done.

    @@ -900,11 +924,11 @@ The slash is removed here once its job is done.

  • -
  • +
  • - +

    We treat all other single characters as a token. E.g.: ( ) , . ! Multi-character operators are also literal tokens, so that Jison can assign @@ -921,7 +945,7 @@ parentheses that indicate a method call from regular parentheses, and so on.

    else value = @chunk.charAt 0 tag = value - [..., prev] = @tokens + prev = @prev() if prev and value in ['=', COMPOUND_ASSIGN...] skipToken = false @@ -936,7 +960,11 @@ parentheses that indicate a method call from regular parentheses, and so on.

    @error message, origin[2] if message return value.length if skipToken - if value is '{' and prev?[0] is 'EXPORT' + if value is '{' and @seenImport + @importSpecifierList = yes + else if @importSpecifierList and value is '}' + @importSpecifierList = no + else if value is '{' and prev?[0] is 'EXPORT' @exportSpecifierList = yes else if @exportSpecifierList and value is '}' @exportSpecifierList = no @@ -971,26 +999,14 @@ parentheses that indicate a method call from regular parentheses, and so on.

  • -
  • -
    - -
    - -
    -

    Token Manipulators

    - -
    - -
  • - -
  • - +

    Token Manipulators

    +
  • @@ -1002,6 +1018,18 @@ parentheses that indicate a method call from regular parentheses, and so on.

    + + + + + + +
  • +
    + +
    + +

    A source of ambiguity in our grammar used to be parameter lists in function definitions versus argument lists in function calls. Walk backwards, tagging parameters specially in order to make things easier for the parser.

    @@ -1029,11 +1057,11 @@ parameters specially in order to make things easier for the parser.

  • -
  • +
  • - +

    Close up all remaining open blocks at the end of the file.

    @@ -1045,11 +1073,11 @@ parameters specially in order to make things easier for the parser.

  • -
  • +
  • - +

    Match the contents of a delimited token and expand variables and expressions inside it using Ruby-like notation for substitution of arbitrary @@ -1081,11 +1109,11 @@ ad infinitum.

  • -
  • +
  • - +

    Push a fake ‘NEOSTRING’ token, which will get turned into a real string later.

    @@ -1101,11 +1129,11 @@ ad infinitum.

  • -
  • +
  • - +

    The 1s are to remove the # in #{.

    @@ -1118,11 +1146,11 @@ ad infinitum.

  • -
  • +
  • - +

    Skip the trailing }.

    @@ -1133,11 +1161,11 @@ ad infinitum.

  • -
  • +
  • - +

    Turn the leading and trailing { and } into parentheses. Unnecessary parentheses will be removed later.

    @@ -1152,11 +1180,11 @@ parentheses will be removed later.

  • -
  • +
  • - +

    Remove leading ‘TERMINATOR’ (if any).

    @@ -1167,11 +1195,11 @@ parentheses will be removed later.

  • -
  • +
  • - +

    Push a fake ‘TOKENS’ token, which will get turned into real tokens later.

    @@ -1199,11 +1227,11 @@ parentheses will be removed later.

  • -
  • +
  • - +

    Merge the array tokens of the fake token types ‘TOKENS’ and ‘NEOSTRING’ (as returned by matchWithInterpolations) into the token stream. The value @@ -1225,11 +1253,11 @@ of ‘NEOSTRING’s are converted using fn and turned into strings

  • -
  • +
  • - +

    Optimize out empty interpolations (an empty pair of parentheses).

    @@ -1240,11 +1268,11 @@ of ‘NEOSTRING’s are converted using fn and turned into strings
  • -
  • +
  • - +

    Push all the tokens in the fake ‘TOKENS’ token. These already have sane location data.

    @@ -1258,11 +1286,11 @@ sane location data.

  • -
  • +
  • - +

    Convert ‘NEOSTRING’ into ‘STRING’.

    @@ -1273,11 +1301,11 @@ sane location data.

  • -
  • +
  • - +

    Optimize out empty strings. We ensure that the tokens stream always starts with a string token, though, to make sure that the result @@ -1294,11 +1322,11 @@ really is a string.

  • -
  • +
  • - +

    However, there is one case where we can optimize away a starting empty string.

    @@ -1316,11 +1344,11 @@ empty string.

  • -
  • +
  • - +

    Create a 0-length “+” token.

    @@ -1352,11 +1380,11 @@ empty string.

  • -
  • +
  • - +

    Pairs up a closing token, ensuring that all listed pairs of tokens are correctly balanced throughout the course of the token stream.

    @@ -1371,11 +1399,11 @@ correctly balanced throughout the course of the token stream.

  • -
  • +
  • - +

    Auto-close INDENT to support syntax like this:

    el.click((event) ->
    @@ -1391,26 +1419,14 @@ correctly balanced throughout the course of the token stream.

  • -
  • -
    - -
    - -
    -

    Helpers

    - -
    - -
  • - -
  • - +

    Helpers

    +
  • @@ -1422,6 +1438,18 @@ correctly balanced throughout the course of the token stream.

    + + + + + + +
  • +
    + +
    + +

    Returns the line and column number from an offset into the current chunk.

    offset is a number of characters into @chunk.

    @@ -1450,11 +1478,11 @@ correctly balanced throughout the course of the token stream.

  • -
  • +
  • - +

    Same as “token”, exception this just returns the token without adding it to the results.

    @@ -1469,11 +1497,11 @@ to the results.

  • -
  • +
  • - +

    Use length - 1 for the final offset - we’re supplying the last_line and the last_column, so if last_column == first_column, then we’re looking at a character of length 1.

    @@ -1491,11 +1519,11 @@ so if last_column == first_column, then we’re looking at a character of length
  • -
  • +
  • - +

    Add a token to the results. offset is the offset into the current @chunk where the token starts. @@ -1514,11 +1542,11 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Peek at the last tag in the token stream.

    @@ -1531,11 +1559,11 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Peek at the last value in the token stream.

    @@ -1548,11 +1576,27 @@ not specified, the length of value will be used.

  • -
  • +
  • - + +
    +

    Get the previous token in the token stream.

    + +
    + +
      prev: ->
    +    @tokens[@tokens.length - 1]
    + +
  • + + +
  • +
    + +
    +

    Are we in the midst of an unfinished expression?

    @@ -1573,21 +1617,25 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Validates escapes in strings and regexes.

      validateEscapes: (str, options = {}) ->
    -    match = INVALID_ESCAPE.exec str
    +    invalidEscapeRegex =
    +      if options.isRegex
    +        REGEX_INVALID_ESCAPE
    +      else
    +        STRING_INVALID_ESCAPE
    +    match = invalidEscapeRegex.exec str
         return unless match
         [[], before, octal, hex, unicode] = match
    -    return if options.isRegex and octal and octal.charAt(0) isnt '0'
         message =
           if octal
             "octal escape sequences are not allowed"
    @@ -1601,11 +1649,11 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Constructs a string or regex by escaping certain characters.

    @@ -1625,11 +1673,11 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Ignore escaped backslashes.

    @@ -1648,11 +1696,11 @@ not specified, the length of value will be used.

  • -
  • +
  • - +

    Throws an error at either a given offset from the current chunk or at the location of a token (token[2]).

    @@ -1671,11 +1719,11 @@ location of a token (token[2]).

  • -
  • +
  • - +

    Helper functions

    @@ -1684,11 +1732,11 @@ location of a token (token[2]).

  • -
  • +
  • - +
    @@ -1709,11 +1757,11 @@ exports.isUnassignable = isUnassignable
  • -
  • +
  • - +

    from isn’t a CoffeeScript keyword, but it behaves like one in import and export statements (handled above) and in the declaration line of a for @@ -1728,11 +1776,11 @@ loop. Try to detect when from is a variable identifier and when it

  • -
  • +
  • - +

    for i from from, for from from iterable

    @@ -1745,11 +1793,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    for i from iterable

    @@ -1760,11 +1808,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    for from…

    @@ -1776,11 +1824,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    for {from}…, for [from]…, for {a, from}…, for {a: from}…

    @@ -1794,11 +1842,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    Constants

    @@ -1807,11 +1855,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +
    @@ -1819,11 +1867,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    Keywords that CoffeeScript shares in common with JavaScript.

    @@ -1841,11 +1889,11 @@ loop. Try to detect when from is a variable identifier and when it
  • -
  • +
  • - +

    CoffeeScript-only keywords.

    @@ -1873,11 +1921,11 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat COFFEE_ALIASES
  • -
  • +
  • - +

    The list of keywords that are reserved by JavaScript, but not used, or are used by CoffeeScript internally. We throw an error when these are encountered, @@ -1896,11 +1944,11 @@ STRICT_PROSCRIBED = ['arguments', +

  • - +

    The superset of both JavaScript keywords and reserved words, none of which may be used as identifiers or properties.

    @@ -1912,11 +1960,11 @@ be used as identifiers or properties.

  • -
  • +
  • - +

    The character code of the nasty Microsoft madness otherwise known as the BOM.

    @@ -1927,11 +1975,11 @@ be used as identifiers or properties.

  • -
  • +
  • - +

    Token matching regexes.

    @@ -1974,11 +2022,11 @@ HERE_JSTOKEN = ///^ ``` ((?: [^`\\] | \\[\s\S] | `
  • -
  • +
  • - +

    String-matching-regexes.

    @@ -2001,11 +2049,11 @@ HEREDOC_INDENT = /\n+([^\n\S]*)(?=\S)/g -
  • +
  • - +

    Regex-matching-regexes.

    @@ -2039,11 +2087,11 @@ POSSIBLY_DIVISION = /// ^ /=?\s /// -
  • +
  • - +

    Other regexes.

    @@ -2053,7 +2101,7 @@ POSSIBLY_DIVISION = /// ^ /=?\s ////// ^ \s* (?: , | \??\.(?![.\d]) | :: ) /// -INVALID_ESCAPE = /// +STRING_INVALID_ESCAPE = /// ( (?:^|[^\\]) (?:\\\\)* ) # make sure the escape isn’t escaped \\ ( ?: (0[0-7]|[1-7]) # octal escape @@ -2061,6 +2109,14 @@ INVALID_ESCAPE = /// | (u(?![\da-fA-F]{4}).{0,4}) # unicode escape ) /// +REGEX_INVALID_ESCAPE = /// + ( (?:^|[^\\]) (?:\\\\)* ) # make sure the escape isn’t escaped + \\ ( + ?: (0[0-7]) # octal escape + | (x(?![\da-fA-F]{2}).{0,2}) # hex escape + | (u(?![\da-fA-F]{4}).{0,4}) # unicode escape + ) +/// LEADING_BLANK_LINE = /^[^\n\S]*\n/ TRAILING_BLANK_LINE = /\n[^\n\S]*$/ @@ -2070,11 +2126,11 @@ TRAILING_SPACES = /\s+$/
  • -
  • +
  • - +

    Compound assignment tokens.

    @@ -2088,11 +2144,11 @@ TRAILING_SPACES = /\s+$/
  • -
  • +
  • - +

    Unary tokens.

    @@ -2105,11 +2161,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Bit-shifting tokens.

    @@ -2120,11 +2176,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Comparison tokens.

    @@ -2135,11 +2191,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Mathematical tokens.

    @@ -2150,11 +2206,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Relational tokens that are negatable with not prefix.

    @@ -2165,11 +2221,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Boolean tokens.

    @@ -2180,11 +2236,11 @@ UNARY_MATH = ['!', '~
  • -
  • +
  • - +

    Tokens which could legitimately be invoked or indexed. An opening parentheses or bracket following these tokens will be recorded as the start @@ -2201,11 +2257,11 @@ INDEXABLE = CALLABLE.concat [

  • -
  • +
  • - +

    Tokens which a regular expression will never immediately follow (except spaced CALLABLEs in some cases), but which a division operator can.

    @@ -2218,11 +2274,11 @@ CALLABLEs in some cases), but which a division operator can.

  • -
  • +
  • - +

    Tokens that, when immediately preceding a WHEN, indicate that the WHEN occurs at the start of a line. We disambiguate these from trailing whens to @@ -2235,11 +2291,11 @@ avoid an ambiguity in the grammar.

  • -
  • +
  • - +

    Additional indent in front of these is ignored.

    diff --git a/docs/v2/annotated-source/nodes.html b/docs/v2/annotated-source/nodes.html index ef68f01e..7a2ee572 100644 --- a/docs/v2/annotated-source/nodes.html +++ b/docs/v2/annotated-source/nodes.html @@ -706,7 +706,7 @@ if the location data is not already set.

    makeCode: (code) -> new CodeFragment this, code - wrapInBraces: (fragments) -> + wrapInParentheses: (fragments) -> [].concat @makeCode('('), fragments, @makeCode(')')
  • @@ -1100,7 +1100,7 @@ our own

    answer = @joinFragmentArrays(compiledNodes, ', ') else answer = [@makeCode "void 0"] - if compiledNodes.length > 1 and o.level >= LEVEL_LIST then @wrapInBraces answer else answer + if compiledNodes.length > 1 and o.level >= LEVEL_LIST then @wrapInParentheses answer else answer @@ -1272,7 +1272,7 @@ exports.NaNLiteral = class(o) -> code = [@makeCode '0/0'] - if o.level >= LEVEL_OP then @wrapInBraces code else code + if o.level >= LEVEL_OP then @wrapInParentheses code else code exports.StringLiteral = class StringLiteral extends Literal @@ -1283,6 +1283,9 @@ exports.PassthroughLiteral = class IdentifierLiteral extends Literal isAssignable: YES + eachName: (iterator) -> + iterator @ + exports.PropertyName = class PropertyName extends Literal isAssignable: YES @@ -1341,8 +1344,7 @@ exports.BooleanLiteral = cla
    -

    A return is a pureStatement – wrapping it in a closure wouldn’t -make sense.

    +

    A return is a pureStatement—wrapping it in a closure wouldn’t make sense.

    @@ -1437,14 +1439,15 @@ or vanilla.

    exports.Value = class Value extends Base
    -  constructor: (base, props, tag) ->
    +  constructor: (base, props, tag, isDefaultValue = no) ->
         return base if not props and base instanceof Value
     
         super()
     
    -    @base       = base
    -    @properties = props or []
    -    @[tag]      = true if tag
    +    @base           = base
    +    @properties     = props or []
    +    @[tag]          = yes if tag
    +    @isDefaultValue = isDefaultValue
         return this
     
       children: ['base', 'properties']
    @@ -1620,7 +1623,15 @@ evaluate anything twice when building the soak chain.

    fst = new Parens new Assign ref, fst snd.base = ref return new If new Existence(fst), snd, soak: on - no + no + + eachName: (iterator) -> + if @hasProperties() + iterator @ + else if @base.isAssignable() + @base.eachName iterator + else + @error 'tried to assign to unassignable value' @@ -1692,7 +1703,7 @@ at the same position.

    constructor: (@variable, @args = [], @soak) -> super() - @isNew = false + @isNew = no if @variable instanceof Value and @variable.isNotCallable() @variable.error "literal is not a function" @@ -2402,53 +2413,15 @@ is the index of the beginning.

    exports.Obj = class Obj extends Base
    -  constructor: (props, @generated = false) ->
    +  constructor: (props, @generated = no, @lhs = no) ->
         super()
     
         @objects = @properties = props or []
     
       children: ['properties']
     
    -  compileNode: (o) ->
    -    props = @properties
    -    if @generated
    -      for node in props when node instanceof Value
    -        node.error 'cannot have an implicit value in an implicit object'
    -    idt        = o.indent += TAB
    -    lastNoncom = @lastNonComment @properties
    -    answer = []
    -    answer.push @makeCode "{#{if props.length is 0 then '}' else '\n'}"
    -    for prop, i in props
    -      join = if i is props.length - 1
    -        ''
    -      else if prop is lastNoncom or prop instanceof Comment
    -        '\n'
    -      else
    -        ',\n'
    -      indent = if prop instanceof Comment then '' else idt
    -      if prop instanceof Assign
    -        if prop.context isnt 'object'
    -          prop.operatorToken.error "unexpected #{prop.operatorToken.value}"
    -        if prop.variable instanceof Value and prop.variable.hasProperties()
    -          prop.variable.error 'invalid object key'
    -      if prop instanceof Value and prop.this
    -        prop = new Assign prop.properties[0].name, prop, 'object'
    -      if prop not instanceof Comment and prop not instanceof Assign
    -        if prop.shouldCache()
    -          [key, value] = prop.base.cache o
    -          key  = new PropertyName key.value if key instanceof IdentifierLiteral
    -          prop = new Assign key, value, 'object'
    -        else
    -          prop = new Assign prop, prop, 'object'
    -      if indent then answer.push @makeCode indent
    -      answer.push prop.compileToFragments(o, LEVEL_TOP)...
    -      if join then answer.push @makeCode join
    -    answer.push @makeCode "\n#{@tab}}" unless props.length is 0
    -    if @front then @wrapInBraces answer else answer
    -
    -  assigns: (name) ->
    -    for prop in @properties when prop.assigns name then return yes
    -    no
    + isAssignable: -> + for prop in @properties @@ -2459,10 +2432,83 @@ is the index of the beginning.

    -

    Arr

    +

    Check for reserved words.

    +
          message = isUnassignable prop.unwrapAll().value
    +      prop.error message if message
    +
    +      prop = prop.value if prop instanceof Assign and prop.context is 'object'
    +      return no unless prop.isAssignable()
    +    yes
    +
    +  shouldCache: ->
    +    not @isAssignable()
    +
    +  compileNode: (o) ->
    +    props = @properties
    +    if @generated
    +      for node in props when node instanceof Value
    +        node.error 'cannot have an implicit value in an implicit object'
    +    idt        = o.indent += TAB
    +    lastNoncom = @lastNonComment @properties
    +
    +    isCompact = yes
    +    for prop in @properties
    +      if prop instanceof Comment or (prop instanceof Assign and prop.context is 'object')
    +        isCompact = no
    +
    +    answer = []
    +    answer.push @makeCode "{#{if isCompact then '' else '\n'}"
    +    for prop, i in props
    +      join = if i is props.length - 1
    +        ''
    +      else if isCompact
    +        ', '
    +      else if prop is lastNoncom or prop instanceof Comment
    +        '\n'
    +      else
    +        ',\n'
    +      indent = if isCompact or prop instanceof Comment then '' else idt
    +
    +      key = if prop instanceof Assign and prop.context is 'object'
    +        prop.variable
    +      else if prop instanceof Assign
    +        prop.operatorToken.error "unexpected #{prop.operatorToken.value}" unless @lhs
    +        prop.variable
    +      else if prop not instanceof Comment
    +        prop
    +
    +      if key instanceof Value and key.hasProperties()
    +        key.error 'invalid object key' if prop.context is 'object' or not key.this
    +        key  = key.properties[0].name
    +        prop = new Assign key, prop, 'object'
    +
    +      if key is prop
    +        if prop.shouldCache()
    +          [key, value] = prop.base.cache o
    +          key  = new PropertyName key.value if key instanceof IdentifierLiteral
    +          prop = new Assign key, value, 'object'
    +        else if not prop.bareLiteral?(IdentifierLiteral)
    +          prop = new Assign prop, prop, 'object'
    +
    +      if indent then answer.push @makeCode indent
    +      answer.push prop.compileToFragments(o, LEVEL_TOP)...
    +      if join then answer.push @makeCode join
    +    answer.push @makeCode "#{if isCompact then '' else "\n#{@tab}"}}"
    +    if @front then @wrapInParentheses answer else answer
    +
    +  assigns: (name) ->
    +    for prop in @properties when prop.assigns name then return yes
    +    no
    +
    +  eachName: (iterator) ->
    +    for prop in @properties
    +      prop = prop.value if prop instanceof Assign and prop.context is 'object'
    +      prop = prop.unwrapAll()
    +      prop.eachName iterator if prop.eachName?
    + @@ -2472,23 +2518,66 @@ is the index of the beginning.

    +

    Arr

    + + + + + + +
  • +
    + +
    + +

    An array literal.

    exports.Arr = class Arr extends Base
    -  constructor: (objs) ->
    +  constructor: (objs, @lhs = no) ->
         super()
     
         @objects = objs or []
     
       children: ['objects']
     
    +  isAssignable: ->
    +    return no unless @objects.length
    +
    +    for obj, i in @objects
    +      return no if obj instanceof Splat and i + 1 isnt @objects.length
    +      return no unless obj.isAssignable() and (not obj.isAtomic or obj.isAtomic())
    +    yes
    +
    +  shouldCache: ->
    +    not @isAssignable()
    +
       compileNode: (o) ->
         return [@makeCode '[]'] unless @objects.length
         o.indent += TAB
     
    -    answer = []
    +    answer = []
    + +
  • + + +
  • +
    + +
    + +
    +

    If this array is the left-hand side of an assignment, all its children +are too.

    + +
    + +
        if @lhs
    +      for obj in @objects
    +        unwrappedObj = obj.unwrapAll()
    +        unwrappedObj.lhs = yes if unwrappedObj instanceof Arr or unwrappedObj instanceof Obj
         compiledObjs = (obj.compileToFragments o, LEVEL_LIST for obj in @objects)
         for fragments, index in compiledObjs
           if index
    @@ -2504,16 +2593,21 @@ is the index of the beginning.

    assigns: (name) -> for obj in @objects when obj.assigns name then return yes - no
    + no + + eachName: (iterator) -> + for obj in @objects + obj = obj.unwrapAll() + obj.eachName iterator
  • -
  • +
  • - +

    Class

    @@ -2522,11 +2616,11 @@ is the index of the beginning.

  • -
  • +
  • - +

    The CoffeeScript class definition. Initialize a Class with its name, an optional superclass, and a body.

    @@ -2547,18 +2641,18 @@ exports.Class = class
  • -
  • +
  • - +

    Special handling to allow class expr.A extends A declarations

        parentName    = @parent.base.value if @parent instanceof Value and not @parent.hasProperties()
    -    @hasNameClash = @name? and @name == parentName
    +    @hasNameClash = @name? and @name is parentName
     
         if executableBody or @hasNameClash
           @compileNode = @compileClassDeclaration
    @@ -2570,17 +2664,17 @@ exports.Class = class
             
  • -
  • +
  • - +

    Anonymous classes are only valid in expressions

    -
          result = @wrapInBraces result if not @name? and o.level is LEVEL_TOP
    +            
          result = @wrapInParentheses result if not @name? and o.level is LEVEL_TOP
     
         if @variable
           assign = new Assign @variable, new Literal(''), null, { @moduleDeclaration }
    @@ -2614,11 +2708,11 @@ exports.Class = class
             
  • -
  • +
  • - +

    Figure out the appropriate name for this class

    @@ -2667,11 +2761,11 @@ exports.Class = class
  • -
  • +
  • - +

    Try to keep comments with their subsequent assign

    @@ -2694,11 +2788,11 @@ exports.Class = class
  • -
  • +
  • - +

    Try to keep comments with their subsequent assign

    @@ -2717,18 +2811,18 @@ exports.Class = class @boundMethods.push method.name method.bound = false - if initializer.length != expressions.length + if initializer.length isnt expressions.length @body.expressions = (expression.hoist() for expression in initializer) new Block expressions
  • -
  • +
  • - +

    Add an expression to the class initializer

    NOTE Currently, only comments, methods and static methods are valid in ES class initializers. @@ -2748,11 +2842,11 @@ When additional expressions become valid, this method should be updated to handl

  • -
  • +
  • - +

    Checks if the given node is a valid ES class initializer method.

    @@ -2766,11 +2860,11 @@ When additional expressions become valid, this method should be updated to handl
  • -
  • +
  • - +

    Returns a configured class initializer method

    @@ -2853,7 +2947,7 @@ exports.ExecutableClassBody = if @name != @class.name + if @name isnt @class.name @body.expressions.unshift new Assign (new IdentifierLiteral @name), @class else @body.expressions.unshift @class @@ -2865,11 +2959,11 @@ exports.ExecutableClassBody = +
  • - +

    Traverse the class’s children and:

      @@ -2917,11 +3011,11 @@ exports.ExecutableClassBody = +
    • - +

      Make class/prototype assignments for invalid ES properties

      @@ -2939,11 +3033,11 @@ exports.ExecutableClassBody = +
    • - +

      Passthrough

      @@ -2956,11 +3050,11 @@ exports.ExecutableClassBody = +
    • - +

      The class scope is not available yet, so return the assignment to update later

      @@ -2982,11 +3076,11 @@ exports.ExecutableClassBody = +
    • - +

      Import and Export

      @@ -3060,11 +3154,11 @@ exports.ExportDeclaration =
    • -
    • +
    • - +

      Prevent exporting an anonymous class; all exported members must be named

      @@ -3123,11 +3217,11 @@ exports.ModuleSpecifier = cl
    • -
    • +
    • - +

      The name of the variable entering the local scope

      @@ -3153,11 +3247,11 @@ exports.ImportSpecifier = cl
    • -
    • +
    • - +

      Per the spec, symbols can’t be imported multiple times (e.g. import { foo, foo } from 'lib' is invalid)

      @@ -3181,11 +3275,11 @@ exports.ExportSpecifier = cl
    • -
    • +
    • - +

      Assign

      @@ -3194,11 +3288,11 @@ exports.ExportSpecifier = cl
    • -
    • +
    • - +

      The Assign is used to assign a local variable to value, or to set the property of an object – including within object literals.

      @@ -3212,6 +3306,8 @@ property of an object – including within object literals.

      children: ['variable', 'value'] + isAssignable: YES + isStatement: (o) -> o?.level is LEVEL_TOP and @context? and (@moduleDeclaration or "?" in @context) @@ -3229,13 +3325,13 @@ property of an object – including within object literals.

    • -
    • +
    • - +
      -

      Compile an assignment, delegating to compilePatternMatch or +

      Compile an assignment, delegating to compileDestructuring or compileSplice if appropriate. Keep track of the name of the base object we’ve been assigned to, for correct internal references. If the variable has not been seen yet within the current scope, declare it.

      @@ -3243,47 +3339,102 @@ has not been seen yet within the current scope, declare it.

        compileNode: (o) ->
      -    if isValue = @variable instanceof Value
      -      return @compilePatternMatch o if @variable.isArray() or @variable.isObject()
      +    isValue = @variable instanceof Value
      +    if isValue
      + +
    • + + +
    • +
      + +
      + +
      +

      When compiling @variable, remember if it is part of a function parameter.

      + +
      + +
            @variable.param = @param
      + +
    • + + +
    • +
      + +
      + +
      +

      If @variable is an array or an object, we’re destructuring; +if it’s also isAssignable(), the destructuring syntax is supported +in ES and we can output it as is; otherwise we @compileDestructuring +and convert this ES-unsupported destructuring into acceptable output.

      + +
      + +
            if @variable.isArray() or @variable.isObject()
      + +
    • + + +
    • +
      + +
      + +
      +

      This is the left-hand side of an assignment; let Arr and Obj +know that, so that those nodes know that they’re assignable as +destructured variables.

      + +
      + +
              @variable.base.lhs = yes
      +        return @compileDestructuring o unless @variable.isAssignable()
      +
             return @compileSplice       o if @variable.isSplice()
             return @compileConditional  o if @context in ['||=', '&&=', '?=']
             return @compileSpecialMath  o if @context in ['**=', '//=', '%%=']
      +
      +    unless @context
      +      varBase = @variable.unwrapAll()
      +      unless varBase.isAssignable()
      +        @variable.error "'#{@variable.compile o}' can't be assigned"
      +
      +      varBase.eachName (name) =>
      +        return if name.hasProperties?()
      +
      +        message = isUnassignable name.value
      +        name.error message if message
      + +
    • + + +
    • +
      + +
      + +
      +

      moduleDeclaration can be 'import' or 'export'

      + +
      + +
              @checkAssignability o, name
      +        if @moduleDeclaration
      +          o.scope.add name.value, @moduleDeclaration
      +        else
      +          o.scope.find name.value
      +
           if @value instanceof Code
             if @value.isStatic
               @value.name = @variable.properties[0]
             else if @variable.properties?.length >= 2
               [properties..., prototype, name] = @variable.properties
               @value.name = name if prototype.name?.value is 'prototype'
      -    unless @context
      -      varBase = @variable.unwrapAll()
      -      unless varBase.isAssignable()
      -        @variable.error "'#{@variable.compile o}' can't be assigned"
      -      unless varBase.hasProperties?()
      - -
    • - - -
    • -
      - -
      - -
      -

      moduleDeclaration can be 'import' or 'export'

      - -
      - -
              if @moduleDeclaration
      -          @checkAssignability o, varBase
      -          o.scope.add varBase.value, @moduleDeclaration
      -        else if @param
      -          o.scope.add varBase.value, 'var'
      -        else
      -          @checkAssignability o, varBase
      -          o.scope.find varBase.value
       
           val = @value.compileToFragments o, LEVEL_LIST
      -    @variable.front = true if isValue and @variable.base instanceof Obj
           compiledName = @variable.compileToFragments o, LEVEL_LIST
       
           if @context is 'object'
      @@ -3295,61 +3446,125 @@ has not been seen yet within the current scope, declare it.

      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
      + answer = compiledName.concat @makeCode(" #{ @context or '=' } "), val
  • -
  • +
  • - + +
    +

    Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Assignment_without_declaration, +if we’re destructuring without declaring, the destructuring assignment must be wrapped in parentheses.

    + +
    + +
        if o.level > LEVEL_LIST or (isValue and @variable.base instanceof Obj and not @param)
    +      @wrapInParentheses answer
    +    else
    +      answer
    + +
  • + + +
  • +
    + +
    +

    Brief implementation of recursive pattern matching, when assigning array or object literals to a value. Peeks at their properties to assign inner names.

    -
      compilePatternMatch: (o) ->
    +            
      compileDestructuring: (o) ->
         top       = o.level is LEVEL_TOP
         {value}   = this
         {objects} = @variable.base
    -    unless olen = objects.length
    -      code = value.compileToFragments o
    -      return if o.level >= LEVEL_OP then @wrapInBraces code else code
    -    [obj] = objects
    -    if olen is 1 and obj instanceof Expansion
    -      obj.error 'Destructuring assignment has no target'
    -    isObject = @variable.isObject()
    -    if top and olen is 1 and obj not instanceof Splat
    + olen = objects.length
  • -
  • +
  • - + +
    +

    Special-case for {} = a and [] = a (empty patterns). +Compile to simply a.

    + +
    + +
        if olen is 0
    +      code = value.compileToFragments o
    +      return if o.level >= LEVEL_OP then @wrapInParentheses code else code
    +    [obj] = objects
    + +
  • + + +
  • +
    + +
    + +
    +

    Disallow [...] = a for some reason. (Could be equivalent to [] = a?)

    + +
    + +
        if olen is 1 and obj instanceof Expansion
    +      obj.error 'Destructuring assignment has no target'
    +
    +    isObject = @variable.isObject()
    + +
  • + + +
  • +
    + +
    + +
    +

    Special case for when there’s only one thing destructured off of +something. {a} = b, [a] = b, {a: b} = c

    + +
    + +
        if top and olen is 1 and obj not instanceof Splat
    + +
  • + + +
  • +
    + +
    +

    Pick the property straight off the value when there’s just one to pick (no need to cache the value into a variable).

    -
          defaultValue = null
    +            
          defaultValue = undefined
           if obj instanceof Assign and obj.context is 'object'
  • -
  • +
  • - +

    A regular object pattern-match.

    @@ -3368,11 +3583,11 @@ object literals to a value. Peeks at their properties to assign inner names.

  • -
  • +
  • - +

    A shorthand {a, b, @c} = val pattern-match.

    @@ -3387,11 +3602,11 @@ object literals to a value. Peeks at their properties to assign inner names.

  • -
  • +
  • - +

    A regular array pattern-match.

    @@ -3403,8 +3618,11 @@ object literals to a value. Peeks at their properties to assign inner names.

    value.properties.push new (if acc then Access else Index) idx message = isUnassignable obj.unwrap().value obj.error message if message - value = new Op '?', value, defaultValue if defaultValue + if defaultValue + defaultValue.isDefaultValue = yes + value = new Op '?', value, defaultValue return new Assign(obj, value, null, param: @param).compileToFragments o, LEVEL_TOP + vvar = value.compileToFragments o, LEVEL_LIST vvarText = fragmentsToText vvar assigns = [] @@ -3413,27 +3631,54 @@ object literals to a value. Peeks at their properties to assign inner names.

  • -
  • +
  • - +
    -

    Make vvar into a simple variable if it isn’t already.

    +

    At this point, there are several things to destructure. So the fn() in +{a, b} = fn() must be cached, for example. Make vvar into a simple +variable if it isn’t already.

        if value.unwrap() not instanceof IdentifierLiteral or @variable.assigns(vvarText)
    -      assigns.push [@makeCode("#{ ref = o.scope.freeVariable 'ref' } = "), vvar...]
    +      ref = o.scope.freeVariable 'ref'
    +      assigns.push [@makeCode(ref + ' = '), vvar...]
           vvar = [@makeCode ref]
    -      vvarText = ref
    -    for obj, i in objects
    +      vvarText = ref
    + +
  • + + +
  • +
    + +
    + +
    +

    And here comes the big loop that handles all of these cases: +[a, b] = c +[a..., b] = c +[..., a, b] = c +[@a, b] = c +[a = 1, b] = c +{a, b} = c +{@a, b} = c +{a = 1, b} = c +etc.

    + +
    + +
        for obj, i in objects
           idx = i
           if not expandedIdx and obj instanceof Splat
             name = obj.name.unwrap().value
             obj = obj.unwrap()
             val = "#{olen} <= #{vvarText}.length ? #{ utility 'slice', o }.call(#{vvarText}, #{i}"
    -        if rest = olen - i - 1
    +        rest = olen - i - 1
    +        if rest isnt 0
               ivar = o.scope.freeVariable 'i', single: true
               val += ", #{ivar} = #{vvarText}.length - #{rest}) : (#{ivar} = #{i}, [])"
             else
    @@ -3441,7 +3686,8 @@ object literals to a value. Peeks at their properties to assign inner names.

    val = new Literal val expandedIdx = "#{ivar}++" else if not expandedIdx and obj instanceof Expansion - if rest = olen - i - 1 + rest = olen - i - 1 + if rest isnt 0 if rest is 1 expandedIdx = "#{vvarText}.length - 1" else @@ -3453,17 +3699,17 @@ object literals to a value. Peeks at their properties to assign inner names.

    else if obj instanceof Splat or obj instanceof Expansion obj.error "multiple splats/expansions are disallowed in an assignment" - defaultValue = null + defaultValue = undefined if obj instanceof Assign and obj.context is 'object'
  • -
  • +
  • - +

    A regular object pattern-match.

    @@ -3482,11 +3728,11 @@ object literals to a value. Peeks at their properties to assign inner names.

  • -
  • +
  • - +

    A shorthand {a, b, @c} = val pattern-match.

    @@ -3501,11 +3747,11 @@ object literals to a value. Peeks at their properties to assign inner names.

  • -
  • +
  • - +

    A regular array pattern-match.

    @@ -3515,23 +3761,26 @@ object literals to a value. Peeks at their properties to assign inner names.

    name = obj.unwrap().value acc = idx.unwrap() instanceof PropertyName val = new Value new Literal(vvarText), [new (if acc then Access else Index) idx] - val = new Op '?', val, defaultValue if defaultValue + if defaultValue + defaultValue.isDefaultValue = yes + val = new Op '?', val, defaultValue if name? message = isUnassignable name obj.error message if message assigns.push new Assign(obj, val, null, param: @param, subpattern: yes).compileToFragments o, LEVEL_LIST + assigns.push vvar unless top or @subpattern fragments = @joinFragmentArrays assigns, ', ' - if o.level < LEVEL_LIST then fragments else @wrapInBraces fragments
    + if o.level < LEVEL_LIST then fragments else @wrapInParentheses fragments
  • -
  • +
  • - +

    When compiling a conditional assignment, take care to ensure that the operands are only evaluated once, even though we have to reference them @@ -3545,11 +3794,11 @@ more than once.

  • -
  • +
  • - +

    Disallow conditional assignment of undefined variables.

    @@ -3563,16 +3812,16 @@ more than once.

    new If(new Existence(left), right, type: 'if').addElse(new Assign(right, @value, '=')).compileToFragments o else fragments = new Op(@context[...-1], left, new Assign(right, @value, '=')).compileToFragments o - if o.level <= LEVEL_LIST then fragments else @wrapInBraces fragments
    + if o.level <= LEVEL_LIST then fragments else @wrapInParentheses fragments
  • -
  • +
  • - +

    Convert special math assignment operators like a **= b to the equivalent extended form a = a ** b and then compiles that.

    @@ -3586,11 +3835,11 @@ extended form a = a ** b and then compiles that.

  • -
  • +
  • - +

    Compile the assignment from an array splice literal, using JavaScript’s Array#splice method.

    @@ -3615,16 +3864,19 @@ extended form a = a ** b and then compiles that.

    to = "9e9" [valDef, valRef] = @value.cache o, LEVEL_LIST answer = [].concat @makeCode("[].splice.apply(#{name}, [#{fromDecl}, #{to}].concat("), valDef, @makeCode(")), "), valRef - if o.level > LEVEL_TOP then @wrapInBraces answer else answer
    + if o.level > LEVEL_TOP then @wrapInParentheses answer else answer + + eachName: (iterator) -> + @variable.unwrapAll().eachName iterator
  • -
  • +
  • - +

    Code

    @@ -3633,11 +3885,11 @@ extended form a = a ** b and then compiles that.

  • -
  • +
  • - +

    A function definition. This is the only node that creates a new Scope. When for the purposes of walking the contents of a function body, the Code @@ -3675,11 +3927,11 @@ has no children – they’re within the inner scope.

  • -
  • +
  • - +

    Compilation creates a new scope unless explicitly asked to share with the outer scope. Handles splat parameters in the parameter list by setting @@ -3714,11 +3966,11 @@ function body.

  • -
  • +
  • - +

    Check for duplicate parameters and separate this assignments

    @@ -3739,11 +3991,11 @@ function body.

  • -
  • +
  • - +

    Parse the parameters, adding them to the list of parameters to put in the function definition; and dealing with splats or expansions, including @@ -3761,11 +4013,11 @@ any non-idempotent parameters are evaluated in the correct order.

  • -
  • +
  • - +

    Was ... used with this parameter? (Only one such parameter is allowed per function.) Splat/expansion parameters cannot have default values, @@ -3781,27 +4033,32 @@ so we need not worry about that.

    haveSplatParam = yes if param.splat - params.push ref = param.asReference o - splatParamName = fragmentsToText ref.compileNode o - if param.shouldCache() - exprs.push new Assign new Value(param.name), ref, '=', param: yes
    + if param.name instanceof Arr
  • -
  • +
  • - +
    -

    TODO: output destructured parameters as is, and fix destructuring -of objects with default values to work in this context (see -Obj.compileNode if prop.context isnt 'object').

    +

    Splat arrays are treated oddly by ES; deal with them the legacy +way in the function body. TODO: Should this be handled in the +function parameter list, and if so, how?

    -
            else # `param` is an Expansion
    +            
                splatParamName = o.scope.freeVariable 'arg'
    +            params.push ref = new Value new IdentifierLiteral splatParamName
    +            exprs.push new Assign new Value(param.name), ref, null, param: yes
    +          else
    +            params.push ref = param.asReference o
    +            splatParamName = fragmentsToText ref.compileNode o
    +          if param.shouldCache()
    +            exprs.push new Assign new Value(param.name), ref, null, param: yes
    +        else # `param` is an Expansion
               splatParamName = o.scope.freeVariable 'args'
               params.push new Value new IdentifierLiteral splatParamName
     
    @@ -3810,11 +4067,11 @@ Obj.compileNode if prop.context isnt 'object').

  • -
  • +
  • - +

    Parse all other parameters; if a splat paramater has not yet been encountered, add these other parameters to the list to be output in @@ -3830,11 +4087,11 @@ the function definition.

  • -
  • +
  • - +

    This parameter cannot be declared or assigned in the parameter list. So put a reference in the parameter list and add a statement @@ -3844,20 +4101,20 @@ to the function body assigning it, e.g.

              if param.value?
    -            condition = new Op '==', param, new UndefinedLiteral
    -            ifTrue = new Assign new Value(param.name), param.value, '=', param: yes
    +            condition = new Op '===', param, new UndefinedLiteral
    +            ifTrue = new Assign new Value(param.name), param.value, null, param: yes
                 exprs.push new If condition, ifTrue
               else
    -            exprs.push new Assign new Value(param.name), param.asReference(o), '=', param: yes
    + exprs.push new Assign new Value(param.name), param.asReference(o), null, param: yes
  • -
  • +
  • - +

    If this parameter comes before the splat or expansion, it will go in the function definition parameter list.

    @@ -3869,11 +4126,11 @@ in the function definition parameter list.

  • -
  • +
  • - +

    If this parameter has a default value, and it hasn’t already been set by the shouldCache() block above, define it as a statement in @@ -3886,24 +4143,43 @@ so we can’t define its default value in the parameter list.

    ref = param.asReference o else if param.value? and not param.assignedInBody - ref = new Assign new Value(param.name), param.value, '=' + ref = new Assign new Value(param.name), param.value, null, param: yes else ref = param
  • -
  • +
  • - +
    -

    Add this parameter’s reference to the function scope

    +

    Add this parameter’s reference(s) to the function scope.

    -
              o.scope.parameter fragmentsToText (if param.value? then param else ref).compileToFragments o
    +            
              if param.name instanceof Arr or param.name instanceof Obj
    + +
  • + + +
  • +
    + +
    + +
    +

    This parameter is destructured.

    + +
    + +
                param.name.lhs = yes
    +            param.name.eachName (prop) ->
    +              o.scope.parameter prop.value
    +          else
    +            o.scope.parameter fragmentsToText (if param.value? then param else ref).compileToFragments o
               params.push ref
             else
               paramsAfterSplat.push param
    @@ -3911,11 +4187,11 @@ so we can’t define its default value in the parameter list.

  • -
  • +
  • - +

    If this parameter had a default value, since it’s no longer in the function parameter list we need to assign its default value @@ -3924,18 +4200,18 @@ function parameter list we need to assign its default value

              if param.value? and not param.shouldCache()
    -            condition = new Op '==', param, new UndefinedLiteral
    -            ifTrue = new Assign new Value(param.name), param.value, '='
    +            condition = new Op '===', param, new UndefinedLiteral
    +            ifTrue = new Assign new Value(param.name), param.value
                 exprs.push new If condition, ifTrue
  • -
  • +
  • - +

    Add this parameter to the scope, since it wouldn’t have been added yet since it was skipped earlier.

    @@ -3946,11 +4222,11 @@ function parameter list we need to assign its default value
  • -
  • +
  • - +

    If there were parameters after the splat or expansion parameter, those parameters need to be assigned in the body of the function.

    @@ -3962,11 +4238,11 @@ parameters need to be assigned in the body of the function.

  • -
  • +
  • - +

    Create a destructured assignment, e.g. [a, b, c] = [args..., b, c]

    @@ -3979,11 +4255,11 @@ parameters need to be assigned in the body of the function.

  • -
  • +
  • - +

    Add new expressions to the function body

    @@ -3997,11 +4273,11 @@ parameters need to be assigned in the body of the function.

  • -
  • +
  • - +

    Assemble the output

    @@ -4027,11 +4303,11 @@ parameters need to be assigned in the body of the function.

  • -
  • +
  • - +

    We need to compile the body before method names to ensure super references are handled

    @@ -4053,7 +4329,7 @@ parameters need to be assigned in the body of the function.

    answer.push @makeCode '}' return [@makeCode(@tab), answer...] if @isMethod - if @front or (o.level >= LEVEL_ACCESS) then @wrapInBraces answer else answer + if @front or (o.level >= LEVEL_ACCESS) then @wrapInParentheses answer else answer eachParamName: (iterator) -> param.eachName iterator for param in @params
    @@ -4061,11 +4337,11 @@ parameters need to be assigned in the body of the function.

  • -
  • +
  • - +

    Short-circuit traverseChildren method to prevent it from crossing scope boundaries unless crossScope is true.

    @@ -4078,11 +4354,11 @@ boundaries unless crossScope is true.

  • -
  • +
  • - +

    Short-circuit replaceInContext method to prevent it from crossing context boundaries. Bound functions have the same context.

    @@ -4105,7 +4381,7 @@ functions have the same context.

    superCall.error "'super' is only allowed in derived class constructors" if @ctor is 'base' superCall.expressions = thisAssignments - haveThisParam = thisAssignments.length and thisAssignments.length != @thisAssignments?.length + haveThisParam = thisAssignments.length and thisAssignments.length isnt @thisAssignments?.length if @ctor is 'derived' and not seenSuper and haveThisParam param = thisAssignments[0].variable param.error "Can't use @params in derived class constructors without calling super" @@ -4115,11 +4391,11 @@ functions have the same context.

  • -
  • +
  • - +

    Find all super calls in the given context node Returns true if iterator is called

    @@ -4139,11 +4415,11 @@ Returns true if iterator is called

  • -
  • +
  • - +

    super has the same target in bound (arrow) functions, so check them too

    @@ -4156,11 +4432,11 @@ Returns true if iterator is called

  • -
  • +
  • - +

    Param

    @@ -4169,11 +4445,11 @@ Returns true if iterator is called

  • -
  • +
  • - +

    A parameter in a function definition. Beyond a typical JavaScript parameter, these parameters can also attach themselves to the context of the function, @@ -4215,11 +4491,11 @@ as well as be a splat, gathering up a group of parameters into an array.

  • -
  • +
  • - +

    Iterates the name or names of a Param. In a sense, a destructured parameter represents multiple JS parameters. This @@ -4236,11 +4512,11 @@ to that name.

  • -
  • +
  • - +
    • simple literals foo
    • @@ -4253,11 +4529,11 @@ to that name.

      -
    • +
    • - +
      • at-params @foo
      • @@ -4271,11 +4547,11 @@ to that name.

        -
      • +
      • - +
        • destructured parameter with default value
        • @@ -4289,11 +4565,11 @@ to that name.

          -
        • +
        • - +
          • assignments within destructured parameters {foo:bar}
          • @@ -4306,11 +4582,11 @@ to that name.

            -
          • +
          • - +

            … possibly with a default value

            @@ -4323,11 +4599,11 @@ to that name.

          • -
          • +
          • - +
            • splats within destructured parameters [xs...]
            • @@ -4343,11 +4619,11 @@ to that name.

              -
            • +
            • - +
              • destructured parameters within destructured parameters [{a}]
              • @@ -4361,11 +4637,11 @@ to that name.

                -
              • +
              • - +
                • at-params within destructured parameters {@foo}
                • @@ -4379,11 +4655,11 @@ to that name.

                  -
                • +
                • - +
                  • simple destructured parameters {foo}
                  • @@ -4399,11 +4675,11 @@ to that name.

                    -
                  • +
                  • - +

                    Rename a param by replacing the given AST node for a name with a new node. This needs to ensure that the the source for object destructuring does not change.

                    @@ -4425,11 +4701,11 @@ This needs to ensure that the the source for object destructuring does not chang
                  • -
                  • +
                  • - +

                    Splat

                    @@ -4438,11 +4714,11 @@ This needs to ensure that the the source for object destructuring does not chang
                  • -
                  • +
                  • - +

                    A splat, either as a parameter to a function, an argument to a call, or as part of a destructuring assignment.

                    @@ -4453,7 +4729,8 @@ or as part of a destructuring assignment.

                    children: ['name'] - isAssignable: YES + isAssignable: -> + @name.isAssignable() and (not @name.isAtomic or @name.isAtomic()) constructor: (name) -> super() @@ -4471,11 +4748,11 @@ or as part of a destructuring assignment.

                  • -
                  • +
                  • - +

                    Expansion

                    @@ -4484,11 +4761,11 @@ or as part of a destructuring assignment.

                  • -
                  • +
                  • - +

                    Used to skip values inside an array destructuring (pattern matching) or parameter list.

                    @@ -4510,11 +4787,11 @@ parameter list.

                  • -
                  • +
                  • - +

                    While

                    @@ -4523,11 +4800,11 @@ parameter list.

                  • -
                  • +
                  • - +

                    A while loop, the only sort of low-level loop exposed by CoffeeScript. From it, all other loops can be manufactured. Useful in cases where you need more @@ -4566,11 +4843,11 @@ flexibility or more speed than a comprehension can provide.

                  • -
                  • +
                  • - +

                    The main difference from a JavaScript while is that the CoffeeScript while can be used as a part of a larger expression – while loops may @@ -4603,11 +4880,11 @@ return an array containing the computed result of each iteration.

                  • -
                  • +
                  • - +

                    Op

                    @@ -4616,11 +4893,11 @@ return an array containing the computed result of each iteration.

                  • -
                  • +
                  • - +

                    Simple Arithmetic and logical operations. Performs some conversion from CoffeeScript operations into their JavaScript equivalents.

                    @@ -4628,7 +4905,7 @@ CoffeeScript operations into their JavaScript equivalents.

                    exports.Op = class Op extends Base
                    -  constructor: (op, first, second, flip ) ->
                    +  constructor: (op, first, second, flip) ->
                         return new In first, second if op is 'in'
                         if op is 'do'
                           return Op::generateDo first
                    @@ -4647,11 +4924,11 @@ CoffeeScript operations into their JavaScript equivalents.

                  • -
                  • +
                  • - +

                    The map of conversions from CoffeeScript to JavaScript symbols.

                    @@ -4666,11 +4943,11 @@ CoffeeScript operations into their JavaScript equivalents.

                  • -
                  • +
                  • - +

                    The map of invertible operators.

                    @@ -4701,11 +4978,11 @@ CoffeeScript operations into their JavaScript equivalents.

                  • -
                  • +
                  • - +

                    Am I capable of Python-style comparison chaining?

                    @@ -4767,11 +5044,11 @@ CoffeeScript operations into their JavaScript equivalents.

                  • -
                  • +
                  • - +

                    In chains, there’s no need to wrap bare obj literals in parens, as the chained expression is wrapped.

                    @@ -4788,7 +5065,7 @@ as the chained expression is wrapped.

                    return @compileUnary o if @isUnary() return @compileChain o if isChain switch @operator - when '?' then @compileExistence o + when '?' then @compileExistence o, @second.isDefaultValue when '**' then @compilePower o when '//' then @compileFloorDivision o when '%%' then @compileModulo o @@ -4796,16 +5073,16 @@ as the chained expression is wrapped.

                    lhs = @first.compileToFragments o, LEVEL_OP rhs = @second.compileToFragments o, LEVEL_OP answer = [].concat lhs, @makeCode(" #{@operator} "), rhs - if o.level <= LEVEL_OP then answer else @wrapInBraces answer
                  + if o.level <= LEVEL_OP then answer else @wrapInParentheses answer
            • -
            • +
            • - +

              Mimic Python’s chained comparisons when multiple comparison operators are used sequentially. For example:

              @@ -4819,38 +5096,38 @@ used sequentially. For example:

              fst = @first.compileToFragments o, LEVEL_OP fragments = fst.concat @makeCode(" #{if @invert then '&&' else '||'} "), (shared.compileToFragments o), @makeCode(" #{@operator} "), (@second.compileToFragments o, LEVEL_OP) - @wrapInBraces fragments
            + @wrapInParentheses fragments
      • -
      • +
      • - +

        Keep reference to the left expression, unless this an existential assignment

        -
          compileExistence: (o) ->
        +            
          compileExistence: (o, checkOnlyUndefined) ->
             if @first.shouldCache()
               ref = new IdentifierLiteral o.scope.freeVariable 'ref'
               fst = new Parens new Assign ref, @first
             else
               fst = @first
               ref = fst
        -    new If(new Existence(fst), ref, type: 'if').addElse(@second).compileToFragments o
        + new If(new Existence(fst, checkOnlyUndefined), ref, type: 'if').addElse(@second).compileToFragments o
      • -
      • +
      • - +

        Compile a unary Op.

        @@ -4896,11 +5173,11 @@ used sequentially. For example:

      • -
      • +
      • - +

        Make a Math.pow call

        @@ -4925,11 +5202,11 @@ used sequentially. For example:

      • -
      • +
      • - +

        In

        @@ -4952,11 +5229,11 @@ used sequentially. For example:

      • -
      • +
      • - +

        compileOrTest only if we have an array literal with no splats

        @@ -4972,7 +5249,7 @@ used sequentially. For example:

        for item, i in @array.base.objects if i then tests.push @makeCode cnj tests = tests.concat (if i then ref else sub), @makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS) - if o.level < LEVEL_OP then tests else @wrapInBraces tests + if o.level < LEVEL_OP then tests else @wrapInParentheses tests compileLoopTest: (o) -> [sub, ref] = @object.cache o, LEVEL_LIST @@ -4980,7 +5257,7 @@ used sequentially. For example:

        @makeCode(", "), ref, @makeCode(") " + if @negated then '< 0' else '>= 0') return fragments if fragmentsToText(sub) is fragmentsToText(ref) fragments = sub.concat @makeCode(', '), fragments - if o.level < LEVEL_LIST then fragments else @wrapInBraces fragments + if o.level < LEVEL_LIST then fragments else @wrapInParentheses fragments toString: (idt) -> super idt, @constructor.name + if @negated then '!' else ''
      @@ -4988,11 +5265,11 @@ used sequentially. For example:

    • -
    • +
    • - +

      Try

      @@ -5001,11 +5278,11 @@ used sequentially. For example:

    • -
    • +
    • - +

      A classic try/catch/finally block.

      @@ -5029,11 +5306,11 @@ used sequentially. For example:

    • -
    • +
    • - +

      Compilation is more or less as you would expect – the finally clause is optional, the catch is not.

      @@ -5069,11 +5346,11 @@ is optional, the catch is not.

    • -
    • +
    • - +

      Throw

      @@ -5082,11 +5359,11 @@ is optional, the catch is not.

    • -
    • +
    • - +

      Simple node to throw an exception.

      @@ -5104,11 +5381,11 @@ is optional, the catch is not.

    • -
    • +
    • - +

      A Throw is already a return, of sorts…

      @@ -5122,11 +5399,11 @@ is optional, the catch is not.

    • -
    • +
    • - +

      Existence

      @@ -5135,21 +5412,22 @@ is optional, the catch is not.

    • -
    • +
    • - +
      -

      Checks a variable for existence – not null and not undefined. This is +

      Checks a variable for existence – not null and not undefined. This is similar to .nil? in Ruby, and avoids having to consult a JavaScript truth -table.

      +table. Optionally only check if a variable is not undefined.

      exports.Existence = class Existence extends Base
      -  constructor: (@expression) ->
      +  constructor: (@expression, onlyNotUndefined = no) ->
           super()
      +    @comparisonTarget = if onlyNotUndefined then 'undefined' else 'null'
       
         children: ['expression']
       
      @@ -5160,33 +5438,42 @@ table.

      code = @expression.compile o, LEVEL_OP 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" + code = "typeof #{code} #{cmp} \"undefined\"" + if @comparisonTarget isnt 'undefined' then " #{cnj} #{code} #{cmp} #{@comparisonTarget}" else '' else
    • -
    • +
    • - +
      -

      do not use strict equality here; it will break existing code

      +

      We explicity want to use loose equality (==) when comparing against null, +so that an existence check roughly corresponds to a check for truthiness. +Do not change this to === for null, as this will break mountains of +existing code. When comparing only against undefined, however, we want to +use === because this use case is for parity with ES2015+ default values, +which only get assigned when the variable is undefined (but not null).

      -
            code = "#{code} #{if @negated then '==' else '!='} null"
      +            
            cmp = if @comparisonTarget is 'null'
      +        if @negated then '==' else '!='
      +      else # `undefined`
      +        if @negated then '===' else '!=='
      +      code = "#{code} #{cmp} #{@comparisonTarget}"
           [@makeCode(if o.level <= LEVEL_COND then code else "(#{code})")]
    • -
    • +
    • - +

      Parens

      @@ -5195,11 +5482,11 @@ table.

    • -
    • +
    • - +

      An extra set of parentheses, specified explicitly in the source. At one time we tried to clean up the results by detecting and removing redundant @@ -5226,16 +5513,16 @@ parentheses, but no longer – you can put in as many as you please.

      fragments = expr.compileToFragments o, LEVEL_PAREN bare = o.level < LEVEL_OP and (expr instanceof Op or expr instanceof Call or (expr instanceof For and expr.returns)) - if bare then fragments else @wrapInBraces fragments
    + if bare then fragments else @wrapInParentheses fragments
  • -
  • +
  • - +

    StringWithInterpolations

    @@ -5251,11 +5538,11 @@ exports.StringWithInterpolations = +
  • - +

    unwrap returns this to stop ancestor nodes reaching in to grab @body, and using @body.compileNode. StringWithInterpolations.compileNode is @@ -5272,11 +5559,11 @@ and using @body.compileNode. StringWithInterpolations.compileNode i

  • -
  • +
  • - +

    Assumes that expr is Value » StringLiteral or Op

    @@ -5303,11 +5590,11 @@ and using @body.compileNode. StringWithInterpolations.compileNode i
  • -
  • +
  • - +

    Backticks and ${ inside template literals must be escaped.

    @@ -5330,11 +5617,11 @@ and using @body.compileNode. StringWithInterpolations.compileNode i
  • -
  • +
  • - +

    For

    @@ -5343,11 +5630,11 @@ and using @body.compileNode. StringWithInterpolations.compileNode i
  • -
  • +
  • - +

    CoffeeScript’s replacement for the for loop is our array and object comprehensions, that compile into for loops here. They also act as an @@ -5370,7 +5657,7 @@ you can map and filter in a single pass.

    @index.error 'cannot use index with for-from' if @from and @index source.ownTag.error "cannot use own with for-#{if @from then 'from' else 'in'}" if @own and not @object [@name, @index] = [@index, @name] if @object - @index.error 'index cannot be a pattern matching expression' if @index instanceof Value and not @index.isAssignable() + @index.error 'index cannot be a pattern matching expression' if @index?.isArray?() or @index?.isObject?() @range = @source instanceof Value and @source.base instanceof Range and not @source.properties.length and not @from @pattern = @name instanceof Value @index.error 'indexes do not apply to range loops' if @range and @index @@ -5382,11 +5669,11 @@ you can map and filter in a single pass.

  • -
  • +
  • - +

    Welcome to the hairiest method in all of CoffeeScript. Handles the inner loop, filtering, stepping, and result saving for array, object, and range @@ -5498,11 +5785,11 @@ some cannot.

  • -
  • +
  • - +

    Switch

    @@ -5511,11 +5798,11 @@ some cannot.

  • -
  • +
  • - +

    A JavaScript switch statement. Converts into a returnable expression on-demand.

    @@ -5563,11 +5850,11 @@ some cannot.

  • -
  • +
  • - +

    If

    @@ -5576,11 +5863,11 @@ some cannot.

  • -
  • +
  • - +

    If/else statements. Acts as an expression by pushing down requested returns to the last line of each clause.

    @@ -5606,11 +5893,11 @@ because ternaries are already proper expressions, and don’t need conversion. -
  • +
  • - +

    Rewrite a chain of Ifs to add a default case as the final else.

    @@ -5628,11 +5915,11 @@ because ternaries are already proper expressions, and don’t need conversion. -
  • +
  • - +

    The If only compiles into a statement if either of its bodies needs to be a statement. Otherwise a conditional operator is safe.

    @@ -5660,11 +5947,11 @@ to be a statement. Otherwise a conditional operator is safe.

  • -
  • +
  • - +

    Compile the If as a regular if-else statement. Flattened chains force inner else bodies into statement form.

    @@ -5695,11 +5982,11 @@ force inner else bodies into statement form.

  • -
  • +
  • - +

    Compile the If as a conditional operator.

    @@ -5710,7 +5997,7 @@ force inner else bodies into statement form.

    body = @bodyNode().compileToFragments o, LEVEL_LIST alt = if @elseBodyNode() then @elseBodyNode().compileToFragments(o, LEVEL_LIST) else [@makeCode('void 0')] fragments = cond.concat @makeCode(" ? "), body, @makeCode(" : "), alt - if o.level >= LEVEL_COND then @wrapInBraces fragments else fragments + if o.level >= LEVEL_COND then @wrapInParentheses fragments else fragments unfoldSoak: -> @soak and this
    @@ -5718,11 +6005,11 @@ force inner else bodies into statement form.

  • -
  • +
  • - +

    Constants

    @@ -5731,11 +6018,11 @@ force inner else bodies into statement form.

  • -
  • +
  • - +
    @@ -5746,11 +6033,11 @@ UTILITIES =
  • -
  • +
  • - +

    Correctly set up a prototype chain for inheritance, including a reference to the superclass for super() calls, and copies of any static properties.

    @@ -5774,11 +6061,11 @@ to the superclass for super() calls, and copies of any static prope
  • -
  • +
  • - +

    Create a function bound to the current value of “this”.

    @@ -5795,11 +6082,11 @@ to the superclass for super() calls, and copies of any static prope
  • -
  • +
  • - +

    Discover if an item is in an array.

    @@ -5821,11 +6108,11 @@ to the superclass for super() calls, and copies of any static prope
  • -
  • +
  • - +

    Shortcuts to speed up the lookup time for native functions.

    @@ -5837,11 +6124,11 @@ to the superclass for super() calls, and copies of any static prope
  • -
  • +
  • - +

    Levels indicate a node’s position in the AST. Useful for knowing if parens are necessary or superfluous.

    @@ -5858,11 +6145,11 @@ LEVEL_ACCESS = 6 #
  • -
  • +
  • - +

    Tabs are two spaces for pretty printing.

    @@ -5875,11 +6162,11 @@ SIMPLENUM = /^[+-]?\d+$/
  • -
  • +
  • - +

    Helper Functions

    @@ -5888,11 +6175,11 @@ SIMPLENUM = /^[+-]?\d+$/
  • -
  • +
  • - +
    @@ -5900,11 +6187,11 @@ SIMPLENUM = /^[+-]?\d+$/
  • -
  • +
  • - +

    Helper for ensuring that utility functions are assigned at the top level.

    @@ -5934,11 +6221,11 @@ SIMPLENUM = /^[+-]?\d+$/
  • -
  • +
  • - +

    Unfold a node’s child if soak, then tuck the node under created If

    diff --git a/docs/v2/browser-compiler/coffeescript.js b/docs/v2/browser-compiler/coffeescript.js index 8123061a..81cbb23d 100644 --- a/docs/v2/browser-compiler/coffeescript.js +++ b/docs/v2/browser-compiler/coffeescript.js @@ -1,457 +1,7986 @@ /** - * CoffeeScript Compiler v2.0.0-alpha1 + * CoffeeScript Compiler v2.0.0-beta1 * http://coffeescript.org * * Copyright 2011, Jeremy Ashkenas * Released under the MIT License */ -var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(q,ra,ua){if(ua.get||ua.set)throw new TypeError("ES3 does not support getters and setters.");q!=Array.prototype&&q!=Object.prototype&&(q[ra]=ua.value)};$jscomp.getGlobal=function(q){return"undefined"!=typeof window&&window===q?q:"undefined"!=typeof global&&null!=global?global:q};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; -$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(q){return $jscomp.SYMBOL_PREFIX+(q||"")+$jscomp.symbolCounter_++}; -$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var q=$jscomp.global.Symbol.iterator;q||(q=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[q]&&$jscomp.defineProperty(Array.prototype,q,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}}; -$jscomp.arrayIterator=function(q){var ra=0;return $jscomp.iteratorPrototype(function(){return raq||1342177279>>=1)ua+=ua;return k}},"es6-impl","es3");$jscomp.findInternal=function(q,ra,ua){q instanceof String&&(q=String(q));for(var k=q.length,xa=0;xa/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#39;")}function m(a){return a.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(a,l){l=l.toLowerCase();return"colon"===l?":":"#"===l.charAt(0)?"x"===l.charAt(1)?String.fromCharCode(parseInt(l.substring(2), -16)):String.fromCharCode(+l.substring(1)):""})}function c(a,c){a=a.source;c=c||"";return function B(l,e){if(!l)return new RegExp(a,c);e=e.source||e;e=e.replace(/(^|[^\[])\^/g,"$1");a=a.replace(l,e);return B}}function e(){}function y(a){for(var l=1,c,e;ll.length)return h();delete c.highlight;if(!p)return h();for(;A[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, -def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:e,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-]|\d+\.)/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};w.item=c(w.item,"gm")(/bull/g,w.bullet)();w.list=c(w.list)(/bull/g,w.bullet)("hr","\\n+(?\x3d\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?\x3d"+w.def.source+")")();w.blockquote=c(w.blockquote)("def",w.def)();w._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b"; -w.html=c(w.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,w._tag)();w.paragraph=c(w.paragraph)("hr",w.hr)("heading",w.heading)("lheading",w.lheading)("blockquote",w.blockquote)("tag","\x3c"+w._tag)("def",w.def)();w.normal=y({},w);w.gfm=y({},w.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});w.gfm.paragraph=c(w.paragraph)("(?!", -"(?!"+w.gfm.fences.source.replace("\\1","\\2")+"|"+w.list.source.replace("\\1","\\3")+"|")();w.tables=y({},w.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});sa.rules=w;sa.lex=function(a,c){return(new sa(c)).lex(a)};sa.prototype.lex=function(a){a=a.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(a,!0)};sa.prototype.token=function(a,c,e){a= -a.replace(/^ +$/gm,"");for(var l,g,p,E,h,n,u;a;){if(p=this.rules.newline.exec(a))a=a.substring(p[0].length),1 ?/gm,""),this.token(p,c,!0),this.tokens.push({type:"blockquote_end"});else if(p=this.rules.list.exec(a)){a= -a.substring(p[0].length);E=p[2];this.tokens.push({type:"list_start",ordered:1])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:e,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, -link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:e,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/};z.link=c(z.link)("inside",z._inside)("href",z._href)();z.reflink= -c(z.reflink)("inside",z._inside)();z.normal=y({},z);z.pedantic=y({},z.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});z.gfm=y({},z.normal,{escape:c(z.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:c(z.text)("]|","~]|")("|","|https?://|")()});z.breaks=y({},z.gfm,{br:c(z.br)("{2,}","*")(),text:c(z.gfm.text)("{2,}","*")()});ha.rules=z;ha.output=function(a, -c,e){return(new ha(c,e)).output(a)};ha.prototype.output=function(a){for(var c="",e,l;a;)if(l=this.rules.escape.exec(a))a=a.substring(l[0].length),c+=l[1];else if(l=this.rules.autolink.exec(a))a=a.substring(l[0].length),"@"===l[2]?(e=":"===l[1].charAt(6)?this.mangle(l[1].substring(7)):this.mangle(l[1]),l=this.mangle("mailto:")+e):l=e=ta(l[1]),c+=this.renderer.link(l,null,e);else if(!this.inLink&&(l=this.rules.url.exec(a)))a=a.substring(l[0].length),l=e=ta(l[1]),c+=this.renderer.link(l,null,e);else if(l= -this.rules.tag.exec(a))!this.inLink&&/^/i.test(l[0])&&(this.inLink=!1),a=a.substring(l[0].length),c+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(l[0]):ta(l[0]):l[0];else if(l=this.rules.link.exec(a))a=a.substring(l[0].length),this.inLink=!0,c+=this.outputLink(l,{href:l[2],title:l[3]}),this.inLink=!1;else if((l=this.rules.reflink.exec(a))||(l=this.rules.nolink.exec(a)))a=a.substring(l[0].length),e=(l[2]||l[1]).replace(/\s+/g, -" "),(e=this.links[e.toLowerCase()])&&e.href?(this.inLink=!0,c+=this.outputLink(l,e),this.inLink=!1):(c+=l[0].charAt(0),a=l[0].substring(1)+a);else if(l=this.rules.strong.exec(a))a=a.substring(l[0].length),c+=this.renderer.strong(this.output(l[2]||l[1]));else if(l=this.rules.em.exec(a))a=a.substring(l[0].length),c+=this.renderer.em(this.output(l[2]||l[1]));else if(l=this.rules.code.exec(a))a=a.substring(l[0].length),c+=this.renderer.codespan(ta(l[2],!0));else if(l=this.rules.br.exec(a))a=a.substring(l[0].length), -c+=this.renderer.br();else if(l=this.rules.del.exec(a))a=a.substring(l[0].length),c+=this.renderer.del(this.output(l[1]));else if(l=this.rules.text.exec(a))a=a.substring(l[0].length),c+=this.renderer.text(ta(this.smartypants(l[0])));else if(a)throw Error("Infinite loop on byte: "+a.charCodeAt(0));return c};ha.prototype.outputLink=function(a,c){var l=ta(c.href);c=c.title?ta(c.title):null;return"!"!==a[0].charAt(0)?this.renderer.link(l,c,this.output(a[1])):this.renderer.image(l,c,ta(a[1]))};ha.prototype.smartypants= -function(a){return this.options.smartypants?a.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201c").replace(/"/g,"\u201d").replace(/\.{3}/g,"\u2026"):a};ha.prototype.mangle=function(a){if(!this.options.mangle)return a;for(var c="",l=a.length,e=0,g;e>>=1,a+=a;return c};k.compact=function(a){var c, -g,m,k;k=[];c=0;for(m=a.length;ch)return u.call(this,r,c-1);(n=r[0],0<=p.call(g,n))?h+=1:(l=r[0],0<=p.call(a,l))&&--h;c+=1}return c-1};k.prototype.removeLeadingNewlines=function(){var a,c,e,g,l;g=this.tokens;a=c=0;for(e=g.length;cl;g=0<=l?++n:--n){for(;"HERECOMMENT"===this.tag(a+g+e);)e+=2;if(null!=h[g]&&("string"===typeof h[g]&&(h[g]=[h[g]]),k=this.tag(a+g+e),0>p.call(h[g],k)))return-1}return a+g+e-1};k.prototype.looksObjectish=function(c){var e;if(-1p.call(e,k))&&((r=this.tag(c),0>p.call(g,r))||this.tokens[c].generated)&&(m=this.tag(c),0>p.call(D,m)));)(n=this.tag(c),0<=p.call(a,n))&&h.push(this.tag(c)),(l=this.tag(c),0<=p.call(g,l))&&h.length&&h.pop(),--c;return y=this.tag(c),0<=p.call(e,y)};k.prototype.addImplicitBracesAndParens=function(){var h,n;h=[];n=null;return this.scanTokens(function(u, -t,k){var x,r,H,y,w,A,z,E,q,B,G,C,ha,F,J,S,V,K;K=u[0];B=(G=0p.call(a,c):return n[1];case "@"!==this.tag(t-2):return t-2;default:return t-1}}.call(this);"HERECOMMENT"===this.tag(r-2);)r-=2;this.insideForDeclaration="FOR"===q;A=0===r||(F= -this.tag(r-1),0<=p.call(D,F))||k[r-1].newLine;if(J()&&(z=J(),F=z[0],G=z[1],("{"===F||"INDENT"===F&&"{"===this.tag(G-1))&&(A||","===this.tag(r-1)||"{"===this.tag(r-1))))return H(1);E(r,!!A);return H(2)}z()&&0<=p.call(D,K)&&(J()[2].sameLine=!1);E="OUTDENT"===B||G.newLine;if(0<=p.call(m,K)||0<=p.call(sa,K)&&E)for(;y();)if(E=J(),F=E[0],G=E[1],F=E[2],E=F.sameLine,A=F.startsLine,w()&&","!==B)x();else if(z()&&!this.insideForDeclaration&&E&&"TERMINATOR"!==K&&":"!==B)r();else if(!z()||"TERMINATOR"!==K||","=== -B||A&&this.looksObjectish(t+1))break;else{if("HERECOMMENT"===q)return H(1);r()}if(!(","!==K||this.looksObjectish(t+1)||!z()||this.insideForDeclaration||"TERMINATOR"===q&&this.looksObjectish(t+2)))for(q="OUTDENT"===q?1:0;z();)r(t+q);return H(1)})};k.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,e){var h,g,n;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(n=e[c+1])?n[2]:void 0)?(g=h.first_line,h=h.first_column):(h=null!=(g=e[c-1])?g[2]:void 0)? -(g=h.last_line,h=h.last_column):g=h=0;a[2]={first_line:g,first_column:h,last_line:g,last_column:h};return 1})};k.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,e){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===a[0]||a.generated&&"}"===a[0]))return 1;c=e[c-1][2];a[2]={first_line:c.last_line,first_column:c.last_column,last_line:c.last_line,last_column:c.last_column};return 1})};k.prototype.normalizeLines=function(){var a,c,e,g,l;l=e=g=null;c=function(a,c){var e,g, -h,n;return";"!==a[1]&&(e=a[0],0<=p.call(w,e))&&!("TERMINATOR"===a[0]&&(g=this.tag(c+1),0<=p.call(ha,g)))&&!("ELSE"===a[0]&&"THEN"!==l)&&!!("CATCH"!==(h=a[0])&&"FINALLY"!==h||"-\x3e"!==l&&"\x3d\x3e"!==l)||(n=a[0],0<=p.call(sa,n))&&this.tokens[c-1].newLine};a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,g)};return this.scanTokens(function(h,n,k){var t,m,u;h=h[0];if("TERMINATOR"===h){if("ELSE"===this.tag(n+1)&&"OUTDENT"!==this.tag(n-1))return k.splice.apply(k,[].concat([n,1],$jscomp.arrayFromIterable(this.indentation()))), -1;if(t=this.tag(n+1),0<=p.call(ha,t))return k.splice(n,1),0}if("CATCH"===h)for(t=m=1;2>=m;t=++m)if("OUTDENT"===(u=this.tag(n+t))||"TERMINATOR"===u||"FINALLY"===u)return k.splice.apply(k,[].concat([n+t,0],$jscomp.arrayFromIterable(this.indentation()))),2+t;0<=p.call(z,h)&&"INDENT"!==this.tag(n+1)&&("ELSE"!==h||"IF"!==this.tag(n+1))&&(l=h,u=this.indentation(k[n]),e=u[0],g=u[1],"THEN"===l&&(e.fromThen=!0),k.splice(n+1,0,e),this.detectEnd(n+2,c,a),"THEN"===h&&k.splice(n,1));return 1})};k.prototype.tagPostfixConditionals= -function(){var a,c,e;e=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>p.call(z,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return e[0]="POST_"+e[0]};return this.scanTokens(function(h,g){if("IF"!==h[0])return 1;e=h;this.detectEnd(g+1,c,a);return 1})};k.prototype.indentation=function(a){var c,e;c=["INDENT",2];e=["OUTDENT",2];a?(c.generated=e.generated=!0,c.origin=e.origin=a):c.explicit=e.explicit=!0;return[c,e]};k.prototype.tag=function(a){var c; -return null!=(c=this.tokens[a])?c[0]:void 0};k.prototype.generate=l;return k}();q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]];k.INVERSES=y={};g=[];a=[];E=0;for(B=q.length;Ethis.indent){if(h)return this.indebt=g-this.indent,this.suppressNewlines(),c.length;if(!this.tokens.length)return this.baseIndent= -this.indent=g,this.indentLiteral=e,c.length;a=g-this.indent+this.outdebt;this.token("INDENT",a,c.length-g,g);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=g;this.indentLiteral=e}else g -l&&(n=this.token("+","+"),n[2]={first_line:m[2].first_line,first_column:m[2].first_column,last_line:m[2].first_line,last_column:m[2].first_column});this.tokens.push.apply(this.tokens,[].concat($jscomp.arrayFromIterable(x)))}if(t)return a=a[a.length-1],t.origin=["STRING",null,{first_line:t[2].first_line,first_column:t[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],t=this.token("STRING_END",")"),t[2]={first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line, -last_column:a[2].last_column}};N.prototype.pair=function(a){var c;c=this.ends;c=c[c.length-1];return a!==(c=null!=c?c.tag:void 0)?("OUTDENT"!==c&&this.error("unmatched "+a),c=this.indents,c=c[c.length-1],this.outdentToken(c,!0),this.pair(a)):this.ends.pop()};N.prototype.getLineAndColumnFromChunk=function(a){var c,e;if(0===a)return[this.chunkLine,this.chunkColumn];e=a>=this.chunk.length?this.chunk:this.chunk.slice(0,+(a-1)+1||9E9);a=ma(e,"\n");c=this.chunkColumn;0ea.call([].concat($jscomp.arrayFromIterable(u),$jscomp.arrayFromIterable(ta)),a):return"keyword '"+c+"' can't be assigned";case 0>ea.call(S,a):return"'"+c+"' can't be assigned";case 0>ea.call(C,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};k.isUnassignable=da;ja=function(a){var c;return"IDENTIFIER"=== -a[0]?("from"===a[1]&&(a[1][0]="IDENTIFIER",!0),!0):"FOR"===a[0]?!1:"{"===(c=a[1])||"["===c||","===c||":"===c?!1:!0};u="true false null this new delete typeof in instanceof return throw break continue debugger yield await if else switch for while do try catch finally class extends super import export default".split(" ");ta="undefined Infinity NaN then unless until loop of by when".split(" ");g={and:"\x26\x26",or:"||",is:"\x3d\x3d",isnt:"!\x3d",not:"!",yes:"true",no:"false",on:"true",off:"false"};a= -function(){var a;a=[];for(oa in g)a.push(oa);return a}();ta=ta.concat(a);C="case function var void with const let enum native implements interface package private protected public static".split(" ");S=["arguments","eval"];k.JS_FORBIDDEN=u.concat(C).concat(S);xa=65279;B=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/;Q=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;R=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;la=/^[^\n\S]+/;m=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/; -ha=/^[-=]>/;W=/^(?:\n[^\n\S]*)+/;n=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;A=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;ba=/^(?:'''|"""|'|")/;aa=/^(?:[^\\']|\\[\s\S])*/;V=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;z=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;D=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;K=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g;ca=/\s*\n\s*/g;w=/\n+([^\n\S]*)(?=\S)/g;U=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;O=/^\w*/;za=/^(?!.*(.).*\1)[imgy]*$/;l=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/; -E=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;P=/^(\/|\/{3}\s*)(\*)/;M=/^\/=?\s/;y=/\*\//;x=/^\s*(?:,|\??\.(?![.\d])|::)/;ra=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;t=/^[^\n\S]*\n/;Y=/\n[^\n\S]*$/;X=/\s+$/;e="-\x3d +\x3d /\x3d *\x3d %\x3d ||\x3d \x26\x26\x3d ?\x3d \x3c\x3c\x3d \x3e\x3e\x3d \x3e\x3e\x3e\x3d \x26\x3d ^\x3d |\x3d **\x3d //\x3d %%\x3d".split(" ");ua=["NEW","TYPEOF","DELETE","DO"];Na=["!","~"];F=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];c= -"\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");r=["*","/","%","//","%%"];G=["IN","OF","INSTANCEOF"];sa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");p=sa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));T=p.concat(["++","--"]);H=["INDENT","OUTDENT","TERMINATOR"];J=[")","}","]"]}).call(this);return k}();q["./parser"]=function(){var k={},xa={exports:k},sa=function(){function k(){this.yy={}}var a=function(a,v,L,d){L=L||{};for(d=a.length;d--;L[a[d]]= -v);return L},g=[1,22],q=[1,52],m=[1,86],c=[1,82],e=[1,87],y=[1,88],D=[1,84],w=[1,85],z=[1,60],l=[1,62],E=[1,63],A=[1,64],B=[1,65],J=[1,66],p=[1,53],sa=[1,40],h=[1,54],n=[1,34],u=[1,71],t=[1,72],H=[1,33],x=[1,81],r=[1,50],W=[1,55],T=[1,56],Q=[1,69],R=[1,70],M=[1,68],U=[1,45],O=[1,51],P=[1,67],G=[1,76],C=[1,77],Z=[1,78],F=[1,79],ca=[1,49],S=[1,75],V=[1,36],K=[1,37],aa=[1,38],ba=[1,39],Y=[1,41],X=[1,42],xa=[1,89],ua=[1,6,34,44,134],za=[1,104],la=[1,92],ma=[1,91],I=[1,90],ja=[1,93],da=[1,94],oa=[1,95], -ia=[1,96],ka=[1,97],pa=[1,98],ea=[1,99],N=[1,100],qa=[1,101],va=[1,102],na=[1,103],ra=[1,107],wa=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],Qa=[2,170],Xa=[1,113],Ha=[1,118],Ya=[1,114],cb=[1,115],Ra=[1,116],Ia=[1,119],Fa=[1,112],Ea=[1,6,34,44,134,136,138,142,159],Ba=[1,6,33,34,42,43,44,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176, -177],Sa=[2,98],Ta=[2,77],db=[1,129],Ja=[1,134],Ma=[1,135],Ca=[1,137],ga=[1,141],fa=[1,139],Ua=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],ya=[2,95],gb=[1,6,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],eb=[2,29],fb=[1,167],Oa=[2,65],hb=[1,175],Za=[1,187],Ga=[1,189],mb=[1,184],La=[1,191],Ka=[1,6,33,34,42,43,44,57, -68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],nb=[2,117],ob=[1,6,33,34,42,43,44,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],Va=[1,6,33,34,42,43,44,48,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],ib=[1, -239],pb=[42,43,117],qb=[1,249],b=[1,248],v=[2,75],L=[1,259],d=[6,33,34,68,73],f=[6,33,34,57,68,73,76],Wa=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,168,169,170,171,172,173,174,175,176,177],Da=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,169,170,171,172,173,174,175,176,177],rb=[42,43,87,88,90,91,92,95,116,117],vb=[1,279],Pa=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159],$a=[2,64],wb=[1,291],jb=[1,293], -Hb=[1,298],sb=[1,300],Sb=[2,191],Ib=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],xb=[1,309],ab=[6,33,34,73,118,123],Tb=[1,6,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],Ub=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,143,159],kb=[1, -6,33,34,44,68,73,76,89,99,118,123,125,134,137,143,159],yb=[149,150,151],zb=[73,149,150,151],Ab=[6,33,99],Vb=[1,321],Aa=[6,33,34,73,99],Wb=[6,33,34,60,73,99],Jb=[6,33,34,57,60,73,99],Xb=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,169,170,171,172,173,174,175,176,177],lb=[1,6,33,34,44,48,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],Yb=[14,30,36,40,42,43,46,47,50,51,52,53,54,55, -63,64,65,66,70,71,86,89,97,100,102,110,120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],Zb=[2,180],bb=[6,33,34],tb=[2,76],$b=[1,336],ac=[1,337],bc=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,131,134,136,137,138,142,143,154,156,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],Bb=[34,154,156],cc=[1,6,34,44,68,73,76,89,99,118,123,125,134,137,143,159],Cb=[1,363],Kb=[1,369],Lb=[1,6,34,44,134,159],ub=[2,90],Db=[1,379],Eb=[1,380],dc=[1,6,33,34,44,68,73,76,89,99,118,123, -125,134,136,137,138,142,143,154,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],Mb=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,143,159],ec=[1,392],fc=[1,393],Nb=[6,33,34,99],gc=[6,33,34,73],Ob=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],hc=[33,73],Fb=[1,420],Gb=[1,421],Pb=[1,427],Qb=[1,428],ic={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8, -FuncDirective:9,YieldReturn:10,AwaitReturn:11,Return:12,Comment:13,STATEMENT:14,Import:15,Export:16,Value:17,Invocation:18,Code:19,Operation:20,Assign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Throw:28,Yield:29,YIELD:30,FROM:31,Block:32,INDENT:33,OUTDENT:34,Identifier:35,IDENTIFIER:36,Property:37,PROPERTY:38,AlphaNumeric:39,NUMBER:40,String:41,STRING:42,STRING_START:43,STRING_END:44,Regex:45,REGEX:46,REGEX_START:47,REGEX_END:48,Literal:49,JS:50,UNDEFINED:51,NULL:52,BOOL:53,INFINITY:54,NAN:55, -Assignable:56,"\x3d":57,AssignObj:58,ObjAssignable:59,":":60,SimpleObjAssignable:61,ThisProperty:62,RETURN:63,AWAIT:64,HERECOMMENT:65,PARAM_START:66,ParamList:67,PARAM_END:68,FuncGlyph:69,"-\x3e":70,"\x3d\x3e":71,OptComma:72,",":73,Param:74,ParamVar:75,"...":76,Array:77,Object:78,Splat:79,SimpleAssignable:80,Accessor:81,Parenthetical:82,Range:83,This:84,Super:85,SUPER:86,".":87,INDEX_START:88,INDEX_END:89,"?.":90,"::":91,"?::":92,Index:93,IndexValue:94,INDEX_SOAK:95,Slice:96,"{":97,AssignList:98, -"}":99,CLASS:100,EXTENDS:101,IMPORT:102,ImportDefaultSpecifier:103,ImportNamespaceSpecifier:104,ImportSpecifierList:105,ImportSpecifier:106,AS:107,DEFAULT:108,IMPORT_ALL:109,EXPORT:110,ExportSpecifierList:111,EXPORT_ALL:112,ExportSpecifier:113,OptFuncExist:114,Arguments:115,FUNC_EXIST:116,CALL_START:117,CALL_END:118,ArgList:119,THIS:120,"@":121,"[":122,"]":123,RangeDots:124,"..":125,Arg:126,SimpleArgs:127,TRY:128,Catch:129,FINALLY:130,CATCH:131,THROW:132,"(":133,")":134,WhileSource:135,WHILE:136, -WHEN:137,UNTIL:138,Loop:139,LOOP:140,ForBody:141,FOR:142,BY:143,ForStart:144,ForSource:145,ForVariables:146,OWN:147,ForValue:148,FORIN:149,FOROF:150,FORFROM:151,SWITCH:152,Whens:153,ELSE:154,When:155,LEADING_WHEN:156,IfBlock:157,IF:158,POST_IF:159,UNARY:160,UNARY_MATH:161,"-":162,"+":163,"--":164,"++":165,"?":166,MATH:167,"**":168,SHIFT:169,COMPARE:170,"\x26":171,"^":172,"|":173,"\x26\x26":174,"||":175,"BIN?":176,RELATION:177,COMPOUND_ASSIGN:178,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR", -14:"STATEMENT",30:"YIELD",31:"FROM",33:"INDENT",34:"OUTDENT",36:"IDENTIFIER",38:"PROPERTY",40:"NUMBER",42:"STRING",43:"STRING_START",44:"STRING_END",46:"REGEX",47:"REGEX_START",48:"REGEX_END",50:"JS",51:"UNDEFINED",52:"NULL",53:"BOOL",54:"INFINITY",55:"NAN",57:"\x3d",60:":",63:"RETURN",64:"AWAIT",65:"HERECOMMENT",66:"PARAM_START",68:"PARAM_END",70:"-\x3e",71:"\x3d\x3e",73:",",76:"...",86:"SUPER",87:".",88:"INDEX_START",89:"INDEX_END",90:"?.",91:"::",92:"?::",95:"INDEX_SOAK",97:"{",99:"}",100:"CLASS", -101:"EXTENDS",102:"IMPORT",107:"AS",108:"DEFAULT",109:"IMPORT_ALL",110:"EXPORT",112:"EXPORT_ALL",116:"FUNC_EXIST",117:"CALL_START",118:"CALL_END",120:"THIS",121:"@",122:"[",123:"]",125:"..",128:"TRY",130:"FINALLY",131:"CATCH",132:"THROW",133:"(",134:")",136:"WHILE",137:"WHEN",138:"UNTIL",140:"LOOP",142:"FOR",143:"BY",147:"OWN",149:"FORIN",150:"FOROF",151:"FORFROM",152:"SWITCH",154:"ELSE",156:"LEADING_WHEN",158:"IF",159:"POST_IF",160:"UNARY",161:"UNARY_MATH",162:"-",163:"+",164:"--",165:"++",166:"?", -167:"MATH",168:"**",169:"SHIFT",170:"COMPARE",171:"\x26",172:"^",173:"|",174:"\x26\x26",175:"||",176:"BIN?",177:"RELATION",178:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[29,1],[29,2],[29,3],[32,2],[32,3],[35,1],[37,1],[39,1],[39,1],[41,1],[41,3],[45,1],[45,3],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[21,3],[21,4],[21,5],[58, -1],[58,3],[58,5],[58,3],[58,5],[58,1],[61,1],[61,1],[61,1],[59,1],[59,1],[12,2],[12,1],[10,3],[10,2],[11,3],[11,2],[13,1],[19,5],[19,2],[69,1],[69,1],[72,0],[72,1],[67,0],[67,1],[67,3],[67,4],[67,6],[74,1],[74,2],[74,3],[74,1],[75,1],[75,1],[75,1],[75,1],[79,2],[80,1],[80,2],[80,2],[80,1],[56,1],[56,1],[56,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[85,3],[85,4],[81,2],[81,2],[81,2],[81,2],[81,1],[81,1],[93,3],[93,2],[94,1],[94,1],[78,4],[98,0],[98,1],[98,3],[98,4],[98,6],[27,1],[27,2],[27,3],[27, -4],[27,2],[27,3],[27,4],[27,5],[15,2],[15,4],[15,4],[15,5],[15,7],[15,6],[15,9],[105,1],[105,3],[105,4],[105,4],[105,6],[106,1],[106,3],[106,1],[106,3],[103,1],[104,3],[16,3],[16,5],[16,2],[16,4],[16,5],[16,6],[16,3],[16,4],[16,7],[111,1],[111,3],[111,4],[111,4],[111,6],[113,1],[113,3],[113,3],[113,1],[18,3],[18,3],[18,3],[18,3],[114,0],[114,1],[115,2],[115,4],[84,1],[84,1],[62,2],[77,2],[77,4],[124,1],[124,1],[83,5],[96,3],[96,2],[96,2],[96,1],[119,1],[119,3],[119,4],[119,4],[119,6],[126,1],[126, -1],[126,1],[127,1],[127,3],[23,2],[23,3],[23,4],[23,5],[129,3],[129,3],[129,2],[28,2],[82,3],[82,5],[135,2],[135,4],[135,2],[135,4],[24,2],[24,2],[24,2],[24,1],[139,2],[139,2],[25,2],[25,2],[25,2],[141,2],[141,4],[141,2],[144,2],[144,3],[148,1],[148,1],[148,1],[148,1],[146,1],[146,3],[145,2],[145,2],[145,4],[145,4],[145,4],[145,6],[145,6],[145,2],[145,4],[26,5],[26,7],[26,4],[26,6],[153,1],[153,2],[155,3],[155,4],[157,3],[157,5],[22,1],[22,3],[22,3],[22,3],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2], -[20,2],[20,2],[20,2],[20,2],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,5],[20,4],[20,3]],performAction:function(a,v,L,d,c,f,b){a=f.length-1;switch(c){case 1:return this.$=d.addLocationDataFn(b[a],b[a])(new d.Block);case 2:return this.$=f[a];case 3:this.$=d.addLocationDataFn(b[a],b[a])(d.Block.wrap([f[a]]));break;case 4:this.$=d.addLocationDataFn(b[a-2],b[a])(f[a-2].push(f[a]));break;case 5:this.$=f[a-1];break;case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 37:case 42:case 44:case 58:case 59:case 60:case 61:case 62:case 63:case 75:case 76:case 86:case 87:case 88:case 89:case 94:case 95:case 98:case 102:case 103:case 111:case 191:case 192:case 194:case 224:case 225:case 243:case 249:this.$= -f[a];break;case 13:this.$=d.addLocationDataFn(b[a],b[a])(new d.StatementLiteral(f[a]));break;case 29:this.$=d.addLocationDataFn(b[a],b[a])(new d.Op(f[a],new d.Value(new d.Literal(""))));break;case 30:case 253:case 254:case 257:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op(f[a-1],f[a]));break;case 31:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Op(f[a-2].concat(f[a-1]),f[a]));break;case 32:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Block);break;case 33:case 112:this.$=d.addLocationDataFn(b[a- -2],b[a])(f[a-1]);break;case 34:this.$=d.addLocationDataFn(b[a],b[a])(new d.IdentifierLiteral(f[a]));break;case 35:this.$=d.addLocationDataFn(b[a],b[a])(new d.PropertyName(f[a]));break;case 36:this.$=d.addLocationDataFn(b[a],b[a])(new d.NumberLiteral(f[a]));break;case 38:this.$=d.addLocationDataFn(b[a],b[a])(new d.StringLiteral(f[a]));break;case 39:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.StringWithInterpolations(f[a-1]));break;case 40:this.$=d.addLocationDataFn(b[a],b[a])(new d.RegexLiteral(f[a])); -break;case 41:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.RegexWithInterpolations(f[a-1].args));break;case 43:this.$=d.addLocationDataFn(b[a],b[a])(new d.PassthroughLiteral(f[a]));break;case 45:this.$=d.addLocationDataFn(b[a],b[a])(new d.UndefinedLiteral);break;case 46:this.$=d.addLocationDataFn(b[a],b[a])(new d.NullLiteral);break;case 47:this.$=d.addLocationDataFn(b[a],b[a])(new d.BooleanLiteral(f[a]));break;case 48:this.$=d.addLocationDataFn(b[a],b[a])(new d.InfinityLiteral(f[a]));break;case 49:this.$= -d.addLocationDataFn(b[a],b[a])(new d.NaNLiteral);break;case 50:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Assign(f[a-2],f[a]));break;case 51:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Assign(f[a-3],f[a]));break;case 52:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Assign(f[a-4],f[a-1]));break;case 53:case 91:case 96:case 97:case 99:case 100:case 101:case 226:case 227:this.$=d.addLocationDataFn(b[a],b[a])(new d.Value(f[a]));break;case 54:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Assign(d.addLocationDataFn(b[a- -2])(new d.Value(f[a-2])),f[a],"object",{operatorToken:d.addLocationDataFn(b[a-1])(new d.Literal(f[a-1]))}));break;case 55:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Assign(d.addLocationDataFn(b[a-4])(new d.Value(f[a-4])),f[a-1],"object",{operatorToken:d.addLocationDataFn(b[a-3])(new d.Literal(f[a-3]))}));break;case 56:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Assign(d.addLocationDataFn(b[a-2])(new d.Value(f[a-2])),f[a],null,{operatorToken:d.addLocationDataFn(b[a-1])(new d.Literal(f[a-1]))})); -break;case 57:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Assign(d.addLocationDataFn(b[a-4])(new d.Value(f[a-4])),f[a-1],null,{operatorToken:d.addLocationDataFn(b[a-3])(new d.Literal(f[a-3]))}));break;case 64:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Return(f[a]));break;case 65:this.$=d.addLocationDataFn(b[a],b[a])(new d.Return);break;case 66:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.YieldReturn(f[a]));break;case 67:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.YieldReturn);break;case 68:this.$= -d.addLocationDataFn(b[a-2],b[a])(new d.AwaitReturn(f[a]));break;case 69:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.AwaitReturn);break;case 70:this.$=d.addLocationDataFn(b[a],b[a])(new d.Comment(f[a]));break;case 71:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Code(f[a-3],f[a],f[a-1]));break;case 72:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Code([],f[a],f[a-1]));break;case 73:this.$=d.addLocationDataFn(b[a],b[a])("func");break;case 74:this.$=d.addLocationDataFn(b[a],b[a])("boundfunc");break; -case 77:case 117:this.$=d.addLocationDataFn(b[a],b[a])([]);break;case 78:case 118:case 137:case 157:case 186:case 228:this.$=d.addLocationDataFn(b[a],b[a])([f[a]]);break;case 79:case 119:case 138:case 158:case 187:this.$=d.addLocationDataFn(b[a-2],b[a])(f[a-2].concat(f[a]));break;case 80:case 120:case 139:case 159:case 188:this.$=d.addLocationDataFn(b[a-3],b[a])(f[a-3].concat(f[a]));break;case 81:case 121:case 141:case 161:case 190:this.$=d.addLocationDataFn(b[a-5],b[a])(f[a-5].concat(f[a-2]));break; -case 82:this.$=d.addLocationDataFn(b[a],b[a])(new d.Param(f[a]));break;case 83:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Param(f[a-1],null,!0));break;case 84:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Param(f[a-2],f[a]));break;case 85:case 193:this.$=d.addLocationDataFn(b[a],b[a])(new d.Expansion);break;case 90:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Splat(f[a-1]));break;case 92:this.$=d.addLocationDataFn(b[a-1],b[a])(f[a-1].add(f[a]));break;case 93:this.$=d.addLocationDataFn(b[a-1], -b[a])(new d.Value(f[a-1],[].concat(f[a])));break;case 104:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Super(d.addLocationDataFn(b[a])(new d.Access(f[a]))));break;case 105:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Super(d.addLocationDataFn(b[a-1])(new d.Index(f[a-1]))));break;case 106:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Access(f[a]));break;case 107:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Access(f[a],"soak"));break;case 108:this.$=d.addLocationDataFn(b[a-1],b[a])([d.addLocationDataFn(b[a- -1])(new d.Access(new d.PropertyName("prototype"))),d.addLocationDataFn(b[a])(new d.Access(f[a]))]);break;case 109:this.$=d.addLocationDataFn(b[a-1],b[a])([d.addLocationDataFn(b[a-1])(new d.Access(new d.PropertyName("prototype"),"soak")),d.addLocationDataFn(b[a])(new d.Access(f[a]))]);break;case 110:this.$=d.addLocationDataFn(b[a],b[a])(new d.Access(new d.PropertyName("prototype")));break;case 113:this.$=d.addLocationDataFn(b[a-1],b[a])(d.extend(f[a],{soak:!0}));break;case 114:this.$=d.addLocationDataFn(b[a], -b[a])(new d.Index(f[a]));break;case 115:this.$=d.addLocationDataFn(b[a],b[a])(new d.Slice(f[a]));break;case 116:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Obj(f[a-2],f[a-3].generated));break;case 122:this.$=d.addLocationDataFn(b[a],b[a])(new d.Class);break;case 123:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Class(null,null,f[a]));break;case 124:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Class(null,f[a]));break;case 125:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Class(null,f[a-1],f[a])); -break;case 126:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Class(f[a]));break;case 127:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Class(f[a-1],null,f[a]));break;case 128:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Class(f[a-2],f[a]));break;case 129:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Class(f[a-3],f[a-1],f[a]));break;case 130:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.ImportDeclaration(null,f[a]));break;case 131:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.ImportDeclaration(new d.ImportClause(f[a- -2],null),f[a]));break;case 132:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.ImportDeclaration(new d.ImportClause(null,f[a-2]),f[a]));break;case 133:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.ImportDeclaration(new d.ImportClause(null,new d.ImportSpecifierList([])),f[a]));break;case 134:this.$=d.addLocationDataFn(b[a-6],b[a])(new d.ImportDeclaration(new d.ImportClause(null,new d.ImportSpecifierList(f[a-4])),f[a]));break;case 135:this.$=d.addLocationDataFn(b[a-5],b[a])(new d.ImportDeclaration(new d.ImportClause(f[a- -4],f[a-2]),f[a]));break;case 136:this.$=d.addLocationDataFn(b[a-8],b[a])(new d.ImportDeclaration(new d.ImportClause(f[a-7],new d.ImportSpecifierList(f[a-4])),f[a]));break;case 140:case 160:case 173:case 189:this.$=d.addLocationDataFn(b[a-3],b[a])(f[a-2]);break;case 142:this.$=d.addLocationDataFn(b[a],b[a])(new d.ImportSpecifier(f[a]));break;case 143:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ImportSpecifier(f[a-2],f[a]));break;case 144:this.$=d.addLocationDataFn(b[a],b[a])(new d.ImportSpecifier(new d.Literal(f[a]))); -break;case 145:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ImportSpecifier(new d.Literal(f[a-2]),f[a]));break;case 146:this.$=d.addLocationDataFn(b[a],b[a])(new d.ImportDefaultSpecifier(f[a]));break;case 147:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ImportNamespaceSpecifier(new d.Literal(f[a-2]),f[a]));break;case 148:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ExportNamedDeclaration(new d.ExportSpecifierList([])));break;case 149:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.ExportNamedDeclaration(new d.ExportSpecifierList(f[a- -2])));break;case 150:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.ExportNamedDeclaration(f[a]));break;case 151:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.ExportNamedDeclaration(new d.Assign(f[a-2],f[a],null,{moduleDeclaration:"export"})));break;case 152:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.ExportNamedDeclaration(new d.Assign(f[a-3],f[a],null,{moduleDeclaration:"export"})));break;case 153:this.$=d.addLocationDataFn(b[a-5],b[a])(new d.ExportNamedDeclaration(new d.Assign(f[a-4],f[a-1],null, -{moduleDeclaration:"export"})));break;case 154:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ExportDefaultDeclaration(f[a]));break;case 155:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.ExportAllDeclaration(new d.Literal(f[a-2]),f[a]));break;case 156:this.$=d.addLocationDataFn(b[a-6],b[a])(new d.ExportNamedDeclaration(new d.ExportSpecifierList(f[a-4]),f[a]));break;case 162:this.$=d.addLocationDataFn(b[a],b[a])(new d.ExportSpecifier(f[a]));break;case 163:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ExportSpecifier(f[a- -2],f[a]));break;case 164:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.ExportSpecifier(f[a-2],new d.Literal(f[a])));break;case 165:this.$=d.addLocationDataFn(b[a],b[a])(new d.ExportSpecifier(new d.Literal(f[a])));break;case 166:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.TaggedTemplateCall(f[a-2],f[a],f[a-1]));break;case 167:case 168:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Call(f[a-2],f[a],f[a-1]));break;case 169:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.SuperCall(d.addLocationDataFn(b[a- -2])(new d.Super),f[a],f[a-1]));break;case 170:this.$=d.addLocationDataFn(b[a],b[a])(!1);break;case 171:this.$=d.addLocationDataFn(b[a],b[a])(!0);break;case 172:this.$=d.addLocationDataFn(b[a-1],b[a])([]);break;case 174:case 175:this.$=d.addLocationDataFn(b[a],b[a])(new d.Value(new d.ThisLiteral));break;case 176:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Value(d.addLocationDataFn(b[a-1])(new d.ThisLiteral),[d.addLocationDataFn(b[a])(new d.Access(f[a]))],"this"));break;case 177:this.$=d.addLocationDataFn(b[a- -1],b[a])(new d.Arr([]));break;case 178:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Arr(f[a-2]));break;case 179:this.$=d.addLocationDataFn(b[a],b[a])("inclusive");break;case 180:this.$=d.addLocationDataFn(b[a],b[a])("exclusive");break;case 181:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Range(f[a-3],f[a-1],f[a-2]));break;case 182:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Range(f[a-2],f[a],f[a-1]));break;case 183:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Range(f[a-1],null,f[a]));break;case 184:this.$= -d.addLocationDataFn(b[a-1],b[a])(new d.Range(null,f[a],f[a-1]));break;case 185:this.$=d.addLocationDataFn(b[a],b[a])(new d.Range(null,null,f[a]));break;case 195:this.$=d.addLocationDataFn(b[a-2],b[a])([].concat(f[a-2],f[a]));break;case 196:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Try(f[a]));break;case 197:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Try(f[a-1],f[a][0],f[a][1]));break;case 198:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Try(f[a-2],null,null,f[a]));break;case 199:this.$=d.addLocationDataFn(b[a- -4],b[a])(new d.Try(f[a-3],f[a-2][0],f[a-2][1],f[a]));break;case 200:this.$=d.addLocationDataFn(b[a-2],b[a])([f[a-1],f[a]]);break;case 201:this.$=d.addLocationDataFn(b[a-2],b[a])([d.addLocationDataFn(b[a-1])(new d.Value(f[a-1])),f[a]]);break;case 202:this.$=d.addLocationDataFn(b[a-1],b[a])([null,f[a]]);break;case 203:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Throw(f[a]));break;case 204:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Parens(f[a-1]));break;case 205:this.$=d.addLocationDataFn(b[a-4], -b[a])(new d.Parens(f[a-2]));break;case 206:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.While(f[a]));break;case 207:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.While(f[a-2],{guard:f[a]}));break;case 208:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.While(f[a],{invert:!0}));break;case 209:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.While(f[a-2],{invert:!0,guard:f[a]}));break;case 210:this.$=d.addLocationDataFn(b[a-1],b[a])(f[a-1].addBody(f[a]));break;case 211:case 212:this.$=d.addLocationDataFn(b[a- -1],b[a])(f[a].addBody(d.addLocationDataFn(b[a-1])(d.Block.wrap([f[a-1]]))));break;case 213:this.$=d.addLocationDataFn(b[a],b[a])(f[a]);break;case 214:this.$=d.addLocationDataFn(b[a-1],b[a])((new d.While(d.addLocationDataFn(b[a-1])(new d.BooleanLiteral("true")))).addBody(f[a]));break;case 215:this.$=d.addLocationDataFn(b[a-1],b[a])((new d.While(d.addLocationDataFn(b[a-1])(new d.BooleanLiteral("true")))).addBody(d.addLocationDataFn(b[a])(d.Block.wrap([f[a]]))));break;case 216:case 217:this.$=d.addLocationDataFn(b[a- -1],b[a])(new d.For(f[a-1],f[a]));break;case 218:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.For(f[a],f[a-1]));break;case 219:this.$=d.addLocationDataFn(b[a-1],b[a])({source:d.addLocationDataFn(b[a])(new d.Value(f[a]))});break;case 220:this.$=d.addLocationDataFn(b[a-3],b[a])({source:d.addLocationDataFn(b[a-2])(new d.Value(f[a-2])),step:f[a]});break;case 221:d=d.addLocationDataFn(b[a-1],b[a]);f[a].own=f[a-1].own;f[a].ownTag=f[a-1].ownTag;f[a].name=f[a-1][0];f[a].index=f[a-1][1];this.$=d(f[a]);break; -case 222:this.$=d.addLocationDataFn(b[a-1],b[a])(f[a]);break;case 223:c=d.addLocationDataFn(b[a-2],b[a]);f[a].own=!0;f[a].ownTag=d.addLocationDataFn(b[a-1])(new d.Literal(f[a-1]));this.$=c(f[a]);break;case 229:this.$=d.addLocationDataFn(b[a-2],b[a])([f[a-2],f[a]]);break;case 230:this.$=d.addLocationDataFn(b[a-1],b[a])({source:f[a]});break;case 231:this.$=d.addLocationDataFn(b[a-1],b[a])({source:f[a],object:!0});break;case 232:this.$=d.addLocationDataFn(b[a-3],b[a])({source:f[a-2],guard:f[a]});break; -case 233:this.$=d.addLocationDataFn(b[a-3],b[a])({source:f[a-2],guard:f[a],object:!0});break;case 234:this.$=d.addLocationDataFn(b[a-3],b[a])({source:f[a-2],step:f[a]});break;case 235:this.$=d.addLocationDataFn(b[a-5],b[a])({source:f[a-4],guard:f[a-2],step:f[a]});break;case 236:this.$=d.addLocationDataFn(b[a-5],b[a])({source:f[a-4],step:f[a-2],guard:f[a]});break;case 237:this.$=d.addLocationDataFn(b[a-1],b[a])({source:f[a],from:!0});break;case 238:this.$=d.addLocationDataFn(b[a-3],b[a])({source:f[a- -2],guard:f[a],from:!0});break;case 239:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Switch(f[a-3],f[a-1]));break;case 240:this.$=d.addLocationDataFn(b[a-6],b[a])(new d.Switch(f[a-5],f[a-3],f[a-1]));break;case 241:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Switch(null,f[a-1]));break;case 242:this.$=d.addLocationDataFn(b[a-5],b[a])(new d.Switch(null,f[a-3],f[a-1]));break;case 244:this.$=d.addLocationDataFn(b[a-1],b[a])(f[a-1].concat(f[a]));break;case 245:this.$=d.addLocationDataFn(b[a-2],b[a])([[f[a- -1],f[a]]]);break;case 246:this.$=d.addLocationDataFn(b[a-3],b[a])([[f[a-2],f[a-1]]]);break;case 247:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.If(f[a-1],f[a],{type:f[a-2]}));break;case 248:this.$=d.addLocationDataFn(b[a-4],b[a])(f[a-4].addElse(d.addLocationDataFn(b[a-2],b[a])(new d.If(f[a-1],f[a],{type:f[a-2]}))));break;case 250:this.$=d.addLocationDataFn(b[a-2],b[a])(f[a-2].addElse(f[a]));break;case 251:case 252:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.If(f[a],d.addLocationDataFn(b[a-2])(d.Block.wrap([f[a- -2]])),{type:f[a-1],statement:!0}));break;case 255:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("-",f[a]));break;case 256:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("+",f[a]));break;case 258:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("--",f[a]));break;case 259:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("++",f[a]));break;case 260:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("--",f[a-1],null,!0));break;case 261:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Op("++",f[a-1],null, -!0));break;case 262:this.$=d.addLocationDataFn(b[a-1],b[a])(new d.Existence(f[a-1]));break;case 263:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Op("+",f[a-2],f[a]));break;case 264:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Op("-",f[a-2],f[a]));break;case 265:case 266:case 267:case 268:case 269:case 270:case 271:case 272:case 273:case 274:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Op(f[a-1],f[a-2],f[a]));break;case 275:b=d.addLocationDataFn(b[a-2],b[a]);f="!"===f[a-1].charAt(0)?(new d.Op(f[a- -1].slice(1),f[a-2],f[a])).invert():new d.Op(f[a-1],f[a-2],f[a]);this.$=b(f);break;case 276:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Assign(f[a-2],f[a],f[a-1]));break;case 277:this.$=d.addLocationDataFn(b[a-4],b[a])(new d.Assign(f[a-4],f[a-1],f[a-3]));break;case 278:this.$=d.addLocationDataFn(b[a-3],b[a])(new d.Assign(f[a-3],f[a],f[a-2]));break;case 279:this.$=d.addLocationDataFn(b[a-2],b[a])(new d.Extends(f[a-2],f[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:g,15:23, -16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:q,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:sa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{1:[3]},{1:[2,2],6:xa},a(ua,[2,3]),a(ua,[2,6],{144:80,135:105, -141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(ua,[2,7],{144:80,135:108,141:109,136:G,138:C,142:F,159:ra}),a(ua,[2,8]),a(wa,[2,16],{114:110,81:111,93:117,42:Qa,43:Qa,117:Qa,87:Xa,88:Ha,90:Ya,91:cb,92:Ra,95:Ia,116:Fa}),a(wa,[2,17],{93:117,114:120,81:121,87:Xa,88:Ha,90:Ya,91:cb,92:Ra,95:Ia,116:Fa,117:Qa}),a(wa,[2,18]),a(wa,[2,19]),a(wa,[2,20]),a(wa,[2,21]),a(wa,[2,22]),a(wa,[2,23]),a(wa,[2,24]),a(wa,[2,25]),a(wa,[2, -26]),a(wa,[2,27]),a(wa,[2,28]),a(Ea,[2,11]),a(Ea,[2,12]),a(Ea,[2,13]),a(Ea,[2,14]),a(Ea,[2,15]),a(ua,[2,9]),a(ua,[2,10]),a(Ba,Sa,{57:[1,122]}),a(Ba,[2,99]),a(Ba,[2,100]),a(Ba,[2,101]),a(Ba,[2,102]),a(Ba,[2,103]),{87:[1,124],88:[1,125],114:123,116:Fa,117:Qa},a([6,33,68,73],Ta,{67:126,74:127,75:128,35:130,62:131,77:132,78:133,36:m,76:db,97:x,121:Ja,122:Ma}),{32:136,33:Ca},{7:138,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73, -36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:142,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83, -42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:143,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w, -49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:144,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A, -54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:145,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74, -63:[1,146],64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{17:148,18:149,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:150,62:74,77:57,78:58,80:147,82:29,83:30,84:31,85:32,86:H,97:x,120:Q,121:R,122:M,133:P},{17:148,18:149,35:73,36:m,39:59,40:c,41:83,42:e, -43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:150,62:74,77:57,78:58,80:151,82:29,83:30,84:31,85:32,86:H,97:x,120:Q,121:R,122:M,133:P},a(Ua,ya,{101:[1,155],164:[1,152],165:[1,153],178:[1,154]}),a(wa,[2,249],{154:[1,156]}),{32:157,33:Ca},{32:158,33:Ca},a(wa,[2,213]),{32:159,33:Ca},{7:160,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:[1,161],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E, -53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(gb,[2,122],{49:28,82:29,83:30,84:31,85:32,77:57,78:58,39:59,45:61,35:73,62:74,41:83,17:148,18:149,56:150,32:162,80:164,33:Ca,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,86:H,97:x,101:[1,163],120:Q,121:R, -122:M,133:P}),{7:165,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a([1,6,34, -44,134,136,138,142,159,166,167,168,169,170,171,172,173,174,175,176,177],eb,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:166,14:g,30:ga,31:fb,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:[1,168],64:fa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,140:Z,152:ca, -158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X}),a(Ea,Oa,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:169,14:g,30:ga,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:fa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,140:Z,152:ca,158:S,160:V,161:K,162:aa,163:ba, -164:Y,165:X}),a([1,6,33,34,44,73,99,134,136,138,142,159],[2,70]),{35:174,36:m,41:170,42:e,43:y,97:[1,173],103:171,104:172,109:hb},{27:177,35:178,36:m,97:[1,176],100:r,108:[1,179],112:[1,180]},a(Ua,[2,96]),a(Ua,[2,97]),a(Ba,[2,42]),a(Ba,[2,43]),a(Ba,[2,44]),a(Ba,[2,45]),a(Ba,[2,46]),a(Ba,[2,47]),a(Ba,[2,48]),a(Ba,[2,49]),{4:181,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:q,33:[1,182],35:73,36:m,39:59,40:c,41:83, -42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:sa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:183,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:Za,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61, -46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,119:185,120:Q,121:R,122:M,123:mb,126:186,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Ba,[2,174]),a(Ba,[2,175],{37:190,38:La}),{33:[2,73]},{33:[2,74]},a(Ka,[2,91]),a(Ka,[2,94]),{7:192,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10, -21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:193,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14, -25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:194,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18, -29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:196,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,32:195,33:Ca, -35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{35:201,36:m,62:202,77:203,78:204,83:197,97:x,121:Ja,122:M,146:198,147:[1,199],148:200},{145:205,149:[1,206],150:[1,207],151:[1,208]},a([6,33,73, -99],nb,{41:83,98:209,58:210,59:211,61:212,13:213,39:214,35:215,37:216,62:217,36:m,38:La,40:c,42:e,43:y,65:h,121:Ja}),a(ob,[2,36]),a(ob,[2,37]),a(Ba,[2,40]),{17:148,18:218,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:150,62:74,77:57,78:58,80:219,82:29,83:30,84:31,85:32,86:H,97:x,120:Q,121:R,122:M,133:P},a([1,6,31,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,107,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166, -167,168,169,170,171,172,173,174,175,176,177,178],[2,34]),a(Va,[2,38]),{4:220,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:q,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:sa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F, -144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(ua,[2,5],{7:4,8:5,9:6,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,10:25,11:26,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,5:221,14:g,30:q,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:sa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,136:G, -138:C,140:Z,142:F,152:ca,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X}),a(wa,[2,262]),{7:222,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80, -152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:223,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V, -161:K,162:aa,163:ba,164:Y,165:X},{7:224,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y, -165:X},{7:225,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:226,8:140,12:20, -13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:227,8:140,12:20,13:21,14:g,15:23,16:24, -17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:228,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11, -22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:229,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15, -26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:230,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19, -30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:231,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59, -40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:232,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61, -46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:233,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l, -52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:234,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27, -62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:235,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h, -66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(wa,[2,212]),a(wa,[2,217]),{7:236,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa, -65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(wa,[2,211]),a(wa,[2,216]),{41:237,42:e,43:y,115:238,117:ib},a(Ka,[2,92]),a(pb,[2,171]),{37:240,38:La},{37:241,38:La},a(Ka,[2,110],{37:242,38:La}),{37:243,38:La},a(Ka,[2,111]),{7:245,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13, -24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:qb,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,94:244,96:246,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,124:247,125:b,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{88:Ha,93:250,95:Ia},{115:251,117:ib},a(Ka,[2,93]),{6:[1,253],7:252,8:140, -12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:[1,254],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{115:255,117:ib},{37:256, -38:La},{7:257,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a([6,33],v,{72:260, -68:[1,258],73:L}),a(d,[2,78]),a(d,[2,82],{57:[1,262],76:[1,261]}),a(d,[2,85]),a(f,[2,86]),a(f,[2,87]),a(f,[2,88]),a(f,[2,89]),{37:190,38:La},{7:263,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:Za,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,119:185,120:Q, -121:R,122:M,123:mb,126:186,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(wa,[2,72]),{4:265,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:q,34:[1,264],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:sa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32, -86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Wa,[2,253],{144:80,135:105,141:106,166:I}),{7:145,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29, -83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{135:108,136:G,138:C,141:109,142:F,144:80,159:ra},a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,166,167,168,169,170,171,172,173,174,175,176,177],eb,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32, -69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:166,14:g,30:ga,31:fb,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:fa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,140:Z,152:ca,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X}),a(Da,[2,254],{144:80,135:105,141:106,166:I,168:da}),a(Da,[2,255],{144:80,135:105,141:106,166:I,168:da}),a(Da,[2,256],{144:80,135:105,141:106,166:I,168:da}),a(Wa,[2,257], -{144:80,135:105,141:106,166:I}),a(ua,[2,69],{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:266,14:g,30:ga,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:fa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,136:Oa,138:Oa,142:Oa,159:Oa,140:Z,152:ca,158:S,160:V,161:K, -162:aa,163:ba,164:Y,165:X}),a(wa,[2,258],{42:ya,43:ya,87:ya,88:ya,90:ya,91:ya,92:ya,95:ya,116:ya,117:ya}),a(pb,Qa,{114:110,81:111,93:117,87:Xa,88:Ha,90:Ya,91:cb,92:Ra,95:Ia,116:Fa}),{81:121,87:Xa,88:Ha,90:Ya,91:cb,92:Ra,93:117,95:Ia,114:120,116:Fa,117:Qa},a(rb,Sa),a(wa,[2,259],{42:ya,43:ya,87:ya,88:ya,90:ya,91:ya,92:ya,95:ya,116:ya,117:ya}),a(wa,[2,260]),a(wa,[2,261]),{6:[1,269],7:267,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga, -33:[1,268],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:270,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m, -39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{32:271,33:Ca,158:[1,272]},a(wa,[2,196],{129:273,130:[1,274],131:[1,275]}),a(wa,[2,210]),a(wa,[2,218]),{33:[1,276],135:105,136:G,138:C,141:106,142:F,144:80, -159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},{153:277,155:278,156:vb},a(wa,[2,123]),{7:280,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O, -133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(gb,[2,126],{32:281,33:Ca,42:ya,43:ya,87:ya,88:ya,90:ya,91:ya,92:ya,95:ya,116:ya,117:ya,101:[1,282]}),a(Pa,[2,203],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Pa,[2,30],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:283,8:140, -12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(ua,[2,67],{17:7,18:8,19:9,20:10,21:11, -22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:284,14:g,30:ga,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:fa,65:h,66:n,70:u,71:t,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,136:Oa,138:Oa,142:Oa,159:Oa,140:Z,152:ca,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X}),a(Ea,$a,{144:80,135:105,141:106,162:la, -163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Ea,[2,130]),{31:[1,285],73:[1,286]},{31:[1,287]},{33:wb,35:292,36:m,99:[1,288],105:289,106:290,108:jb},a([31,73],[2,146]),{107:[1,294]},{33:Hb,35:299,36:m,99:[1,295],108:sb,111:296,113:297},a(Ea,[2,150]),{57:[1,301]},{7:302,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l, -52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{31:[1,303]},{6:xa,134:[1,304]},{4:305,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:q,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61, -46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:sa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a([6,33,73,123],Sb,{144:80,135:105,141:106,124:306,76:[1,307],125:b,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}), -a(Ib,[2,177]),a([6,33,123],v,{72:308,73:xb}),a(ab,[2,186]),{7:263,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:Za,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,119:310,120:Q,121:R,122:M,126:186,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48, -142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(ab,[2,192]),a(ab,[2,193]),a(Tb,[2,176]),a(Tb,[2,35]),{32:311,33:Ca,135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(Ub,[2,206],{144:80,135:105,141:106,136:G,137:[1,312],138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Ub,[2,208],{144:80,135:105,141:106,136:G,137:[1, -313],138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(wa,[2,214]),a(kb,[2,215],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],[2,219],{143:[1,314]}),a(yb,[2,222]),{35:201,36:m,62:202,77:203,78:204,97:x,121:Ja,122:Ma,146:315, -148:200},a(yb,[2,228],{73:[1,316]}),a(zb,[2,224]),a(zb,[2,225]),a(zb,[2,226]),a(zb,[2,227]),a(wa,[2,221]),{7:317,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z, -141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:318,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca, -157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:319,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K, -162:aa,163:ba,164:Y,165:X},a(Ab,v,{72:320,73:Vb}),a(Aa,[2,118]),a(Aa,[2,53],{60:[1,322]}),a(Wb,[2,62],{57:[1,323]}),a(Aa,[2,58]),a(Wb,[2,63]),a(Jb,[2,59]),a(Jb,[2,60]),a(Jb,[2,61]),{48:[1,324],81:121,87:Xa,88:Ha,90:Ya,91:cb,92:Ra,93:117,95:Ia,114:120,116:Fa,117:Qa},a(rb,ya),{6:xa,44:[1,325]},a(ua,[2,4]),a(Xb,[2,263],{144:80,135:105,141:106,166:I,167:ja,168:da}),a(Xb,[2,264],{144:80,135:105,141:106,166:I,167:ja,168:da}),a(Da,[2,265],{144:80,135:105,141:106,166:I,168:da}),a(Da,[2,266],{144:80,135:105, -141:106,166:I,168:da}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,169,170,171,172,173,174,175,176,177],[2,267],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,170,171,172,173,174,175,176],[2,268],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,171,172,173,174,175,176],[2,269],{144:80,135:105, -141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,172,173,174,175,176],[2,270],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,173,174,175,176],[2,271],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138, -142,143,159,174,175,176],[2,272],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,175,176],[2,273],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,176],[2,274],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa, -173:ea,174:N,175:qa,177:na}),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,170,171,172,173,174,175,176,177],[2,275],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa}),a(kb,[2,252],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(kb,[2,251],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va, -177:na}),a(lb,[2,166]),a(lb,[2,167]),{7:263,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:Za,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,118:[1,326],119:327,120:Q,121:R,122:M,126:186,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80, -152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Ka,[2,106]),a(Ka,[2,107]),a(Ka,[2,108]),a(Ka,[2,109]),{89:[1,328]},{76:qb,89:[2,114],124:329,125:b,135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},{89:[2,115]},{7:330,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28, -50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,89:[2,185],97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Yb,[2,179]),a(Yb,Zb),a(Ka,[2,113]),a(lb,[2,168]),a(Pa,[2,50],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:331,8:140, -12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:332,8:140,12:20,13:21,14:g,15:23, -16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(lb,[2,169]),a(Ba,[2,104]),{89:[1,333],135:105,136:G,138:C, -141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},{69:334,70:u,71:t},a(bb,tb,{75:128,35:130,62:131,77:132,78:133,74:335,36:m,76:db,97:x,121:Ja,122:Ma}),{6:$b,33:ac},a(d,[2,83]),{7:338,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35, -70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(ab,Sb,{144:80,135:105,141:106,76:[1,339],136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(bc,[2,32]),{6:xa,34:[1,340]},a(ua,[2,68],{144:80,135:105,141:106,136:$a,138:$a,142:$a,159:$a,162:la,163:ma, -166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Pa,[2,276],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:341,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29, -83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:342,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H, -97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Pa,[2,279],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(wa,[2,250]),{7:343,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28, -50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(wa,[2,197],{130:[1,344]}),{32:345,33:Ca},{32:348,33:Ca,35:346,36:m,78:347,97:x},{153:349,155:278,156:vb},{34:[1,350],154:[1,351],155:352,156:vb},a(Bb,[2,243]),{7:354,8:140,12:20,13:21,14:g,15:23,16:24,17:7, -18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,127:353,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(cc,[2,124],{144:80,135:105,141:106,32:355,33:Ca,136:G,138:C, -142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(wa,[2,127]),{7:356,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C, -139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Pa,[2,31],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(ua,[2,66],{144:80,135:105,141:106,136:$a,138:$a,142:$a,159:$a,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{41:357,42:e,43:y},{97:[1,359],104:358,109:hb},{41:360,42:e,43:y},{31:[1,361]},a(Ab,v,{72:362,73:Cb}),a(Aa,[2,137]), -{33:wb,35:292,36:m,105:364,106:290,108:jb},a(Aa,[2,142],{107:[1,365]}),a(Aa,[2,144],{107:[1,366]}),{35:367,36:m},a(Ea,[2,148]),a(Ab,v,{72:368,73:Kb}),a(Aa,[2,157]),{33:Hb,35:299,36:m,108:sb,111:370,113:297},a(Aa,[2,162],{107:[1,371]}),a(Aa,[2,165]),{6:[1,373],7:372,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:[1,374],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa, -65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Lb,[2,154],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{41:375,42:e,43:y},a(Ba,[2,204]),{6:xa,34:[1,376]},{7:377,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9, -20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a([14,30,36,40,42,43,46,47,50,51,52,53,54,55,63,64,65,66,70,71,86,97,100,102,110, -120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],Zb,{6:ub,33:ub,73:ub,123:ub}),{6:Db,33:Eb,123:[1,378]},a([6,33,34,118,123],tb,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,79:188,7:263,126:381,14:g,30:ga,36:m,40:c,42:e,43:y,46:D,47:w,50:z,51:l,52:E,53:A,54:B,55:J,63:p,64:fa,65:h,66:n,70:u,71:t, -76:Ga,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,136:G,138:C,140:Z,142:F,152:ca,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X}),a(bb,v,{72:382,73:xb}),a(dc,[2,247]),{7:383,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r, -102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:384,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R, -122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:385,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P, -135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(yb,[2,223]),{35:201,36:m,62:202,77:203,78:204,97:x,121:Ja,122:Ma,148:386},a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,159],[2,230],{144:80,135:105,141:106,137:[1,387],143:[1,388],162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Mb,[2,231],{144:80,135:105,141:106,137:[1,389],162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia, -171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Mb,[2,237],{144:80,135:105,141:106,137:[1,390],162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{6:ec,33:fc,99:[1,391]},a(Nb,tb,{41:83,59:211,61:212,13:213,39:214,35:215,37:216,62:217,58:394,36:m,38:La,40:c,42:e,43:y,65:h,121:Ja}),{7:395,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:[1,396],35:73,36:m,39:59,40:c,41:83,42:e,43:y, -45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:397,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:[1,398],35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D, -47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Ba,[2,41]),a(Va,[2,39]),a(lb,[2,172]),a([6,33,118],v,{72:399,73:xb}),a(Ka,[2,112]),{7:400,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18, -29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,89:[2,183],97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{89:[2,184],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa, -173:ea,174:N,175:qa,176:va,177:na},a(Pa,[2,51],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{34:[1,401],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(Ba,[2,105]),{32:402,33:Ca},a(d,[2,79]),{35:130,36:m,62:131,74:403,75:128,76:db,77:132,78:133,97:x,121:Ja,122:Ma},a(gc,Ta,{74:127,75:128,35:130,62:131,77:132,78:133,67:404,36:m, -76:db,97:x,121:Ja,122:Ma}),a(d,[2,84],{144:80,135:105,141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(ab,ub),a(bc,[2,33]),{34:[1,405],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(Pa,[2,278],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{32:406, -33:Ca,135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},{32:407,33:Ca},a(wa,[2,198]),{32:408,33:Ca},{32:409,33:Ca},a(Ob,[2,202]),{34:[1,410],154:[1,411],155:352,156:vb},a(wa,[2,241]),{32:412,33:Ca},a(Bb,[2,244]),{32:413,33:Ca,73:[1,414]},a(hc,[2,194],{144:80,135:105,141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(wa,[2, -125]),a(cc,[2,128],{144:80,135:105,141:106,32:415,33:Ca,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Ea,[2,131]),{31:[1,416]},{33:wb,35:292,36:m,105:417,106:290,108:jb},a(Ea,[2,132]),{41:418,42:e,43:y},{6:Fb,33:Gb,99:[1,419]},a(Nb,tb,{35:292,106:422,36:m,108:jb}),a(bb,v,{72:423,73:Cb}),{35:424,36:m},{35:425,36:m},{31:[2,147]},{6:Pb,33:Qb,99:[1,426]},a(Nb,tb,{35:299,113:429,36:m,108:sb}),a(bb,v,{72:430,73:Kb}),{35:431,36:m,108:[1, -432]},a(Lb,[2,151],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:433,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R, -122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:434,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P, -135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Ea,[2,155]),{134:[1,435]},{123:[1,436],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(Ib,[2,178]),{7:263,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l, -52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,126:437,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:263,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,33:Za,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z, -51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,76:Ga,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,119:438,120:Q,121:R,122:M,126:186,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(ab,[2,187]),{6:Db,33:Eb,34:[1,439]},a(kb,[2,207],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va, -177:na}),a(kb,[2,209],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(kb,[2,220],{144:80,135:105,141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(yb,[2,229]),{7:440,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D, -47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:441,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E, -53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:442,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74, -63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:443,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35, -70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Ib,[2,116]),{13:213,35:215,36:m,37:216,38:La,39:214,40:c,41:83,42:e,43:y,58:444,59:211,61:212,62:217,65:h,121:Ja},a(gc,nb,{41:83,58:210,59:211,61:212,13:213,39:214,35:215,37:216,62:217,98:445,36:m,38:La,40:c,42:e,43:y,65:h,121:Ja}),a(Aa,[2,119]),a(Aa,[2,54],{144:80,135:105, -141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:446,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46, -136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(Aa,[2,56],{144:80,135:105,141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{7:447,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h, -66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{6:Db,33:Eb,118:[1,448]},{89:[2,182],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(wa,[2,52]),a(wa,[2,71]),a(d,[2,80]),a(bb,v,{72:449,73:L}),a(wa,[2,277]),a(dc,[2, -248]),a(wa,[2,199]),a(Ob,[2,200]),a(Ob,[2,201]),a(wa,[2,239]),{32:450,33:Ca},{34:[1,451]},a(Bb,[2,245],{6:[1,452]}),{7:453,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C, -139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},a(wa,[2,129]),{41:454,42:e,43:y},a(Ab,v,{72:455,73:Cb}),a(Ea,[2,133]),{31:[1,456]},{35:292,36:m,106:457,108:jb},{33:wb,35:292,36:m,105:458,106:290,108:jb},a(Aa,[2,138]),{6:Fb,33:Gb,34:[1,459]},a(Aa,[2,143]),a(Aa,[2,145]),a(Ea,[2,149],{31:[1,460]}),{35:299,36:m,108:sb,113:461},{33:Hb,35:299,36:m,108:sb,111:462,113:297},a(Aa,[2,158]),{6:Pb,33:Qb,34:[1,463]},a(Aa,[2,163]),a(Aa,[2,164]),a(Lb,[2,152],{144:80,135:105, -141:106,136:G,138:C,142:F,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),{34:[1,464],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(Ba,[2,205]),a(Ba,[2,181]),a(ab,[2,188]),a(bb,v,{72:465,73:xb}),a(ab,[2,189]),a([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,159],[2,232],{144:80,135:105,141:106,143:[1,466],162:la,163:ma,166:I,167:ja,168:da, -169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Mb,[2,234],{144:80,135:105,141:106,137:[1,467],162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Pa,[2,233],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Pa,[2,238],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Aa,[2,120]),a(bb,v, -{72:468,73:Vb}),{34:[1,469],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},{34:[1,470],135:105,136:G,138:C,141:106,142:F,144:80,159:za,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na},a(lb,[2,173]),{6:$b,33:ac,34:[1,471]},{34:[1,472]},a(wa,[2,242]),a(Bb,[2,246]),a(hc,[2,195],{144:80,135:105,141:106,136:G,138:C,142:F,159:za,162:la,163:ma,166:I,167:ja,168:da, -169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Ea,[2,135]),{6:Fb,33:Gb,99:[1,473]},{41:474,42:e,43:y},a(Aa,[2,139]),a(bb,v,{72:475,73:Cb}),a(Aa,[2,140]),{41:476,42:e,43:y},a(Aa,[2,159]),a(bb,v,{72:477,73:Kb}),a(Aa,[2,160]),a(Ea,[2,153]),{6:Db,33:Eb,34:[1,478]},{7:479,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74, -63:p,64:fa,65:h,66:n,69:35,70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{7:480,8:140,12:20,13:21,14:g,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:ga,35:73,36:m,39:59,40:c,41:83,42:e,43:y,45:61,46:D,47:w,49:28,50:z,51:l,52:E,53:A,54:B,55:J,56:27,62:74,63:p,64:fa,65:h,66:n,69:35, -70:u,71:t,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:H,97:x,100:r,102:W,110:T,120:Q,121:R,122:M,128:U,132:O,133:P,135:46,136:G,138:C,139:47,140:Z,141:48,142:F,144:80,152:ca,157:44,158:S,160:V,161:K,162:aa,163:ba,164:Y,165:X},{6:ec,33:fc,34:[1,481]},a(Aa,[2,55]),a(Aa,[2,57]),a(d,[2,81]),a(wa,[2,240]),{31:[1,482]},a(Ea,[2,134]),{6:Fb,33:Gb,34:[1,483]},a(Ea,[2,156]),{6:Pb,33:Qb,34:[1,484]},a(ab,[2,190]),a(Pa,[2,235],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa, -173:ea,174:N,175:qa,176:va,177:na}),a(Pa,[2,236],{144:80,135:105,141:106,162:la,163:ma,166:I,167:ja,168:da,169:oa,170:ia,171:ka,172:pa,173:ea,174:N,175:qa,176:va,177:na}),a(Aa,[2,121]),{41:485,42:e,43:y},a(Aa,[2,141]),a(Aa,[2,161]),a(Ea,[2,136])],defaultActions:{71:[2,73],72:[2,74],246:[2,115],367:[2,147]},parseError:function(a,d){if(d.recoverable)this.trace(a);else{var b=function(a,d){this.message=a;this.hash=d};b.prototype=Error;throw new b(a,d);}},parse:function(a){var d=[0],b=[null],f=[],v=this.table, -L="",c=0,e=0,h=0,g=f.slice.call(arguments,1),l=Object.create(this.lexer),Wa={},n;for(n in this.yy)Object.prototype.hasOwnProperty.call(this.yy,n)&&(Wa[n]=this.yy[n]);l.setInput(a,Wa);Wa.lexer=l;Wa.parser=this;"undefined"==typeof l.yylloc&&(l.yylloc={});n=l.yylloc;f.push(n);var k=l.options&&l.options.ranges;this.parseError="function"===typeof Wa.parseError?Wa.parseError:Object.getPrototypeOf(this).parseError;for(var Da,p,m,u,t={},x,r;;){m=d[d.length-1];if(this.defaultActions[m])u=this.defaultActions[m]; -else{if(null===Da||"undefined"==typeof Da)Da=l.lex()||1,"number"!==typeof Da&&(Da=this.symbols_[Da]||Da);u=v[m]&&v[m][Da]}if("undefined"===typeof u||!u.length||!u[0]){var rb;r=[];for(x in v[m])this.terminals_[x]&&2=u?this.wrapInBraces(L):L};b.prototype.compileRoot=function(a){var b,d,f,v,c;a.indent=a.bare?"":ra;a.level=x;this.spaced= -!0;a.scope=new S(null,this,null,null!=(f=a.referencedVars)?f:[]);c=a.locals||[];f=0;for(d=c.length;f=t?this.wrapInBraces(b):b};k.NaNLiteral=Ja;var Ma=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(Ma,r);k.StringLiteral=Ma;var Ca=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(Ca,r);k.RegexLiteral= -Ca;var ga=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(ga,r);k.PassthroughLiteral=ga;k.IdentifierLiteral=A=function(){var a=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(a,r);a.prototype.isAssignable=da;return a}();k.PropertyName=C=function(){var a=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(a,r);a.prototype.isAssignable=da;return a}();k.StatementLiteral=aa=function(){var a=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(a, -r);a.prototype.jumps=function(a){if("break"===this.value&&!(null!=a&&a.loop||null!=a&&a.block)||"continue"===this.value&&(null==a||!a.loop))return this};a.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};a.prototype.isStatement=da;a.prototype.makeReturn=Na;return a}();var fa=function(){return r.call(this,"this")||this};$jscomp.inherits(fa,r);fa.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context:this.value;return[this.makeCode(a)]}; -k.ThisLiteral=za=fa;var Ua=function(){return r.call(this,"undefined")||this};$jscomp.inherits(Ua,r);Ua.prototype.compileNode=function(a){return[this.makeCode(a.level>=h?"(void 0)":"void 0")]};k.UndefinedLiteral=Ua;var ya=function(){return r.call(this,"null")||this};$jscomp.inherits(ya,r);k.NullLiteral=ya;var gb=function(a){return r.apply(this,arguments)||this};$jscomp.inherits(gb,r);k.BooleanLiteral=gb;k.Return=F=function(){var b=function(b){var L;L=a.call(this)||this;L.expression=b;return L};$jscomp.inherits(b, -a);b.prototype.compileToFragments=function(v,L){var d,f;d=null!=(f=this.expression)?f.makeReturn():void 0;return!d||d instanceof b?a.prototype.compileToFragments.call(this,v,L):d.compileToFragments(v,L)};b.prototype.compileNode=function(a){var b;b=[];b.push(this.makeCode(this.tab+("return"+(this.expression?" ":""))));this.expression&&(b=b.concat(this.expression.compileToFragments(a,H)));b.push(this.makeCode(";"));return b};b.prototype.children=["expression"];b.prototype.isStatement=da;b.prototype.makeReturn= -Na;b.prototype.jumps=Na;return b}();var eb=function(a){return F.apply(this,arguments)||this};$jscomp.inherits(eb,F);eb.prototype.compileNode=function(a){null==a.scope.parent&&this.error("yield can only occur inside functions");return F.prototype.compileNode.call(this,a)};k.YieldReturn=eb;var fb=function(a){return F.apply(this,arguments)||this};$jscomp.inherits(fb,F);fb.prototype.compileNode=function(a){null==a.scope.parent&&this.error("await can only occur inside functions");return F.prototype.compileNode.call(this, -a)};k.AwaitReturn=fb;k.Value=I=function(){var b=function(v,L,d){var f;if(!L&&v instanceof b)return v;f=a.call(this)||this;f.base=v;f.properties=L||[];d&&(f[d]=!0);return f};$jscomp.inherits(b,a);b.prototype.add=function(a){this.properties=this.properties.concat(a);return this};b.prototype.hasProperties=function(){return!!this.properties.length};b.prototype.bareLiteral=function(a){return!this.properties.length&&this.base instanceof a};b.prototype.isArray=function(){return this.bareLiteral(sa)};b.prototype.isRange= -function(){return this.bareLiteral(Z)};b.prototype.shouldCache=function(){return this.hasProperties()||this.base.shouldCache()};b.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(Ta)};b.prototype.isString=function(){return this.bareLiteral(Ma)};b.prototype.isRegex=function(){return this.bareLiteral(Ca)};b.prototype.isUndefined=function(){return this.bareLiteral(Ua)};b.prototype.isNull=function(){return this.bareLiteral(ya)}; -b.prototype.isBoolean=function(){return this.bareLiteral(gb)};b.prototype.isAtomic=function(){var a,b,d,f;f=this.properties.concat(this.base);a=0;for(b=f.length;athis.properties.length&&!this.base.shouldCache()&&(null==f||!f.shouldCache()))return[this,this];L=new b(this.base,this.properties.slice(0,-1));L.shouldCache()&&(d=new A(a.scope.freeVariable("base")),L=new b(new G(new ha(d,L))));if(!f)return[L, -d];f.shouldCache()&&(c=new A(a.scope.freeVariable("name")),f=new p(new ha(c,f.index)),c=new p(c));return[L.add(f),new b(d||L.base,[c||f])]};b.prototype.compileNode=function(a){var b,d,f,c,v;this.base.front=this.front;v=this.properties;b=this.base.compileToFragments(a,v.length?h:null);v.length&&ca.test(N(b))&&b.push(this.makeCode("."));d=0;for(f=v.length;dx&&(b=f.cache(a,null,da),f=b[0],b=b[1],d.push(b));d.unshift(f);return d.compileToFragments(a,a.level===x?a.level:u)};a.prototype.children=ta.prototype.children.concat(["expressions"]);return a}();k.Super=Y=function(){var b=function(b){var c;c=a.call(this)||this;c.accessor=b;return c};$jscomp.inherits(b, -a);b.prototype.compileNode=function(a){var b,d;b=a.scope.namedMethod();null!=b&&b.isMethod||this.error("cannot use super outside of an instance method");this.inCtor=!!b.ctor;if(!this.inCtor&&null==this.accessor){b=b.name;if(b.shouldCache()||b instanceof p&&b.index.isAssignable())d=new A(a.scope.parent.freeVariable("name")),b.index=new ha(d,b.index);this.accessor=null!=d?new p(d):b}return(new I(new r("super"),this.accessor?[this.accessor]:[])).compileToFragments(a)};b.prototype.children=["accessor"]; -return b}();var Oa=function(a){a=void 0===a?[]:a;return ta.call(this,new I(new A("RegExp")),a,!1)||this};$jscomp.inherits(Oa,ta);k.RegexWithInterpolations=Oa;var hb=function(a,c,L){c instanceof Ma&&(c=new ba(g.wrap([new I(c)])));return ta.call(this,a,[c],L)||this};$jscomp.inherits(hb,ta);hb.prototype.compileNode=function(a){return this.variable.compileToFragments(a,h).concat(this.args[0].compileToFragments(a,u))};k.TaggedTemplateCall=hb;k.Extends=function(){var b=function(b,c){var d;d=a.call(this)|| -this;d.child=b;d.parent=c;return d};$jscomp.inherits(b,a);b.prototype.compileToFragments=function(a){return(new ta(new I(new r(Ia("extend",a))),[this.child,this.parent])).compileToFragments(a)};b.prototype.children=["child","parent"];return b}();k.Access=xa=function(){var b=function(b,c){var d;d=a.call(this)||this;d.name=b;d.soak="soak"===c;return d};$jscomp.inherits(b,a);b.prototype.compileToFragments=function(a){var b,d;a=this.name.compileToFragments(a);b=this.name.unwrap();return b instanceof C? -(d=b.value,0<=Fa.call(ua,d))?[].concat([this.makeCode('["')],$jscomp.arrayFromIterable(a),[this.makeCode('"]')]):[].concat([this.makeCode(".")],$jscomp.arrayFromIterable(a)):[].concat([this.makeCode("[")],$jscomp.arrayFromIterable(a),[this.makeCode("]")])};b.prototype.children=["name"];b.prototype.shouldCache=M;return b}();k.Index=p=function(){var b=function(b){var c;c=a.call(this)||this;c.index=b;return c};$jscomp.inherits(b,a);b.prototype.compileToFragments=function(a){return[].concat(this.makeCode("["), -this.index.compileToFragments(a,H),this.makeCode("]"))};b.prototype.shouldCache=function(){return this.index.shouldCache()};b.prototype.children=["index"];return b}();k.Range=Z=function(){var b=function(b,c,d){var f;f=a.call(this)||this;f.from=b;f.to=c;f.exclusive="exclusive"===d;f.equals=f.exclusive?"":"\x3d";return f};$jscomp.inherits(b,a);b.prototype.compileVariables=function(a){var b,d;a=wa(a,{top:!0});d=ka(a,"shouldCache");b=this.cacheToCodeFragments(this.from.cache(a,u,d));this.fromC=b[0];this.fromVar= -b[1];b=this.cacheToCodeFragments(this.to.cache(a,u,d));this.toC=b[0];this.toVar=b[1];if(b=ka(a,"step"))a=this.cacheToCodeFragments(b.cache(a,u,d)),this.step=a[0],this.stepVar=a[1];this.fromNum=this.from.isNumber()?Number(this.fromVar):null;this.toNum=this.to.isNumber()?Number(this.toVar):null;return this.stepNum=null!=b&&b.isNumber()?Number(this.stepVar):null};b.prototype.compileNode=function(a){var b,d,f,c,v,e,h,g,l,k;this.fromVar||this.compileVariables(a);if(!a.index)return this.compileArray(a); -e=null!=this.fromNum&&null!=this.toNum;v=ka(a,"index");h=(a=ka(a,"name"))&&a!==v;k=v+" \x3d "+this.fromC;this.toC!==this.toVar&&(k+=", "+this.toC);this.step!==this.stepVar&&(k+=", "+this.step);c=[v+" \x3c"+this.equals,v+" \x3e"+this.equals];d=c[0];c=c[1];d=null!=this.stepNum?0=Math.abs(this.fromNum-this.toNum))return b=function(){g=[];for(var a=e=this.fromNum,d=this.toNum;e<=d?a<=d:a>=d;e<=d?a++:a--)g.push(a);return g}.apply(this),this.exclusive&& -b.pop(),[this.makeCode("["+b.join(", ")+"]")];c=this.tab+ra;f=a.scope.freeVariable("i",{single:!0});h=a.scope.freeVariable("results");v="\n"+c+h+" \x3d [];";d?(a.index=f,d=N(this.compileNode(a))):(l=f+" \x3d "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),d=this.fromVar+" \x3c\x3d "+this.toVar,d="var "+l+"; "+d+" ? "+f+" \x3c"+this.equals+" "+this.toVar+" : "+f+" \x3e"+this.equals+" "+this.toVar+"; "+d+" ? "+f+"++ : "+f+"--");f="{ "+h+".push("+f+"); }\n"+c+"return "+h+";\n"+a.indent;a=function(a){return null!= -a?a.contains(qa):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+v+"\n"+c+"for ("+d+")"+f+"}).apply(this"+(null!=b?b:"")+")")]};b.prototype.children=["from","to"];return b}();k.Slice=V=function(){var b=function(b){var c;c=a.call(this)||this;c.range=b;return c};$jscomp.inherits(b,a);b.prototype.compileNode=function(a){var b,d,f,c,v;b=this.range;c=b.to;f=(b=b.from)&&b.compileToFragments(a,H)||[this.makeCode("0")];c&&(b=c.compileToFragments(a,H),d=N(b),this.range.exclusive|| --1!==+d)&&(v=", "+(this.range.exclusive?d:c.isNumber()?""+(+d+1):(b=c.compileToFragments(a,h),"+"+N(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+N(f)+(v||"")+")")]};b.prototype.children=["range"];return b}();k.Obj=U=function(){var b=function(b,c){var d;c=void 0===c?!1:c;d=a.call(this)||this;d.generated=c;d.objects=d.properties=b||[];return d};$jscomp.inherits(b,a);b.prototype.compileNode=function(a){var b,d,f,c,v,h,g,l,k,n;k=this.properties;if(this.generated)for(b=0,f=k.length;br)return h.push(new I(new U(p.slice(r,b),!0)))};a=p[b];)(a=this.addInitializerExpression(a))?(u(),h.push(a),k.push(a),r=b+1):k[k.length-1]instanceof e&&(h.pop(),k.pop(),r--),b++;u();[].splice.apply(f,[l,l-l+1].concat(h));h;l+=h.length}else(a=this.addInitializerExpression(d))?(k.push(a),f[l]=a):k[k.length-1]instanceof e&&k.pop(),l+=1;l=0;for(n=k.length;l=t?this.wrapInBraces(d):d;m=q[0];1===H&&m instanceof w&&m.error("Destructuring assignment has no target");v=this.variable.isObject();if(y&&1===H&&!(m instanceof K))return f=null,m instanceof b&&"object"=== -m.context?(d=m,e=d.variable,h=e.base,m=d.value,m instanceof b&&(f=m.value,m=m.variable)):(m instanceof b&&(f=m.value,m=m.variable),h=v?m["this"]?m.properties[0].name:new C(m.unwrap().value):new Ta(0)),c=h.unwrap()instanceof C,l=new I(l),l.properties.push(new (c?xa:p)(h)),(n=na(m.unwrap().value))&&m.error(n),f&&(l=new O("?",l,f)),(new b(m,l,null,{param:this.param})).compileToFragments(a,x);z=l.compileToFragments(a,u);B=N(z);d=[];e=!1;l.unwrap()instanceof A&&!this.variable.assigns(B)||(d.push([].concat([this.makeCode((f= -a.scope.freeVariable("ref"))+" \x3d ")],$jscomp.arrayFromIterable(z))),z=[this.makeCode(f)],B=f);f=l=0;for(k=q.length;lx?this.wrapInBraces(b):b};b.prototype.children=["variable","value"];return b}();k.Code=c=function(){var b=function(b,c,d){var f;f=a.call(this)||this;f.params=b||[];f.body=c||new g;f.bound="boundfunc"===d;f.isGenerator=!1;f.isAsync=!1;f.isMethod=!1;f.body.traverseChildren(!1,function(a){if(a instanceof O&&a.isYield()||a instanceof eb)f.isGenerator=!0;if(a instanceof O&&a.isAwait()||a instanceof fb)f.isAsync=!0;if(f.isGenerator&&f.isAsync)return a.error("function can't contain both yield and await")}); -return f};$jscomp.inherits(b,a);b.prototype.isStatement=function(){return this.isMethod};b.prototype.makeScope=function(a){return new S(a,this.body,this)};b.prototype.compileNode=function(a){var b,d,f,c,e,g,v,l,k,n,m,p,u,t,r,x,q,H,y;this.ctor&&(this.isAsync&&this.name.error("Class constructor may not be async"),this.isGenerator&&this.name.error("Class constructor may not be a generator"));this.bound&&(null!=(b=a.scope.method)&&b.bound&&(this.context=a.scope.method.context),this.context||(this.context= -"this"));a.scope=ka(a,"classScope")||this.makeScope(a.scope);a.scope.shared=ka(a,"sharedScope");a.indent+=ra;delete a.bare;delete a.isExistentialEquals;b=[];c=[];y=null!=(g=null!=(e=this.thisAssignments)?e.slice():void 0)?g:[];q=[];e=g=!1;x=[];this.eachParamName(function(b,d,c){0<=Fa.call(x,b)&&d.error("multiple parameters named '"+b+"'");x.push(b);if(d["this"])return b=d.properties[0].name.value,0<=Fa.call(ua,b)&&(b="_"+b),b=new A(a.scope.freeVariable(b)),c.renameParam(d,b),y.push(new ha(d,b))}); -H=this.params;f=l=0;for(n=H.length;l=h?this.wrapInBraces(b):b};b.prototype.eachParamName=function(a){var b,d,c,e,h;e=this.params;h=[];b=0;for(d=e.length;b=h)return(new G(this)).compileToFragments(a);c="+"===b||"-"===b;("new"===b||"typeof"===b||"delete"===b||c&&this.first instanceof g&&this.first.operator===b)&&d.push([this.makeCode(" ")]);if(c&&this.first instanceof g||"new"===b&&this.first.isStatement(a))this.first=new G(this.first);d.push(this.first.compileToFragments(a,t));this.flip&&d.reverse();return this.joinFragmentArrays(d, -"")};g.prototype.compileContinuation=function(a){var b,d,c,e;d=[];b=this.operator;null==a.scope.parent&&this.error(this.operator+" can only occur inside functions");null!=(c=a.scope.method)&&c.bound&&a.scope.method.isGenerator&&this.error("yield cannot occur inside bound (fat arrow) functions");0<=Fa.call(Object.keys(this.first),"expression")&&!(this.first instanceof la)?null!=this.first.expression&&d.push(this.first.expression.compileToFragments(a,t)):(a.level>=H&&d.push([this.makeCode("(")]),d.push([this.makeCode(b)]), -""!==(null!=(e=this.first.base)?e.value:void 0)&&d.push([this.makeCode(" ")]),d.push(this.first.compileToFragments(a,t)),a.level>=H&&d.push([this.makeCode(")")]));return this.joinFragmentArrays(d,"")};g.prototype.compilePower=function(a){var b;b=new I(new A("Math"),[new xa(new C("pow"))]);return(new ta(b,[this.first,this.second])).compileToFragments(a)};g.prototype.compileFloorDivision=function(a){var b,d;d=new I(new A("Math"),[new xa(new C("floor"))]);b=this.second.shouldCache()?new G(this.second): -this.second;b=new g("/",this.first,b);return(new ta(d,[b])).compileToFragments(a)};g.prototype.compileModulo=function(a){var b;b=new I(new r(Ia("modulo",a)));return(new ta(b,[this.first,this.second])).compileToFragments(a)};g.prototype.toString=function(b){return a.prototype.toString.call(this,b,this.constructor.name+" "+this.operator)};b={"\x3d\x3d":"\x3d\x3d\x3d","!\x3d":"!\x3d\x3d",of:"in",yieldfrom:"yield*"};e={"!\x3d\x3d":"\x3d\x3d\x3d","\x3d\x3d\x3d":"!\x3d\x3d"};g.prototype.children=["first", -"second"];return g}();k.In=J=function(){var b=function(b,c){var d;d=a.call(this)||this;d.object=b;d.array=c;return d};$jscomp.inherits(b,a);b.prototype.compileNode=function(a){var b,d,c,e,h;if(this.array instanceof I&&this.array.isArray()&&this.array.base.objects.length){h=this.array.base.objects;d=0;for(c=h.length;dE,this.step&&null!=E&&n||(d=c.freeVariable("len")),e=""+q+v+" \x3d 0, "+ -d+" \x3d "+C+".length",h=""+q+v+" \x3d "+C+".length - 1",d=v+" \x3c "+d,c=v+" \x3e\x3d 0",this.step?(null!=E?n&&(d=c,e=h):(d=D+" \x3e 0 ? "+d+" : "+c,e="("+D+" \x3e 0 ? ("+e+") : "+h+")"),v=v+" +\x3d "+D):v=""+(t!==v?"++"+v:v+"++"),e=[this.makeCode(e+"; "+d+"; "+q+v)]));this.returns&&(z=""+this.tab+k+" \x3d [];\n",w="\n"+this.tab+"return "+k+";",b.makeReturn(k));this.guard&&(1=n?this.wrapInBraces(b):b};b.prototype.unfoldSoak=function(){return this.soak&&this};b.prototype.children=["condition","body","elseBody"];return b}();ma={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+Ia("hasProp",a)+".call(parent, key)) child[key] \x3d parent[key]; } function ctor() { this.constructor \x3d child; } ctor.prototype \x3d parent.prototype; child.prototype \x3d new ctor(); return child; }"}, -bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i \x3d 0, l \x3d this.length; i \x3c l; i++) { if (i in this \x26\x26 this[i] \x3d\x3d\x3d item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b \x3d +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}};x=1;H=2;u=3;n=4;t=5;h=6;ra=" ";ca=/^[+-]?\d+$/;Ia= -function(a,c){var b,d;d=c.scope.root;if(a in d.utilities)return d.utilities[a];b=d.freeVariable(a);d.assign(b,ma[a](c));return d.utilities[a]=b};Qa=function(a,c){a=a.replace(/\n/g,"$\x26"+c);return a.replace(/\s+$/,"")};qa=function(a){return a instanceof A&&"arguments"===a.value};va=function(a){return a instanceof za||a instanceof c&&a.bound};Ya=function(a){return a.shouldCache()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};Ra=function(a,c,e){if(a=c[e].unfoldSoak(a))return c[e]= -a.body,a.body=new I(c),a}}).call(this);return k}();q["./sourcemap"]=function(){var k={};(function(){var q=function(k){this.line=k;this.columns=[]};q.prototype.add=function(k,q,a){var g;g=q[0];q=q[1];void 0===a&&(a={});if(!this.columns[k]||!a.noReplace)return this.columns[k]={line:this.line,column:k,sourceLine:g,sourceColumn:q}};q.prototype.sourceLocation=function(k){for(var q;!((q=this.columns[k])||0>=k);)k--;return q&&[q.sourceLine,q.sourceColumn]};k=function(){var k,ha,a,g,ta=function(){this.lines= -[]};ta.prototype.add=function(a,c,e){e=void 0===e?{}:e;var g,k;k=c[0];c=c[1];return((g=this.lines)[k]||(g[k]=new q(k))).add(c,a,e)};ta.prototype.sourceLocation=function(a){var c,e;c=a[0];for(a=a[1];!((e=this.lines[c])||0>=c);)c--;return e&&e.sourceLocation(a)};ta.prototype.generate=function(a,c){a=void 0===a?{}:a;c=void 0===c?null:c;var e,g,k,m,q,l,E,A,B,J,p,ha,h;q=l=m=h=0;J=!1;e="";p=this.lines;k=g=0;for(E=p.length;gk?1:0);e||!c;)k=e&g,(e>>=a)&&(k|=ha),c+=this.encodeBase64(k);return c}; -ta.prototype.encodeBase64=function(a){var c;if(!(c=k[a]))throw Error("Cannot Base64 encode value: "+a);return c};a=5;ha=1<=7.6.0" + }, + "directories": { + "lib": "./lib/coffeescript" + }, + "main": "./lib/coffeescript/coffeescript", + "bin": { + "coffee": "./bin/coffee", + "cake": "./bin/cake" + }, + "files": [ + "bin", + "lib", + "register.js", + "repl.js" + ], + "preferGlobal": true, + "scripts": { + "test": "node ./bin/cake test", + "test-harmony": "node --harmony ./bin/cake test" + }, + "homepage": "http://coffeescript.org", + "bugs": "https://github.com/jashkenas/coffeescript/issues", + "repository": { + "type": "git", + "url": "git://github.com/jashkenas/coffeescript.git" + }, + "devDependencies": { + "docco": "~0.7.0", + "google-closure-compiler-js": "^20170409.0.0", + "highlight.js": "~9.10.0", + "jison": ">=0.4.17", + "underscore": "~1.8.3" + }, + "dependencies": { + "markdown-it": "^8.3.1" + } +} +; +})();require['markdown-it'] = (function() { + var exports = {}, module = {exports: exports}; + /*! markdown-it 8.3.1 https://github.com//markdown-it/markdown-it @license MIT */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.markdownit=e()}}(function(){var e;return function e(r,t,n){function s(i,a){if(!t[i]){if(!r[i]){var c="function"==typeof require&&require;if(!a&&c)return c(i,!0);if(o)return o(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var u=t[i]={exports:{}};r[i][0].call(u.exports,function(e){var t=r[i][1][e];return s(t?t:e)},u,u.exports,e,r,t,n)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",s="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",o=new RegExp("^(?:"+n+"|"+s+"|||<[?].*?[?]>|]*>|)"),i=new RegExp("^(?:"+n+"|"+s+")");r.exports.HTML_TAG_RE=o,r.exports.HTML_OPEN_CLOSE_TAG_RE=i},{}],4:[function(e,r,t){"use strict";function n(e){return Object.prototype.toString.call(e)}function s(e){return"[object String]"===n(e)}function o(e,r){return y.call(e,r)}function i(e){return Array.prototype.slice.call(arguments,1).forEach(function(r){if(r){if("object"!=typeof r)throw new TypeError(r+"must be object");Object.keys(r).forEach(function(t){e[t]=r[t]})}}),e}function a(e,r,t){return[].concat(e.slice(0,r),t,e.slice(r+1))}function c(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function l(e){if(e>65535){e-=65536;var r=55296+(e>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}function u(e,r){var t=0;return o(w,r)?w[r]:35===r.charCodeAt(0)&&A.test(r)&&(t="x"===r[1].toLowerCase()?parseInt(r.slice(2),16):parseInt(r.slice(1),10),c(t))?l(t):e}function p(e){return e.indexOf("\\")<0?e:e.replace(x,"$1")}function h(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(C,function(e,r,t){return r?r:u(e,t)})}function f(e){return q[e]}function d(e){return D.test(e)?e.replace(/[&<>"]/g,f):e}function m(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function _(e){switch(e){case 9:case 32:return!0}return!1}function g(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function b(e){return E.test(e)}function k(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function v(e){return e.trim().replace(/\s+/g," ").toUpperCase()}var y=Object.prototype.hasOwnProperty,x=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,C=new RegExp(x.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),A=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,w=e("./entities"),D=/[&<>"]/,q={"&":"&","<":"<",">":">",'"':"""},E=e("uc.micro/categories/P/regex");t.lib={},t.lib.mdurl=e("mdurl"),t.lib.ucmicro=e("uc.micro"),t.assign=i,t.isString=s,t.has=o,t.unescapeMd=p,t.unescapeAll=h,t.isValidEntityCode=c,t.fromCodePoint=l,t.escapeHtml=d,t.arrayReplaceAt=a,t.isSpace=_,t.isWhiteSpace=g,t.isMdAsciiPunct=k,t.isPunctChar=b,t.escapeRE=m,t.normalizeReference=v},{"./entities":1,mdurl:58,"uc.micro":65,"uc.micro/categories/P/regex":63}],5:[function(e,r,t){"use strict";t.parseLinkLabel=e("./parse_link_label"),t.parseLinkDestination=e("./parse_link_destination"),t.parseLinkTitle=e("./parse_link_title")},{"./parse_link_destination":6,"./parse_link_label":7,"./parse_link_title":8}],6:[function(e,r,t){"use strict";var n=e("../common/utils").isSpace,s=e("../common/utils").unescapeAll;r.exports=function(e,r,t){var o,i,a=r,c={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(r)){for(r++;r1)break;if(41===o&&--i<0)break;r++}return a===r?c:(c.str=s(e.slice(a,r)),c.lines=0,c.pos=r,c.ok=!0,c)}},{"../common/utils":4}],7:[function(e,r,t){"use strict";r.exports=function(e,r,t){var n,s,o,i,a=-1,c=e.posMax,l=e.pos;for(e.pos=r+1,n=1;e.pos=t)return c;if(34!==(o=e.charCodeAt(r))&&39!==o&&40!==o)return c;for(r++,40===o&&(o=41);r=0))try{r.hostname=m.toASCII(r.hostname)}catch(e){}return d.encode(d.format(r))}function o(e){var r=d.parse(e,!0);if(r.hostname&&(!r.protocol||k.indexOf(r.protocol)>=0))try{r.hostname=m.toUnicode(r.hostname)}catch(e){}return d.decode(d.format(r))}function i(e,r){if(!(this instanceof i))return new i(e,r);r||a.isString(e)||(r=e||{},e="default"),this.inline=new h,this.block=new p,this.core=new u,this.renderer=new l,this.linkify=new f,this.validateLink=n,this.normalizeLink=s,this.normalizeLinkText=o,this.utils=a,this.helpers=a.assign({},c),this.options={},this.configure(e),r&&this.set(r)}var a=e("./common/utils"),c=e("./helpers"),l=e("./renderer"),u=e("./parser_core"),p=e("./parser_block"),h=e("./parser_inline"),f=e("linkify-it"),d=e("mdurl"),m=e("punycode"),_={default:e("./presets/default"),zero:e("./presets/zero"),commonmark:e("./presets/commonmark")},g=/^(vbscript|javascript|file|data):/,b=/^data:image\/(gif|png|jpeg|webp);/,k=["http:","https:","mailto:"];i.prototype.set=function(e){return a.assign(this.options,e),this},i.prototype.configure=function(e){var r,t=this;if(a.isString(e)&&(r=e,!(e=_[r])))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)}),this},i.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(r){t=t.concat(this[r].ruler.enable(e,!0))},this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter(function(e){return t.indexOf(e)<0});if(n.length&&!r)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},i.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(r){t=t.concat(this[r].ruler.disable(e,!0))},this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter(function(e){return t.indexOf(e)<0});if(n.length&&!r)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},i.prototype.use=function(e){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},i.prototype.parse=function(e,r){if("string"!=typeof e)throw new Error("Input data should be a String");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},i.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},i.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},i.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)},r.exports=i},{"./common/utils":4,"./helpers":5,"./parser_block":10,"./parser_core":11,"./parser_inline":12,"./presets/commonmark":13,"./presets/default":14,"./presets/zero":15,"./renderer":16,"linkify-it":53,mdurl:58,punycode:60}],10:[function(e,r,t){"use strict";function n(){this.ruler=new s;for(var e=0;e=t))&&!(e.sCount[i]=c){e.line=t;break}for(n=0;n=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},n.prototype.parse=function(e,r,t,n){var s,o,i,a=new this.State(e,r,t,n);for(this.tokenize(a),o=this.ruler2.getRules(""),i=o.length,s=0;s"+i(e[r].content)+"
    "},a.code_block=function(e,r,t,n,s){var o=e[r];return""+i(e[r].content)+"\n"},a.fence=function(e,r,t,n,s){var a,c,l,u,p=e[r],h=p.info?o(p.info).trim():"",f="";return h&&(f=h.split(/\s+/g)[0]),a=t.highlight?t.highlight(p.content,f)||i(p.content):i(p.content),0===a.indexOf(""+a+"
    \n"):"
    "+a+"
    \n"},a.image=function(e,r,t,n,s){var o=e[r];return o.attrs[o.attrIndex("alt")][1]=s.renderInlineAsText(o.children,t,n),s.renderToken(e,r,t)},a.hardbreak=function(e,r,t){return t.xhtmlOut?"
    \n":"
    \n"},a.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?"
    \n":"
    \n":"\n"},a.text=function(e,r){return i(e[r].content)},a.html_block=function(e,r){return e[r].content},a.html_inline=function(e,r){return e[r].content},n.prototype.renderAttrs=function(e){var r,t,n;if(!e.attrs)return"";for(n="",r=0,t=e.attrs.length;r\n":">")},n.prototype.renderInline=function(e,r,t){for(var n,s="",o=this.rules,i=0,a=e.length;i=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(s)return!0;for(c=d=e.sCount[r]+D-(e.bMarks[r]+e.tShift[r]),32===e.src.charCodeAt(D)?(D++,c++,d++,o=!1,y=!0):9===e.src.charCodeAt(D)?(y=!0,(e.bsCount[r]+d)%4==3?(D++,c++,d++,o=!1):o=!0):y=!1,m=[e.bMarks[r]],e.bMarks[r]=D;D=q,k=[e.sCount[r]],e.sCount[r]=d-c,v=[e.tShift[r]],e.tShift[r]=D-e.bMarks[r],C=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",f=r+1;f=q));f++)if(62!==e.src.charCodeAt(D++)||l){if(p)break;for(x=!1,a=0,u=C.length;a=q,_.push(e.bsCount[f]),e.bsCount[f]=e.sCount[f]+1+(y?1:0),k.push(e.sCount[f]),e.sCount[f]=d-c,v.push(e.tShift[f]),e.tShift[f]=D-e.bMarks[f]}for(g=e.blkIndent,e.blkIndent=0,A=e.push("blockquote_open","blockquote",1),A.markup=">",A.map=h=[r,0],e.md.block.tokenize(e,r,f),A=e.push("blockquote_close","blockquote",-1),A.markup=">",e.lineMax=w,e.parentType=b,h[1]=e.line,a=0;a=4))break;n++,s=n}return e.line=s,o=e.push("code_block","code",0),o.content=e.getLines(r,s,4+e.blkIndent,!0),o.map=[r,e.line],!0}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r,t,n){var s,o,i,a,c,l,u,p=!1,h=e.bMarks[r]+e.tShift[r],f=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(h+3>f)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(c=h,h=e.skipChars(h,s),(o=h-c)<3)return!1;if(u=e.src.slice(c,h),i=e.src.slice(h,f),i.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=r;!(++a>=t)&&(h=c=e.bMarks[a]+e.tShift[a],f=e.eMarks[a],!(h=4||(h=e.skipChars(h,s))-c=4)return!1;if(35!==(o=e.src.charCodeAt(l))||l>=u)return!1;for(i=1,o=e.src.charCodeAt(++l);35===o&&l6||ll&&n(e.src.charCodeAt(a-1))&&(u=a),e.line=r+1,c=e.push("heading_open","h"+String(i),1),c.markup="########".slice(0,i),c.map=[r,e.line],c=e.push("inline","",0),c.content=e.src.slice(l,u).trim(),c.map=[r,e.line],c.children=[],c=e.push("heading_close","h"+String(i),-1),c.markup="########".slice(0,i),!0))}},{"../common/utils":4}],22:[function(e,r,t){"use strict";var n=e("../common/utils").isSpace;r.exports=function(e,r,t,s){var o,i,a,c,l=e.bMarks[r]+e.tShift[r],u=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(42!==(o=e.src.charCodeAt(l++))&&45!==o&&95!==o)return!1;for(i=1;l|$))/i,/<\/(script|pre|style)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(s.source+"\\s*$"),/^$/,!1]];r.exports=function(e,r,t,n){var s,i,a,c,l=e.bMarks[r]+e.tShift[r],u=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(l))return!1;for(c=e.src.slice(l,u),s=0;s=4)return!1;for(h=e.parentType,e.parentType="paragraph";f3)){if(e.sCount[f]>=e.blkIndent&&(c=e.bMarks[f]+e.tShift[f],l=e.eMarks[f],c=l))){u=61===p?1:2;break}if(!(e.sCount[f]<0)){for(s=!1,o=0,i=d.length;o=o)return-1;if((t=e.src.charCodeAt(s++))<48||t>57)return-1;for(;;){if(s>=o)return-1;t=e.src.charCodeAt(s++);{if(!(t>=48&&t<=57)){if(41===t||46===t)break;return-1}if(s-n>=10)return-1}}return s=4)return!1;if(a&&"paragraph"===e.parentType&&e.tShift[r]>=e.blkIndent&&(M=!0),(F=s(e,r))>=0){if(d=!0,z=e.bMarks[r]+e.tShift[r],v=Number(e.src.substr(z,F-z-1)),M&&1!==v)return!1}else{if(!((F=n(e,r))>=0))return!1;d=!1}if(M&&e.skipSpaces(F)>=e.eMarks[r])return!1;if(k=e.src.charCodeAt(F-1),a)return!0;for(b=e.tokens.length,d?(R=e.push("ordered_list_open","ol",1),1!==v&&(R.attrs=[["start",v]])):R=e.push("bullet_list_open","ul",1),R.map=g=[r,0],R.markup=String.fromCharCode(k),x=r,L=!1,I=e.md.block.ruler.getRules("list"),D=e.parentType,e.parentType="list";x=y?1:C-f,h>4&&(h=1),p=f+h,R=e.push("list_item_open","li",1),R.markup=String.fromCharCode(k),R.map=m=[r,0],A=e.blkIndent,E=e.tight,q=e.tShift[r],w=e.sCount[r],e.blkIndent=p,e.tight=!0,e.tShift[r]=l-e.bMarks[r],e.sCount[r]=C,l>=y&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,r,t,!0),e.tight&&!L||(B=!1),L=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=A,e.tShift[r]=q,e.sCount[r]=w,e.tight=E,R=e.push("list_item_close","li",-1),R.markup=String.fromCharCode(k),x=r=e.line,m[1]=x,l=e.bMarks[r],x>=t)break;if(e.sCount[x]3||e.sCount[c]<0)){for(n=!1,s=0,o=l.length;s=4)return!1;if(91!==e.src.charCodeAt(C))return!1;for(;++C3||e.sCount[w]<0)){for(k=!1,p=0,h=v.length;p0&&this.level++,this.tokens.push(n),n},n.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},n.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;er;)if(!o(this.src.charCodeAt(--e)))return e+1;return e},n.prototype.skipChars=function(e,r){for(var t=this.src.length;et;)if(r!==this.src.charCodeAt(--e))return e+1;return e},n.prototype.getLines=function(e,r,t,n){var s,i,a,c,l,u,p,h=e;if(e>=r)return"";for(u=new Array(r-e),s=0;ht?new Array(i-t+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l)}return u.join("")},n.prototype.Token=s,r.exports=n},{"../common/utils":4,"../token":51}],29:[function(e,r,t){"use strict";function n(e,r){var t=e.bMarks[r]+e.blkIndent,n=e.eMarks[r];return e.src.substr(t,n-t)}function s(e){var r,t=[],n=0,s=e.length,o=0,i=0,a=!1,c=0;for(r=e.charCodeAt(n);nt)return!1;if(p=r+1,e.sCount[p]=4)return!1;if((l=e.bMarks[p]+e.tShift[p])>=e.eMarks[p])return!1;if(124!==(a=e.src.charCodeAt(l++))&&45!==a&&58!==a)return!1;for(;l=4)return!1;if(h=s(c.replace(/^\||\|$/g,"")),(f=h.length)>m.length)return!1;if(i)return!0;for(d=e.push("table_open","table",1),d.map=g=[r,0],d=e.push("thead_open","thead",1),d.map=[r,r+1],d=e.push("tr_open","tr",1),d.map=[r,r+1],u=0;u=4);p++){for(h=s(c.replace(/^\||\|$/g,"")),d=e.push("tr_open","tr",1),u=0;u\s]/i.test(e)}function s(e){return/^<\/a\s*>/i.test(e)}var o=e("../common/utils").arrayReplaceAt;r.exports=function(e){var r,t,i,a,c,l,u,p,h,f,d,m,_,g,b,k,v,y=e.tokens;if(e.md.options.linkify)for(t=0,i=y.length;t=0;r--)if(l=a[r],"link_close"!==l.type){if("html_inline"===l.type&&(n(l.content)&&_>0&&_--,s(l.content)&&_++),!(_>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(h=l.content,v=e.md.linkify.match(h),u=[],m=l.level,d=0,p=0;pd&&(c=new e.Token("text","",0),c.content=h.slice(d,f),c.level=m,u.push(c)),c=new e.Token("link_open","a",1),c.attrs=[["href",b]],c.level=m++,c.markup="linkify",c.info="auto",u.push(c),c=new e.Token("text","",0),c.content=k,c.level=m,u.push(c),c=new e.Token("link_close","a",-1),c.level=--m,c.markup="linkify",c.info="auto",u.push(c),d=v[p].lastIndex);d=0;r--)t=e[r],"text"!==t.type||s||(t.content=t.content.replace(/\((c|tm|r|p)\)/gi,n)),"link_open"===t.type&&"auto"===t.info&&s--,"link_close"===t.type&&"auto"===t.info&&s++}function o(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)t=e[r],"text"!==t.type||n||i.test(t.content)&&(t.content=t.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1\u2014$2").replace(/(^|\s)--(\s|$)/gm,"$1\u2013$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1\u2013$2")),"link_open"===t.type&&"auto"===t.info&&n--,"link_close"===t.type&&"auto"===t.info&&n++}var i=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,a=/\((c|tm|r|p)\)/i,c={c:"\xa9",r:"\xae",p:"\xa7",tm:"\u2122"};r.exports=function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&(a.test(e.tokens[r].content)&&s(e.tokens[r].children),i.test(e.tokens[r].content)&&o(e.tokens[r].children))}},{}],35:[function(e,r,t){"use strict";function n(e,r,t){return e.substr(0,r)+t+e.substr(r+1)}function s(e,r){var t,s,c,u,p,h,f,d,m,_,g,b,k,v,y,x,C,A,w,D,q;for(w=[],t=0;t=0&&!(w[C].level<=f);C--);if(w.length=C+1,"text"===s.type){c=s.content,p=0,h=c.length;e:for(;p=0)m=c.charCodeAt(u.index-1);else for(C=t-1;C>=0;C--)if("text"===e[C].type){m=e[C].content.charCodeAt(e[C].content.length-1);break}if(_=32,p=48&&m<=57&&(x=y=!1),y&&x&&(y=!1,x=b),y||x){if(x)for(C=w.length-1;C>=0&&(d=w[C],!(w[C].level=0;r--)"inline"===e.tokens[r].type&&c.test(e.tokens[r].content)&&s(e.tokens[r].children,e)}},{"../common/utils":4}],36:[function(e,r,t){"use strict";function n(e,r,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=r}var s=e("../token");n.prototype.Token=s,r.exports=n},{"../token":51}],37:[function(e,r,t){"use strict";var n=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,s=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;r.exports=function(e,r){var t,o,i,a,c,l,u=e.pos;return 60===e.src.charCodeAt(u)&&(t=e.src.slice(u),!(t.indexOf(">")<0)&&(s.test(t)?(o=t.match(s),a=o[0].slice(1,-1),c=e.md.normalizeLink(a),!!e.md.validateLink(c)&&(r||(l=e.push("link_open","a",1),l.attrs=[["href",c]],l.markup="autolink",l.info="auto",l=e.push("text","",0),l.content=e.md.normalizeLinkText(a),l=e.push("link_close","a",-1),l.markup="autolink",l.info="auto"),e.pos+=o[0].length,!0)):!!n.test(t)&&(i=t.match(n),a=i[0].slice(1,-1),c=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(c)&&(r||(l=e.push("link_open","a",1),l.attrs=[["href",c]],l.markup="autolink",l.info="auto",l=e.push("text","",0),l.content=e.md.normalizeLinkText(a),l=e.push("link_close","a",-1),l.markup="autolink",l.info="auto"),e.pos+=i[0].length,!0))))}},{}],38:[function(e,r,t){"use strict";r.exports=function(e,r){var t,n,s,o,i,a,c=e.pos;if(96!==e.src.charCodeAt(c))return!1;for(t=c,c++,n=e.posMax;c=0;){if(s=o[t],s.open&&s.marker===n.marker&&s.end<0&&s.level===n.level){var a=(s.close||n.open)&&void 0!==s.length&&void 0!==n.length&&(s.length+n.length)%3==0;if(!a){n.jump=r-t,n.open=!1,s.end=r,s.jump=0;break}}t-=s.jump+1}}},{}],40:[function(e,r,t){"use strict";r.exports.tokenize=function(e,r){var t,n,s,o=e.pos,i=e.src.charCodeAt(o);if(r)return!1;if(95!==i&&42!==i)return!1;for(n=e.scanDelims(e.pos,42===i),t=0;t?@[]^_`{|}~-".split("").forEach(function(e){s[e.charCodeAt(0)]=1}),r.exports=function(e,r){var t,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o=97&&r<=122}var s=e("../common/html_re").HTML_TAG_RE;r.exports=function(e,r){var t,o,i,a,c=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(c)||c+2>=i)&&(!(33!==(t=e.src.charCodeAt(c+1))&&63!==t&&47!==t&&!n(t))&&(!!(o=e.src.slice(c).match(s))&&(r||(a=e.push("html_inline","",0),a.content=e.src.slice(c,c+o[0].length)),e.pos+=o[0].length,!0))))}},{"../common/html_re":3}],44:[function(e,r,t){"use strict";var n=e("../common/utils").normalizeReference,s=e("../common/utils").isSpace;r.exports=function(e,r){var t,o,i,a,c,l,u,p,h,f,d,m,_,g="",b=e.pos,k=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(l=e.pos+2,(c=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=c+1)=k)return!1;for(_=u,h=e.md.helpers.parseLinkDestination(e.src,u,e.posMax),h.ok&&(g=e.md.normalizeLink(h.str),e.md.validateLink(g)?u=h.pos:g=""),_=u;u=k||41!==e.src.charCodeAt(u))return e.pos=b,!1;u++}else{if(void 0===e.env.references)return!1;if(u=0?a=e.src.slice(_,u++):u=c+1):u=c+1,a||(a=e.src.slice(l,c)),!(p=e.env.references[n(a)]))return e.pos=b,!1;g=p.href,f=p.title}return r||(i=e.src.slice(l,c),e.md.inline.parse(i,e.md,e.env,m=[]),d=e.push("image","img",0),d.attrs=t=[["src",g],["alt",""]],d.children=m,d.content=i,f&&t.push(["title",f])),e.pos=u,e.posMax=k,!0}},{"../common/utils":4}],45:[function(e,r,t){"use strict";var n=e("../common/utils").normalizeReference,s=e("../common/utils").isSpace;r.exports=function(e,r){var t,o,i,a,c,l,u,p,h,f,d="",m=e.pos,_=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(c=e.pos+1,(a=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((l=a+1)<_&&40===e.src.charCodeAt(l)){for(b=!1,l++;l<_&&(o=e.src.charCodeAt(l),s(o)||10===o);l++);if(l>=_)return!1;for(g=l,u=e.md.helpers.parseLinkDestination(e.src,l,e.posMax),u.ok&&(d=e.md.normalizeLink(u.str),e.md.validateLink(d)?l=u.pos:d=""),g=l;l<_&&(o=e.src.charCodeAt(l),s(o)||10===o);l++);if(u=e.md.helpers.parseLinkTitle(e.src,l,e.posMax),l<_&&g!==l&&u.ok)for(h=u.str,l=u.pos;l<_&&(o=e.src.charCodeAt(l),s(o)||10===o);l++);else h="";(l>=_||41!==e.src.charCodeAt(l))&&(b=!0),l++}if(b){if(void 0===e.env.references)return!1;if(l<_&&91===e.src.charCodeAt(l)?(g=l+1,l=e.md.helpers.parseLinkLabel(e,l),l>=0?i=e.src.slice(g,l++):l=a+1):l=a+1,i||(i=e.src.slice(c,a)),!(p=e.env.references[n(i)]))return e.pos=m,!1;d=p.href,h=p.title}return r||(e.pos=c,e.posMax=a,f=e.push("link_open","a",1),f.attrs=t=[["href",d]],h&&t.push(["title",h]),e.md.inline.tokenize(e),f=e.push("link_close","a",-1)),e.pos=l,e.posMax=_,!0}},{"../common/utils":4}],46:[function(e,r,t){"use strict";var n=e("../common/utils").isSpace;r.exports=function(e,r){var t,s,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;for(t=e.pending.length-1,s=e.posMax,r||(t>=0&&32===e.pending.charCodeAt(t)?t>=1&&32===e.pending.charCodeAt(t-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o0&&this.level++,this.pendingLevel=this.level,this.tokens.push(n),n},n.prototype.scanDelims=function(e,r){var t,n,s,c,l,u,p,h,f,d=e,m=!0,_=!0,g=this.posMax,b=this.src.charCodeAt(e);for(t=e>0?this.src.charCodeAt(e-1):32;d=0&&(t=this.attrs[r][1]),t},n.prototype.attrJoin=function(e,r){var t=this.attrIndex(e);t<0?this.attrPush([e,r]):this.attrs[t][1]=this.attrs[t][1]+" "+r},r.exports=n},{}],52:[function(e,r,t){r.exports={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41", +jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"}},{}],53:[function(e,r,t){"use strict";function n(e){return Array.prototype.slice.call(arguments,1).forEach(function(r){r&&Object.keys(r).forEach(function(t){e[t]=r[t]})}),e}function s(e){return Object.prototype.toString.call(e)}function o(e){return"[object String]"===s(e)}function i(e){return"[object Object]"===s(e)}function a(e){return"[object RegExp]"===s(e)}function c(e){return"[object Function]"===s(e)}function l(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function u(e){return Object.keys(e||{}).reduce(function(e,r){return e||b.hasOwnProperty(r)},!1)}function p(e){e.__index__=-1,e.__text_cache__=""}function h(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}function f(){return function(e,r){r.normalize(e)}}function d(r){function t(e){return e.replace("%TLDS%",s.src_tlds)}function n(e,r){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+r)}var s=r.re=e("./lib/re")(r.__opts__),u=r.__tlds__.slice();r.onCompile(),r.__tlds_replaced__||u.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),u.push(s.src_xn),s.src_tlds=u.join("|"),s.email_fuzzy=RegExp(t(s.tpl_email_fuzzy),"i"),s.link_fuzzy=RegExp(t(s.tpl_link_fuzzy),"i"),s.link_no_ip_fuzzy=RegExp(t(s.tpl_link_no_ip_fuzzy),"i"),s.host_fuzzy_test=RegExp(t(s.tpl_host_fuzzy_test),"i");var d=[];r.__compiled__={},Object.keys(r.__schemas__).forEach(function(e){var t=r.__schemas__[e];if(null!==t){var s={validate:null,link:null};return r.__compiled__[e]=s,i(t)?(a(t.validate)?s.validate=h(t.validate):c(t.validate)?s.validate=t.validate:n(e,t),void(c(t.normalize)?s.normalize=t.normalize:t.normalize?n(e,t):s.normalize=f())):o(t)?void d.push(e):void n(e,t)}}),d.forEach(function(e){r.__compiled__[r.__schemas__[e]]&&(r.__compiled__[e].validate=r.__compiled__[r.__schemas__[e]].validate,r.__compiled__[e].normalize=r.__compiled__[r.__schemas__[e]].normalize)}),r.__compiled__[""]={validate:null,normalize:f()};var m=Object.keys(r.__compiled__).filter(function(e){return e.length>0&&r.__compiled__[e]}).map(l).join("|");r.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+s.src_ZPCc+"))("+m+")","i"),r.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+s.src_ZPCc+"))("+m+")","ig"),r.re.pretest=RegExp("("+r.re.schema_test.source+")|("+r.re.host_fuzzy_test.source+")|@","i"),p(r)}function m(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function _(e,r){var t=new m(e,r);return e.__compiled__[t.schema].normalize(t,e),t}function g(e,r){if(!(this instanceof g))return new g(e,r);r||u(e)&&(r=e,e={}),this.__opts__=n({},b,r),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=n({},k,e),this.__compiled__={},this.__tlds__=v,this.__tlds_replaced__=!1,this.re={},d(this)}var b={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1},k={"http:":{validate:function(e,r,t){var n=e.slice(r);return t.re.http||(t.re.http=new RegExp("^\\/\\/"+t.re.src_auth+t.re.src_host_port_strict+t.re.src_path,"i")),t.re.http.test(n)?n.match(t.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,r,t){var n=e.slice(r);return t.re.no_http||(t.re.no_http=new RegExp("^"+t.re.src_auth+"(?:localhost|(?:(?:"+t.re.src_domain+")\\.)+"+t.re.src_domain_root+")"+t.re.src_port+t.re.src_host_terminator+t.re.src_path,"i")),t.re.no_http.test(n)?r>=3&&":"===e[r-3]?0:r>=3&&"/"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},"mailto:":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp("^"+t.re.src_email_name+"@"+t.re.src_host_strict,"i")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},v="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");g.prototype.add=function(e,r){return this.__schemas__[e]=r,d(this),this},g.prototype.set=function(e){return this.__opts__=n(this.__opts__,e),this},g.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,i,a,c;if(this.re.schema_test.test(e))for(a=this.re.schema_search,a.lastIndex=0;null!==(r=a.exec(e));)if(s=this.testSchemaAt(e,r[2],a.lastIndex)){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||c=0&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,i=n.index+n[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},g.prototype.pretest=function(e){return this.re.pretest.test(e)},g.prototype.testSchemaAt=function(e,r,t){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},g.prototype.match=function(e){var r=0,t=[];this.__index__>=0&&this.__text_cache__===e&&(t.push(_(this,r)),r=this.__last_index__);for(var n=r?e.slice(r):e;this.test(n);)t.push(_(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},g.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,r,t){return e!==t[r-1]}).reverse(),d(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,d(this),this)},g.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},g.prototype.onCompile=function(){},r.exports=g},{"./lib/re":54}],54:[function(e,r,t){"use strict";r.exports=function(r){var t={};t.src_Any=e("uc.micro/properties/Any/regex").source,t.src_Cc=e("uc.micro/categories/Cc/regex").source,t.src_Z=e("uc.micro/categories/Z/regex").source,t.src_P=e("uc.micro/categories/P/regex").source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><\uff5c]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><\uff5c]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><\uff5c]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,3}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(r&&r["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]+',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-(?!-)|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|[><\uff5c]|\\(|"+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},{ +"uc.micro/categories/Cc/regex":61,"uc.micro/categories/P/regex":63,"uc.micro/categories/Z/regex":64,"uc.micro/properties/Any/regex":66}],55:[function(e,r,t){"use strict";function n(e){var r,t,n=o[e];if(n)return n;for(n=o[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),n.push(t);for(r=0;r=55296&&c<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(c),r+=6):240==(248&s)&&r+91114111?l+="\ufffd\ufffd\ufffd\ufffd":(c-=65536,l+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),r+=9):l+="\ufffd";return l})}var o={};s.defaultChars=";/?:@&=+$,#",s.componentChars="",r.exports=s},{}],56:[function(e,r,t){"use strict";function n(e){var r,t,n=o[e];if(n)return n;for(n=o[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),/^[0-9a-z]$/i.test(t)?n.push(t):n.push("%"+("0"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r=55296&&a<=57343){if(a>=55296&&a<=56319&&o+1=56320&&c<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}var o={};s.defaultChars=";/?:@&=+$,-_.!~*'()#",s.componentChars="-_.!~*'()",r.exports=s},{}],57:[function(e,r,t){"use strict";r.exports=function(e){var r="";return r+=e.protocol||"",r+=e.slashes?"//":"",r+=e.auth?e.auth+"@":"",r+=e.hostname&&e.hostname.indexOf(":")!==-1?"["+e.hostname+"]":e.hostname||"",r+=e.port?":"+e.port:"",r+=e.pathname||"",r+=e.search||"",r+=e.hash||""}},{}],58:[function(e,r,t){"use strict";r.exports.encode=e("./encode"),r.exports.decode=e("./decode"),r.exports.format=e("./format"),r.exports.parse=e("./parse")},{"./decode":55,"./encode":56,"./format":57,"./parse":59}],59:[function(e,r,t){"use strict";function n(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}function s(e,r){if(e&&e instanceof n)return e;var t=new n;return t.parse(e,r),t}var o=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["<",">",'"',"`"," ","\r","\n","\t"],l=["{","}","|","\\","^","`"].concat(c),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),h=["/","?","#"],f={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};n.prototype.parse=function(e,r){var t,n,s,i,c,l=e;if(l=l.trim(),!r&&1===e.split("#").length){var u=a.exec(l);if(u)return this.pathname=u[1],u[2]&&(this.search=u[2]),this}var m=o.exec(l);if(m&&(m=m[0],s=m.toLowerCase(),this.protocol=m,l=l.substr(m.length)),(r||m||l.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(c="//"===l.substr(0,2))||m&&f[m]||(l=l.substr(2),this.slashes=!0)),!f[m]&&(c||m&&!d[m])){var _=-1;for(t=0;t127?"x":x[A];if(!C.match(/^[+a-z0-9A-Z_-]{0,63}$/)){var D=y.slice(0,t),q=y.slice(t+1),E=x.match(/^([+a-z0-9A-Z_-]{0,63})(.*)$/);E&&(D.push(E[1]),q.unshift(E[2])),q.length&&(l=q.join(".")+l),this.hostname=D.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var S=l.indexOf("#");S!==-1&&(this.hash=l.substr(S),l=l.slice(0,S));var F=l.indexOf("?");return F!==-1&&(this.search=l.substr(F),l=l.slice(0,F)),l&&(this.pathname=l),d[s]&&this.hostname&&!this.pathname&&(this.pathname=""),this},n.prototype.parseHost=function(e){var r=i.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)},r.exports=s},{}],60:[function(r,t,n){(function(r){!function(s){function o(e){throw new RangeError(w[e])}function i(e,r){for(var t=e.length,n=[];t--;)n[t]=r(e[t]);return n}function a(e,r){var t=e.split("@"),n="";return t.length>1&&(n=t[0]+"@",e=t[1]),e=e.replace(/[\x2E\u3002\uFF0E\uFF61]/g,"."),n+i(e.split("."),r).join(".")}function c(e){for(var r,t,n=[],s=0,o=e.length;s=55296&&r<=56319&&s65535&&(e-=65536,r+=q(e>>>10&1023|55296),e=56320|1023&e),r+=q(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36}function p(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function h(e,r,t){var n=0;for(e=t?D(e/700):e>>1,e+=D(e/r);e>455;n+=36)e=D(e/35);return D(n+36*e/(e+38))}function f(e){var r,t,n,s,i,a,c,p,f,d,m=[],_=e.length,g=0,b=128,k=72;for(t=e.lastIndexOf("-"),t<0&&(t=0),n=0;n=128&&o("not-basic"),m.push(e.charCodeAt(n));for(s=t>0?t+1:0;s<_;){for(i=g,a=1,c=36;s>=_&&o("invalid-input"),p=u(e.charCodeAt(s++)),(p>=36||p>D((x-g)/a))&&o("overflow"),g+=p*a,f=c<=k?1:c>=k+26?26:c-k,!(pD(x/d)&&o("overflow"),a*=d;r=m.length+1,k=h(g-i,r,0==i),D(g/r)>x-b&&o("overflow"),b+=D(g/r),g%=r,m.splice(g++,0,b)}return l(m)}function d(e){var r,t,n,s,i,a,l,u,f,d,m,_,g,b,k,v=[];for(e=c(e),_=e.length,r=128,t=0,i=72,a=0;a<_;++a)(m=e[a])<128&&v.push(q(m));for(n=s=v.length,s&&v.push("-");n<_;){for(l=x,a=0;a<_;++a)(m=e[a])>=r&&mD((x-t)/g)&&o("overflow"),t+=(l-r)*g,r=l,a=0;a<_;++a)if(m=e[a],mx&&o("overflow"),m==r){for(u=t,f=36;d=f<=i?1:f>=i+26?26:f-i,!(u= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=Math.floor,q=String.fromCharCode;if(v={version:"1.4.1",ucs2:{decode:c,encode:l},decode:f,encode:d,toASCII:_,toUnicode:m},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return v});else if(g&&b)if(t.exports==g)b.exports=v;else for(y in v)v.hasOwnProperty(y)&&(g[y]=v[y]);else s.punycode=v}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],61:[function(e,r,t){r.exports=/[\0-\x1F\x7F-\x9F]/},{}],62:[function(e,r,t){r.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804\uDCBD|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},{}],63:[function(e,r,t){r.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E44\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD807[\uDC41-\uDC45\uDC70\uDC71]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},{}],64:[function(e,r,t){r.exports=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/},{}],65:[function(e,r,t){"use strict";t.Any=e("./properties/Any/regex"),t.Cc=e("./categories/Cc/regex"),t.Cf=e("./categories/Cf/regex"),t.P=e("./categories/P/regex"),t.Z=e("./categories/Z/regex")},{"./categories/Cc/regex":61,"./categories/Cf/regex":62,"./categories/P/regex":63,"./categories/Z/regex":64,"./properties/Any/regex":66}],66:[function(e,r,t){r.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},{}],67:[function(e,r,t){"use strict";r.exports=e("./lib/")},{"./lib/":9}]},{},[67])(67)}); + + return module.exports; +})();require['./helpers'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var buildLocationData, extend, flatten, md, ref, repeat, syntaxErrorToString; + + md = require('markdown-it')(); + + exports.starts = function(string, literal, start) { + return literal === string.substr(start, literal.length); + }; + + exports.ends = function(string, literal, back) { + var len; + len = literal.length; + return literal === string.substr(string.length - len - (back || 0), len); + }; + + exports.repeat = repeat = function(str, n) { + var res; + res = ''; + while (n > 0) { + if (n & 1) { + res += str; + } + n >>>= 1; + str += str; + } + return res; + }; + + exports.compact = function(array) { + var item, j, len1, results; + results = []; + for (j = 0, len1 = array.length; j < len1; j++) { + item = array[j]; + if (item) { + results.push(item); + } + } + return results; + }; + + exports.count = function(string, substr) { + var num, pos; + num = pos = 0; + if (!substr.length) { + return 1 / 0; + } + while (pos = 1 + string.indexOf(substr, pos)) { + num++; + } + return num; + }; + + exports.merge = function(options, overrides) { + return extend(extend({}, options), overrides); + }; + + extend = exports.extend = function(object, properties) { + var key, val; + for (key in properties) { + val = properties[key]; + object[key] = val; + } + return object; + }; + + exports.flatten = flatten = function(array) { + var element, flattened, j, len1; + flattened = []; + for (j = 0, len1 = array.length; j < len1; j++) { + element = array[j]; + if ('[object Array]' === Object.prototype.toString.call(element)) { + flattened = flattened.concat(flatten(element)); + } else { + flattened.push(element); + } + } + return flattened; + }; + + exports.del = function(obj, key) { + var val; + val = obj[key]; + delete obj[key]; + return val; + }; + + exports.some = (ref = Array.prototype.some) != null ? ref : function(fn) { + var e, j, len1, ref1; + ref1 = this; + for (j = 0, len1 = ref1.length; j < len1; j++) { + e = ref1[j]; + if (fn(e)) { + return true; + } + } + return false; + }; + + exports.invertLiterate = function(code) { + var out; + out = []; + md.renderer.rules = { + code_block: function(tokens, idx, options, env, slf) { + var i, j, len1, line, lines, results, startLine; + startLine = tokens[idx].map[0]; + lines = tokens[idx].content.split('\n'); + results = []; + for (i = j = 0, len1 = lines.length; j < len1; i = ++j) { + line = lines[i]; + results.push(out[startLine + i] = line); + } + return results; + } + }; + md.render(code); + return out.join('\n'); + }; + + buildLocationData = function(first, last) { + if (!last) { + return first; + } else { + return { + first_line: first.first_line, + first_column: first.first_column, + last_line: last.last_line, + last_column: last.last_column + }; + } + }; + + exports.addLocationDataFn = function(first, last) { + return function(obj) { + if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) { + obj.updateLocationDataIfMissing(buildLocationData(first, last)); + } + return obj; + }; + }; + + exports.locationDataToString = function(obj) { + var locationData; + if (("2" in obj) && ("first_line" in obj[2])) { + locationData = obj[2]; + } else if ("first_line" in obj) { + locationData = obj; + } + if (locationData) { + return `${locationData.first_line + 1}:${locationData.first_column + 1}-` + `${locationData.last_line + 1}:${locationData.last_column + 1}`; + } else { + return "No location data"; + } + }; + + exports.baseFileName = function(file, stripExt = false, useWinPathSep = false) { + var parts, pathSep; + pathSep = useWinPathSep ? /\\|\// : /\//; + parts = file.split(pathSep); + file = parts[parts.length - 1]; + if (!(stripExt && file.indexOf('.') >= 0)) { + return file; + } + parts = file.split('.'); + parts.pop(); + if (parts[parts.length - 1] === 'coffee' && parts.length > 1) { + parts.pop(); + } + return parts.join('.'); + }; + + exports.isCoffee = function(file) { + return /\.((lit)?coffee|coffee\.md)$/.test(file); + }; + + exports.isLiterate = function(file) { + return /\.(litcoffee|coffee\.md)$/.test(file); + }; + + exports.throwSyntaxError = function(message, location) { + var error; + error = new SyntaxError(message); + error.location = location; + error.toString = syntaxErrorToString; + error.stack = error.toString(); + throw error; + }; + + exports.updateSyntaxError = function(error, code, filename) { + if (error.toString === syntaxErrorToString) { + error.code || (error.code = code); + error.filename || (error.filename = filename); + error.stack = error.toString(); + } + return error; + }; + + syntaxErrorToString = function() { + var codeLine, colorize, colorsEnabled, end, filename, first_column, first_line, last_column, last_line, marker, ref1, ref2, ref3, start; + if (!(this.code && this.location)) { + return Error.prototype.toString.call(this); + } + ({first_line, first_column, last_line, last_column} = this.location); + if (last_line == null) { + last_line = first_line; + } + if (last_column == null) { + last_column = first_column; + } + filename = this.filename || '[stdin]'; + codeLine = this.code.split('\n')[first_line]; + start = first_column; + end = first_line === last_line ? last_column + 1 : codeLine.length; + marker = codeLine.slice(0, start).replace(/[^\s]/g, ' ') + repeat('^', end - start); + if (typeof process !== "undefined" && process !== null) { + colorsEnabled = ((ref1 = process.stdout) != null ? ref1.isTTY : void 0) && !((ref2 = process.env) != null ? ref2.NODE_DISABLE_COLORS : void 0); + } + if ((ref3 = this.colorful) != null ? ref3 : colorsEnabled) { + colorize = function(str) { + return `\x1B[1;31m${str}\x1B[0m`; + }; + codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end); + marker = colorize(marker); + } + return `${filename}:${first_line + 1}:${first_column + 1}: error: ${this.message}\n${codeLine}\n${marker}`; + }; + + exports.nameWhitespaceCharacter = function(string) { + switch (string) { + case ' ': + return 'space'; + case '\n': + return 'newline'; + case '\r': + return 'carriage return'; + case '\t': + return 'tab'; + default: + return string; + } + }; + +}).call(this); + + return module.exports; +})();require['./rewriter'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var BALANCED_PAIRS, CALL_CLOSERS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, k, left, len, rite, + 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; }; + + generate = function(tag, value, origin) { + var tok; + tok = [tag, value]; + tok.generated = true; + if (origin) { + tok.origin = origin; + } + return tok; + }; + + exports.Rewriter = (function() { + class Rewriter { + rewrite(tokens1) { + this.tokens = tokens1; + this.removeLeadingNewlines(); + this.closeOpenCalls(); + this.closeOpenIndexes(); + this.normalizeLines(); + this.tagPostfixConditionals(); + this.addImplicitBracesAndParens(); + this.addLocationDataToGeneratedTokens(); + this.fixOutdentLocationData(); + return this.tokens; + } + + scanTokens(block) { + var i, token, tokens; + ({tokens} = this); + i = 0; + while (token = tokens[i]) { + i += block.call(this, token, i, tokens); + } + return true; + } + + detectEnd(i, condition, action) { + var levels, ref, ref1, token, tokens; + ({tokens} = this); + levels = 0; + while (token = tokens[i]) { + if (levels === 0 && condition.call(this, token, i)) { + return action.call(this, token, i); + } + if (!token || levels < 0) { + return action.call(this, token, i - 1); + } + if (ref = token[0], indexOf.call(EXPRESSION_START, ref) >= 0) { + levels += 1; + } else if (ref1 = token[0], indexOf.call(EXPRESSION_END, ref1) >= 0) { + levels -= 1; + } + i += 1; + } + return i - 1; + } + + removeLeadingNewlines() { + var i, k, len, ref, tag; + ref = this.tokens; + for (i = k = 0, len = ref.length; k < len; i = ++k) { + [tag] = ref[i]; + if (tag !== 'TERMINATOR') { + break; + } + } + if (i) { + return this.tokens.splice(0, i); + } + } + + closeOpenCalls() { + var action, condition; + condition = function(token, i) { + var ref; + return ((ref = token[0]) === ')' || ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; + }; + action = function(token, i) { + return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'CALL_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + } + + closeOpenIndexes() { + var action, condition; + condition = function(token, i) { + var ref; + return (ref = token[0]) === ']' || ref === 'INDEX_END'; + }; + action = function(token, i) { + return token[0] = 'INDEX_END'; + }; + return this.scanTokens(function(token, i) { + if (token[0] === 'INDEX_START') { + this.detectEnd(i + 1, condition, action); + } + return 1; + }); + } + + indexOfTag(i, ...pattern) { + var fuzz, j, k, ref, ref1; + fuzz = 0; + for (j = k = 0, ref = pattern.length; 0 <= ref ? k < ref : k > ref; j = 0 <= ref ? ++k : --k) { + while (this.tag(i + j + fuzz) === 'HERECOMMENT') { + fuzz += 2; + } + if (pattern[j] == null) { + continue; + } + if (typeof pattern[j] === 'string') { + pattern[j] = [pattern[j]]; + } + if (ref1 = this.tag(i + j + fuzz), indexOf.call(pattern[j], ref1) < 0) { + return -1; + } + } + return i + j + fuzz - 1; + } + + looksObjectish(j) { + var end, index; + if (this.indexOfTag(j, '@', null, ':') > -1 || this.indexOfTag(j, null, ':') > -1) { + return true; + } + index = this.indexOfTag(j, EXPRESSION_START); + if (index > -1) { + end = null; + this.detectEnd(index + 1, (function(token) { + var ref; + return ref = token[0], indexOf.call(EXPRESSION_END, ref) >= 0; + }), (function(token, i) { + return end = i; + })); + if (this.tag(end + 1) === ':') { + return true; + } + } + return false; + } + + findTagsBackwards(i, tags) { + var backStack, ref, ref1, ref2, ref3, ref4, ref5; + backStack = []; + while (i >= 0 && (backStack.length || (ref2 = this.tag(i), indexOf.call(tags, ref2) < 0) && ((ref3 = this.tag(i), indexOf.call(EXPRESSION_START, ref3) < 0) || this.tokens[i].generated) && (ref4 = this.tag(i), indexOf.call(LINEBREAKS, ref4) < 0))) { + if (ref = this.tag(i), indexOf.call(EXPRESSION_END, ref) >= 0) { + backStack.push(this.tag(i)); + } + if ((ref1 = this.tag(i), indexOf.call(EXPRESSION_START, ref1) >= 0) && backStack.length) { + backStack.pop(); + } + i -= 1; + } + return ref5 = this.tag(i), indexOf.call(tags, ref5) >= 0; + } + + addImplicitBracesAndParens() { + var stack, start; + stack = []; + start = null; + return this.scanTokens(function(token, i, tokens) { + var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, newLine, nextTag, offset, prevTag, prevToken, ref, ref1, ref2, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag; + [tag] = token; + [prevTag] = prevToken = i > 0 ? tokens[i - 1] : []; + [nextTag] = i < tokens.length - 1 ? tokens[i + 1] : []; + stackTop = function() { + return stack[stack.length - 1]; + }; + startIdx = i; + forward = function(n) { + return i - startIdx + n; + }; + inImplicit = function() { + var ref, ref1; + return (ref = stackTop()) != null ? (ref1 = ref[2]) != null ? ref1.ours : void 0 : void 0; + }; + inImplicitCall = function() { + var ref; + return inImplicit() && ((ref = stackTop()) != null ? ref[0] : void 0) === '('; + }; + inImplicitObject = function() { + var ref; + return inImplicit() && ((ref = stackTop()) != null ? ref[0] : void 0) === '{'; + }; + inImplicitControl = function() { + var ref; + return inImplicit && ((ref = stackTop()) != null ? ref[0] : void 0) === 'CONTROL'; + }; + startImplicitCall = function(j) { + var idx; + idx = j != null ? j : i; + stack.push([ + '(', idx, { + ours: true + } + ]); + tokens.splice(idx, 0, generate('CALL_START', '(')); + if (j == null) { + return i += 1; + } + }; + endImplicitCall = function() { + stack.pop(); + tokens.splice(i, 0, generate('CALL_END', ')', ['', 'end of input', token[2]])); + return i += 1; + }; + startImplicitObject = function(j, startsLine = true) { + var idx, val; + idx = j != null ? j : i; + stack.push([ + '{', idx, { + sameLine: true, + startsLine: startsLine, + ours: true + } + ]); + val = new String('{'); + val.generated = true; + tokens.splice(idx, 0, generate('{', val, token)); + if (j == null) { + return i += 1; + } + }; + endImplicitObject = function(j) { + j = j != null ? j : i; + stack.pop(); + tokens.splice(j, 0, generate('}', '}', token)); + return i += 1; + }; + if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) { + stack.push([ + 'CONTROL', i, { + ours: true + } + ]); + return forward(1); + } + if (tag === 'INDENT' && inImplicit()) { + if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') { + while (inImplicitCall()) { + endImplicitCall(); + } + } + if (inImplicitControl()) { + stack.pop(); + } + stack.push([tag, i]); + return forward(1); + } + if (indexOf.call(EXPRESSION_START, tag) >= 0) { + stack.push([tag, i]); + return forward(1); + } + if (indexOf.call(EXPRESSION_END, tag) >= 0) { + while (inImplicit()) { + if (inImplicitCall()) { + endImplicitCall(); + } else if (inImplicitObject()) { + endImplicitObject(); + } else { + stack.pop(); + } + } + start = stack.pop(); + } + if ((indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((ref = tokens[i + 1]) != null ? ref.spaced : void 0) && !((ref1 = tokens[i + 1]) != null ? ref1.newLine : void 0))) { + if (tag === '?') { + tag = token[0] = 'FUNC_EXIST'; + } + startImplicitCall(i + 1); + return forward(2); + } + if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, 'INDENT') > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) { + startImplicitCall(i + 1); + stack.push(['INDENT', i + 2]); + return forward(3); + } + if (tag === ':') { + s = (function() { + var ref2; + switch (false) { + case ref2 = this.tag(i - 1), indexOf.call(EXPRESSION_END, ref2) < 0: + return start[1]; + case this.tag(i - 2) !== '@': + return i - 2; + default: + return i - 1; + } + }).call(this); + while (this.tag(s - 2) === 'HERECOMMENT') { + s -= 2; + } + this.insideForDeclaration = nextTag === 'FOR'; + startsLine = s === 0 || (ref2 = this.tag(s - 1), indexOf.call(LINEBREAKS, ref2) >= 0) || tokens[s - 1].newLine; + if (stackTop()) { + [stackTag, stackIdx] = stackTop(); + if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) { + return forward(1); + } + } + startImplicitObject(s, !!startsLine); + return forward(2); + } + if (inImplicitObject() && indexOf.call(LINEBREAKS, tag) >= 0) { + stackTop()[2].sameLine = false; + } + newLine = prevTag === 'OUTDENT' || prevToken.newLine; + if (indexOf.call(IMPLICIT_END, tag) >= 0 || indexOf.call(CALL_CLOSERS, tag) >= 0 && newLine) { + while (inImplicit()) { + [stackTag, stackIdx, {sameLine, startsLine}] = stackTop(); + if (inImplicitCall() && prevTag !== ',') { + endImplicitCall(); + } else if (inImplicitObject() && !this.insideForDeclaration && sameLine && tag !== 'TERMINATOR' && prevTag !== ':') { + endImplicitObject(); + } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) { + if (nextTag === 'HERECOMMENT') { + return forward(1); + } + endImplicitObject(); + } else { + break; + } + } + } + if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && !this.insideForDeclaration && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) { + offset = nextTag === 'OUTDENT' ? 1 : 0; + while (inImplicitObject()) { + endImplicitObject(i + offset); + } + } + return forward(1); + }); + } + + addLocationDataToGeneratedTokens() { + return this.scanTokens(function(token, i, tokens) { + var column, line, nextLocation, prevLocation, ref, ref1; + if (token[2]) { + return 1; + } + if (!(token.generated || token.explicit)) { + return 1; + } + if (token[0] === '{' && (nextLocation = (ref = tokens[i + 1]) != null ? ref[2] : void 0)) { + ({ + first_line: line, + first_column: column + } = nextLocation); + } else if (prevLocation = (ref1 = tokens[i - 1]) != null ? ref1[2] : void 0) { + ({ + last_line: line, + last_column: column + } = prevLocation); + } else { + line = column = 0; + } + token[2] = { + first_line: line, + first_column: column, + last_line: line, + last_column: column + }; + return 1; + }); + } + + fixOutdentLocationData() { + return this.scanTokens(function(token, i, tokens) { + var prevLocationData; + if (!(token[0] === 'OUTDENT' || (token.generated && token[0] === 'CALL_END') || (token.generated && token[0] === '}'))) { + return 1; + } + prevLocationData = tokens[i - 1][2]; + token[2] = { + first_line: prevLocationData.last_line, + first_column: prevLocationData.last_column, + last_line: prevLocationData.last_line, + last_column: prevLocationData.last_column + }; + return 1; + }); + } + + normalizeLines() { + var action, condition, indent, outdent, starter; + starter = indent = outdent = null; + condition = function(token, i) { + var ref, ref1, ref2, ref3; + return token[1] !== ';' && (ref = token[0], indexOf.call(SINGLE_CLOSERS, ref) >= 0) && !(token[0] === 'TERMINATOR' && (ref1 = this.tag(i + 1), indexOf.call(EXPRESSION_CLOSE, ref1) >= 0)) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((ref2 = token[0]) === 'CATCH' || ref2 === 'FINALLY') && (starter === '->' || starter === '=>')) || (ref3 = token[0], indexOf.call(CALL_CLOSERS, ref3) >= 0) && this.tokens[i - 1].newLine; + }; + action = function(token, i) { + return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); + }; + return this.scanTokens(function(token, i, tokens) { + var j, k, ref, ref1, tag; + [tag] = token; + if (tag === 'TERMINATOR') { + if (this.tag(i + 1) === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { + tokens.splice(i, 1, ...this.indentation()); + return 1; + } + if (ref = this.tag(i + 1), indexOf.call(EXPRESSION_CLOSE, ref) >= 0) { + tokens.splice(i, 1); + return 0; + } + } + if (tag === 'CATCH') { + for (j = k = 1; k <= 2; j = ++k) { + if (!((ref1 = this.tag(i + j)) === 'OUTDENT' || ref1 === 'TERMINATOR' || ref1 === 'FINALLY')) { + continue; + } + tokens.splice(i + j, 0, ...this.indentation()); + return 2 + j; + } + } + if (indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { + starter = tag; + [indent, outdent] = this.indentation(tokens[i]); + if (starter === 'THEN') { + indent.fromThen = true; + } + tokens.splice(i + 1, 0, indent); + this.detectEnd(i + 2, condition, action); + if (tag === 'THEN') { + tokens.splice(i, 1); + } + return 1; + } + return 1; + }); + } + + tagPostfixConditionals() { + var action, condition, original; + original = null; + condition = function(token, i) { + var prevTag, tag; + [tag] = token; + [prevTag] = this.tokens[i - 1]; + return tag === 'TERMINATOR' || (tag === 'INDENT' && indexOf.call(SINGLE_LINERS, prevTag) < 0); + }; + action = function(token, i) { + if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { + return original[0] = 'POST_' + original[0]; + } + }; + return this.scanTokens(function(token, i) { + if (token[0] !== 'IF') { + return 1; + } + original = token; + this.detectEnd(i + 1, condition, action); + return 1; + }); + } + + indentation(origin) { + var indent, outdent; + indent = ['INDENT', 2]; + outdent = ['OUTDENT', 2]; + if (origin) { + indent.generated = outdent.generated = true; + indent.origin = outdent.origin = origin; + } else { + indent.explicit = outdent.explicit = true; + } + return [indent, outdent]; + } + + tag(i) { + var ref; + return (ref = this.tokens[i]) != null ? ref[0] : void 0; + } + + }; + + Rewriter.prototype.generate = generate; + + return Rewriter; + + })(); + + BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END'], ['STRING_START', 'STRING_END'], ['REGEX_START', 'REGEX_END']]; + + exports.INVERSES = INVERSES = {}; + + EXPRESSION_START = []; + + EXPRESSION_END = []; + + for (k = 0, len = BALANCED_PAIRS.length; k < len; k++) { + [left, rite] = BALANCED_PAIRS[k]; + EXPRESSION_START.push(INVERSES[rite] = left); + EXPRESSION_END.push(INVERSES[left] = rite); + } + + EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); + + IMPLICIT_FUNC = ['IDENTIFIER', 'PROPERTY', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; + + IMPLICIT_CALL = ['IDENTIFIER', 'PROPERTY', 'NUMBER', 'INFINITY', 'NAN', 'STRING', 'STRING_START', 'REGEX', 'REGEX_START', 'JS', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'UNDEFINED', 'NULL', 'BOOL', 'UNARY', 'YIELD', 'AWAIT', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; + + IMPLICIT_UNSPACED_CALL = ['+', '-']; + + IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; + + SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; + + SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; + + LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; + + CALL_CLOSERS = ['.', '?.', '::', '?::']; + +}).call(this); + + return module.exports; +})();require['./lexer'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HERECOMMENT_ILLEGAL, HEREDOC_DOUBLE, HEREDOC_INDENT, HEREDOC_SINGLE, HEREGEX, HEREGEX_OMIT, HERE_JSTOKEN, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVERSES, JSTOKEN, JS_KEYWORDS, LEADING_BLANK_LINE, LINE_BREAK, LINE_CONTINUER, Lexer, MATH, MULTI_DENT, NOT_REGEX, NUMBER, OPERATOR, POSSIBLY_DIVISION, REGEX, REGEX_FLAGS, REGEX_ILLEGAL, REGEX_INVALID_ESCAPE, RELATION, RESERVED, Rewriter, SHIFT, SIMPLE_STRING_OMIT, STRICT_PROSCRIBED, STRING_DOUBLE, STRING_INVALID_ESCAPE, STRING_OMIT, STRING_SINGLE, STRING_START, TRAILING_BLANK_LINE, TRAILING_SPACES, UNARY, UNARY_MATH, VALID_FLAGS, WHITESPACE, compact, count, invertLiterate, isForFrom, isUnassignable, key, locationDataToString, repeat, starts, throwSyntaxError, + 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; }; + + ({Rewriter, INVERSES} = require('./rewriter')); + + ({count, starts, compact, repeat, invertLiterate, locationDataToString, throwSyntaxError} = require('./helpers')); + + exports.Lexer = Lexer = class Lexer { + tokenize(code, opts = {}) { + var consumed, end, i; + this.literate = opts.literate; + this.indent = 0; + this.baseIndent = 0; + this.indebt = 0; + this.outdebt = 0; + this.indents = []; + this.indentLiteral = ''; + this.ends = []; + this.tokens = []; + this.seenFor = false; + this.seenImport = false; + this.seenExport = false; + this.importSpecifierList = false; + this.exportSpecifierList = false; + this.chunkLine = opts.line || 0; + this.chunkColumn = opts.column || 0; + code = this.clean(code); + i = 0; + while (this.chunk = code.slice(i)) { + consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); + [this.chunkLine, this.chunkColumn] = this.getLineAndColumnFromChunk(consumed); + i += consumed; + if (opts.untilBalanced && this.ends.length === 0) { + return { + tokens: this.tokens, + index: i + }; + } + } + this.closeIndentation(); + if (end = this.ends.pop()) { + this.error(`missing ${end.tag}`, end.origin[2]); + } + if (opts.rewrite === false) { + return this.tokens; + } + return (new Rewriter).rewrite(this.tokens); + } + + clean(code) { + if (code.charCodeAt(0) === BOM) { + code = code.slice(1); + } + code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); + if (WHITESPACE.test(code)) { + code = `\n${code}`; + this.chunkLine--; + } + if (this.literate) { + code = invertLiterate(code); + } + return code; + } + + identifierToken() { + var alias, colon, colonOffset, id, idLength, input, match, poppedToken, prev, prevprev, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, tag, tagToken; + if (!(match = IDENTIFIER.exec(this.chunk))) { + return 0; + } + [input, id, colon] = match; + idLength = id.length; + poppedToken = void 0; + if (id === 'own' && this.tag() === 'FOR') { + this.token('OWN', id); + return id.length; + } + if (id === 'from' && this.tag() === 'YIELD') { + this.token('FROM', id); + return id.length; + } + if (id === 'as' && this.seenImport) { + if (this.value() === '*') { + this.tokens[this.tokens.length - 1][0] = 'IMPORT_ALL'; + } else if (ref = this.value(), indexOf.call(COFFEE_KEYWORDS, ref) >= 0) { + this.tokens[this.tokens.length - 1][0] = 'IDENTIFIER'; + } + if ((ref1 = this.tag()) === 'DEFAULT' || ref1 === 'IMPORT_ALL' || ref1 === 'IDENTIFIER') { + this.token('AS', id); + return id.length; + } + } + if (id === 'as' && this.seenExport && ((ref2 = this.tag()) === 'IDENTIFIER' || ref2 === 'DEFAULT')) { + this.token('AS', id); + return id.length; + } + if (id === 'default' && this.seenExport && ((ref3 = this.tag()) === 'EXPORT' || ref3 === 'AS')) { + this.token('DEFAULT', id); + return id.length; + } + prev = this.prev(); + tag = colon || (prev != null) && (((ref4 = prev[0]) === '.' || ref4 === '?.' || ref4 === '::' || ref4 === '?::') || !prev.spaced && prev[0] === '@') ? 'PROPERTY' : 'IDENTIFIER'; + if (tag === 'IDENTIFIER' && (indexOf.call(JS_KEYWORDS, id) >= 0 || indexOf.call(COFFEE_KEYWORDS, id) >= 0) && !(this.exportSpecifierList && indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { + tag = id.toUpperCase(); + if (tag === 'WHEN' && (ref5 = this.tag(), indexOf.call(LINE_BREAK, ref5) >= 0)) { + tag = 'LEADING_WHEN'; + } else if (tag === 'FOR') { + this.seenFor = true; + } else if (tag === 'UNLESS') { + tag = 'IF'; + } else if (tag === 'IMPORT') { + this.seenImport = true; + } else if (tag === 'EXPORT') { + this.seenExport = true; + } else if (indexOf.call(UNARY, tag) >= 0) { + tag = 'UNARY'; + } else if (indexOf.call(RELATION, tag) >= 0) { + if (tag !== 'INSTANCEOF' && this.seenFor) { + tag = 'FOR' + tag; + this.seenFor = false; + } else { + tag = 'RELATION'; + if (this.value() === '!') { + poppedToken = this.tokens.pop(); + id = '!' + id; + } + } + } + } else if (tag === 'IDENTIFIER' && this.seenFor && id === 'from' && isForFrom(prev)) { + tag = 'FORFROM'; + this.seenFor = false; + } else if (tag === 'PROPERTY' && prev) { + if (prev.spaced && (ref6 = prev[0], indexOf.call(CALLABLE, ref6) >= 0) && /^[gs]et$/.test(prev[1])) { + this.error(`'${prev[1]}' cannot be used as a keyword, or as a function call without parentheses`, prev[2]); + } else { + prevprev = this.tokens[this.tokens.length - 2]; + if (((ref7 = prev[0]) === '@' || ref7 === 'THIS') && prevprev && prevprev.spaced && /^[gs]et$/.test(prevprev[1])) { + this.error(`'${prevprev[1]}' cannot be used as a keyword, or as a function call without parentheses`, prevprev[2]); + } + } + } + if (tag === 'IDENTIFIER' && indexOf.call(RESERVED, id) >= 0) { + this.error(`reserved word '${id}'`, { + length: id.length + }); + } + if (tag !== 'PROPERTY') { + if (indexOf.call(COFFEE_ALIASES, id) >= 0) { + alias = id; + id = COFFEE_ALIAS_MAP[id]; + } + tag = (function() { + switch (id) { + case '!': + return 'UNARY'; + case '==': + case '!=': + return 'COMPARE'; + case 'true': + case 'false': + return 'BOOL'; + case 'break': + case 'continue': + case 'debugger': + return 'STATEMENT'; + case '&&': + case '||': + return id; + default: + return tag; + } + })(); + } + tagToken = this.token(tag, id, 0, idLength); + if (alias) { + tagToken.origin = [tag, alias, tagToken[2]]; + } + if (poppedToken) { + [tagToken[2].first_line, tagToken[2].first_column] = [poppedToken[2].first_line, poppedToken[2].first_column]; + } + if (colon) { + colonOffset = input.lastIndexOf(':'); + this.token(':', ':', colonOffset, colon.length); + } + return input.length; + } + + numberToken() { + var base, lexedLength, match, number, numberValue, tag; + if (!(match = NUMBER.exec(this.chunk))) { + return 0; + } + number = match[0]; + lexedLength = number.length; + switch (false) { + case !/^0[BOX]/.test(number): + this.error(`radix prefix in '${number}' must be lowercase`, { + offset: 1 + }); + break; + case !/^(?!0x).*E/.test(number): + this.error(`exponential notation in '${number}' must be indicated with a lowercase 'e'`, { + offset: number.indexOf('E') + }); + break; + case !/^0\d*[89]/.test(number): + this.error(`decimal literal '${number}' must not be prefixed with '0'`, { + length: lexedLength + }); + break; + case !/^0\d+/.test(number): + this.error(`octal literal '${number}' must be prefixed with '0o'`, { + length: lexedLength + }); + } + base = (function() { + switch (number.charAt(1)) { + case 'b': + return 2; + case 'o': + return 8; + case 'x': + return 16; + default: + return null; + } + })(); + numberValue = base != null ? parseInt(number.slice(2), base) : parseFloat(number); + tag = numberValue === 2e308 ? 'INFINITY' : 'NUMBER'; + this.token(tag, number, 0, lexedLength); + return lexedLength; + } + + stringToken() { + var $, attempt, delimiter, doc, end, heredoc, i, indent, indentRegex, match, prev, quote, ref, regex, token, tokens; + [quote] = STRING_START.exec(this.chunk) || []; + if (!quote) { + return 0; + } + prev = this.prev(); + if (prev && this.value() === 'from' && (this.seenImport || this.seenExport)) { + prev[0] = 'FROM'; + } + regex = (function() { + switch (quote) { + case "'": + return STRING_SINGLE; + case '"': + return STRING_DOUBLE; + case "'''": + return HEREDOC_SINGLE; + case '"""': + return HEREDOC_DOUBLE; + } + })(); + heredoc = quote.length === 3; + ({ + tokens, + index: end + } = this.matchWithInterpolations(regex, quote)); + $ = tokens.length - 1; + delimiter = quote.charAt(0); + if (heredoc) { + indent = null; + doc = ((function() { + var j, len, results; + results = []; + for (i = j = 0, len = tokens.length; j < len; i = ++j) { + token = tokens[i]; + if (token[0] === 'NEOSTRING') { + results.push(token[1]); + } + } + return results; + })()).join('#{}'); + while (match = HEREDOC_INDENT.exec(doc)) { + attempt = match[1]; + if (indent === null || (0 < (ref = attempt.length) && ref < indent.length)) { + indent = attempt; + } + } + if (indent) { + indentRegex = RegExp(`\\n${indent}`, "g"); + } + this.mergeInterpolationTokens(tokens, {delimiter}, (value, i) => { + value = this.formatString(value); + if (indentRegex) { + value = value.replace(indentRegex, '\n'); + } + if (i === 0) { + value = value.replace(LEADING_BLANK_LINE, ''); + } + if (i === $) { + value = value.replace(TRAILING_BLANK_LINE, ''); + } + return value; + }); + } else { + this.mergeInterpolationTokens(tokens, {delimiter}, (value, i) => { + value = this.formatString(value); + value = value.replace(SIMPLE_STRING_OMIT, function(match, offset) { + if ((i === 0 && offset === 0) || (i === $ && offset + match.length === value.length)) { + return ''; + } else { + return ' '; + } + }); + return value; + }); + } + return end; + } + + commentToken() { + var comment, here, match; + if (!(match = this.chunk.match(COMMENT))) { + return 0; + } + [comment, here] = match; + if (here) { + if (match = HERECOMMENT_ILLEGAL.exec(comment)) { + this.error(`block comments cannot contain ${match[0]}`, { + offset: match.index, + length: match[0].length + }); + } + if (here.indexOf('\n') >= 0) { + here = here.replace(RegExp(`\\n${repeat(' ', this.indent)}`, "g"), '\n'); + } + this.token('HERECOMMENT', here, 0, comment.length); + } + return comment.length; + } + + jsToken() { + var match, script; + if (!(this.chunk.charAt(0) === '`' && (match = HERE_JSTOKEN.exec(this.chunk) || JSTOKEN.exec(this.chunk)))) { + return 0; + } + script = match[1].replace(/\\+(`|$)/g, function(string) { + return string.slice(-Math.ceil(string.length / 2)); + }); + this.token('JS', script, 0, match[0].length); + return match[0].length; + } + + regexToken() { + var body, closed, end, flags, index, match, origin, prev, ref, ref1, regex, tokens; + switch (false) { + case !(match = REGEX_ILLEGAL.exec(this.chunk)): + this.error(`regular expressions cannot begin with ${match[2]}`, { + offset: match.index + match[1].length + }); + break; + case !(match = this.matchWithInterpolations(HEREGEX, '///')): + ({tokens, index} = match); + break; + case !(match = REGEX.exec(this.chunk)): + [regex, body, closed] = match; + this.validateEscapes(body, { + isRegex: true, + offsetInChunk: 1 + }); + index = regex.length; + prev = this.prev(); + if (prev) { + if (prev.spaced && (ref = prev[0], indexOf.call(CALLABLE, ref) >= 0)) { + if (!closed || POSSIBLY_DIVISION.test(regex)) { + return 0; + } + } else if (ref1 = prev[0], indexOf.call(NOT_REGEX, ref1) >= 0) { + return 0; + } + } + if (!closed) { + this.error('missing / (unclosed regex)'); + } + break; + default: + return 0; + } + [flags] = REGEX_FLAGS.exec(this.chunk.slice(index)); + end = index + flags.length; + origin = this.makeToken('REGEX', null, 0, end); + switch (false) { + case !!VALID_FLAGS.test(flags): + this.error(`invalid regular expression flags ${flags}`, { + offset: index, + length: flags.length + }); + break; + case !(regex || tokens.length === 1): + if (body == null) { + body = this.formatHeregex(tokens[0][1]); + } + this.token('REGEX', `${this.makeDelimitedLiteral(body, { + delimiter: '/' + })}${flags}`, 0, end, origin); + break; + default: + this.token('REGEX_START', '(', 0, 0, origin); + this.token('IDENTIFIER', 'RegExp', 0, 0); + this.token('CALL_START', '(', 0, 0); + this.mergeInterpolationTokens(tokens, { + delimiter: '"', + double: true + }, this.formatHeregex); + if (flags) { + this.token(',', ',', index - 1, 0); + this.token('STRING', '"' + flags + '"', index - 1, flags.length); + } + this.token(')', ')', end - 1, 0); + this.token('REGEX_END', ')', end - 1, 0); + } + return end; + } + + lineToken() { + var diff, indent, match, minLiteralLength, newIndentLiteral, noNewlines, size; + if (!(match = MULTI_DENT.exec(this.chunk))) { + return 0; + } + indent = match[0]; + this.seenFor = false; + if (!this.importSpecifierList) { + this.seenImport = false; + } + if (!this.exportSpecifierList) { + this.seenExport = false; + } + size = indent.length - 1 - indent.lastIndexOf('\n'); + noNewlines = this.unfinished(); + newIndentLiteral = size > 0 ? indent.slice(-size) : ''; + if (!/^(.?)\1*$/.exec(newIndentLiteral)) { + this.error('mixed indentation', { + offset: indent.length + }); + return indent.length; + } + minLiteralLength = Math.min(newIndentLiteral.length, this.indentLiteral.length); + if (newIndentLiteral.slice(0, minLiteralLength) !== this.indentLiteral.slice(0, minLiteralLength)) { + this.error('indentation mismatch', { + offset: indent.length + }); + return indent.length; + } + if (size - this.indebt === this.indent) { + if (noNewlines) { + this.suppressNewlines(); + } else { + this.newlineToken(0); + } + return indent.length; + } + if (size > this.indent) { + if (noNewlines) { + this.indebt = size - this.indent; + this.suppressNewlines(); + return indent.length; + } + if (!this.tokens.length) { + this.baseIndent = this.indent = size; + this.indentLiteral = newIndentLiteral; + return indent.length; + } + diff = size - this.indent + this.outdebt; + this.token('INDENT', diff, indent.length - size, size); + this.indents.push(diff); + this.ends.push({ + tag: 'OUTDENT' + }); + this.outdebt = this.indebt = 0; + this.indent = size; + this.indentLiteral = newIndentLiteral; + } else if (size < this.baseIndent) { + this.error('missing indentation', { + offset: indent.length + }); + } else { + this.indebt = 0; + this.outdentToken(this.indent - size, noNewlines, indent.length); + } + return indent.length; + } + + outdentToken(moveOut, noNewlines, outdentLength) { + var decreasedIndent, dent, lastIndent, ref; + decreasedIndent = this.indent - moveOut; + while (moveOut > 0) { + lastIndent = this.indents[this.indents.length - 1]; + if (!lastIndent) { + moveOut = 0; + } else if (this.outdebt && moveOut <= this.outdebt) { + this.outdebt -= moveOut; + moveOut = 0; + } else { + dent = this.indents.pop() + this.outdebt; + if (outdentLength && (ref = this.chunk[outdentLength], indexOf.call(INDENTABLE_CLOSERS, ref) >= 0)) { + decreasedIndent -= dent - moveOut; + moveOut = dent; + } + this.outdebt = 0; + this.pair('OUTDENT'); + this.token('OUTDENT', moveOut, 0, outdentLength); + moveOut -= dent; + } + } + if (dent) { + this.outdebt -= moveOut; + } + while (this.value() === ';') { + this.tokens.pop(); + } + if (!(this.tag() === 'TERMINATOR' || noNewlines)) { + this.token('TERMINATOR', '\n', outdentLength, 0); + } + this.indent = decreasedIndent; + this.indentLiteral = this.indentLiteral.slice(0, decreasedIndent); + return this; + } + + whitespaceToken() { + var match, nline, prev; + if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { + return 0; + } + prev = this.prev(); + if (prev) { + prev[match ? 'spaced' : 'newLine'] = true; + } + if (match) { + return match[0].length; + } else { + return 0; + } + } + + newlineToken(offset) { + while (this.value() === ';') { + this.tokens.pop(); + } + if (this.tag() !== 'TERMINATOR') { + this.token('TERMINATOR', '\n', offset, 0); + } + return this; + } + + suppressNewlines() { + if (this.value() === '\\') { + this.tokens.pop(); + } + return this; + } + + literalToken() { + var match, message, origin, prev, ref, ref1, ref2, ref3, skipToken, tag, token, value; + if (match = OPERATOR.exec(this.chunk)) { + [value] = match; + if (CODE.test(value)) { + this.tagParameters(); + } + } else { + value = this.chunk.charAt(0); + } + tag = value; + prev = this.prev(); + if (prev && indexOf.call(['=', ...COMPOUND_ASSIGN], value) >= 0) { + skipToken = false; + if (value === '=' && ((ref = prev[1]) === '||' || ref === '&&') && !prev.spaced) { + prev[0] = 'COMPOUND_ASSIGN'; + prev[1] += '='; + prev = this.tokens[this.tokens.length - 2]; + skipToken = true; + } + if (prev && prev[0] !== 'PROPERTY') { + origin = (ref1 = prev.origin) != null ? ref1 : prev; + message = isUnassignable(prev[1], origin[1]); + if (message) { + this.error(message, origin[2]); + } + } + if (skipToken) { + return value.length; + } + } + if (value === '{' && this.seenImport) { + this.importSpecifierList = true; + } else if (this.importSpecifierList && value === '}') { + this.importSpecifierList = false; + } else if (value === '{' && (prev != null ? prev[0] : void 0) === 'EXPORT') { + this.exportSpecifierList = true; + } else if (this.exportSpecifierList && value === '}') { + this.exportSpecifierList = false; + } + if (value === ';') { + this.seenFor = this.seenImport = this.seenExport = false; + tag = 'TERMINATOR'; + } else if (value === '*' && prev[0] === 'EXPORT') { + tag = 'EXPORT_ALL'; + } else if (indexOf.call(MATH, value) >= 0) { + tag = 'MATH'; + } else if (indexOf.call(COMPARE, value) >= 0) { + tag = 'COMPARE'; + } else if (indexOf.call(COMPOUND_ASSIGN, value) >= 0) { + tag = 'COMPOUND_ASSIGN'; + } else if (indexOf.call(UNARY, value) >= 0) { + tag = 'UNARY'; + } else if (indexOf.call(UNARY_MATH, value) >= 0) { + tag = 'UNARY_MATH'; + } else if (indexOf.call(SHIFT, value) >= 0) { + tag = 'SHIFT'; + } else if (value === '?' && (prev != null ? prev.spaced : void 0)) { + tag = 'BIN?'; + } else if (prev && !prev.spaced) { + if (value === '(' && (ref2 = prev[0], indexOf.call(CALLABLE, ref2) >= 0)) { + if (prev[0] === '?') { + prev[0] = 'FUNC_EXIST'; + } + tag = 'CALL_START'; + } else if (value === '[' && (ref3 = prev[0], indexOf.call(INDEXABLE, ref3) >= 0)) { + tag = 'INDEX_START'; + switch (prev[0]) { + case '?': + prev[0] = 'INDEX_SOAK'; + } + } + } + token = this.makeToken(tag, value); + switch (value) { + case '(': + case '{': + case '[': + this.ends.push({ + tag: INVERSES[value], + origin: token + }); + break; + case ')': + case '}': + case ']': + this.pair(value); + } + this.tokens.push(token); + return value.length; + } + + tagParameters() { + var i, stack, tok, tokens; + if (this.tag() !== ')') { + return this; + } + stack = []; + ({tokens} = this); + i = tokens.length; + tokens[--i][0] = 'PARAM_END'; + while (tok = tokens[--i]) { + switch (tok[0]) { + case ')': + stack.push(tok); + break; + case '(': + case 'CALL_START': + if (stack.length) { + stack.pop(); + } else if (tok[0] === '(') { + tok[0] = 'PARAM_START'; + return this; + } else { + return this; + } + } + } + return this; + } + + closeIndentation() { + return this.outdentToken(this.indent); + } + + matchWithInterpolations(regex, delimiter) { + var close, column, firstToken, index, lastToken, line, nested, offsetInChunk, open, ref, str, strPart, tokens; + tokens = []; + offsetInChunk = delimiter.length; + if (this.chunk.slice(0, offsetInChunk) !== delimiter) { + return null; + } + str = this.chunk.slice(offsetInChunk); + while (true) { + [strPart] = regex.exec(str); + this.validateEscapes(strPart, { + isRegex: delimiter.charAt(0) === '/', + offsetInChunk + }); + tokens.push(this.makeToken('NEOSTRING', strPart, offsetInChunk)); + str = str.slice(strPart.length); + offsetInChunk += strPart.length; + if (str.slice(0, 2) !== '#{') { + break; + } + [line, column] = this.getLineAndColumnFromChunk(offsetInChunk + 1); + ({ + tokens: nested, + index + } = new Lexer().tokenize(str.slice(1), { + line: line, + column: column, + untilBalanced: true + })); + index += 1; + open = nested[0], close = nested[nested.length - 1]; + open[0] = open[1] = '('; + close[0] = close[1] = ')'; + close.origin = ['', 'end of interpolation', close[2]]; + if (((ref = nested[1]) != null ? ref[0] : void 0) === 'TERMINATOR') { + nested.splice(1, 1); + } + tokens.push(['TOKENS', nested]); + str = str.slice(index); + offsetInChunk += index; + } + if (str.slice(0, delimiter.length) !== delimiter) { + this.error(`missing ${delimiter}`, { + length: delimiter.length + }); + } + firstToken = tokens[0], lastToken = tokens[tokens.length - 1]; + firstToken[2].first_column -= delimiter.length; + if (lastToken[1].substr(-1) === '\n') { + lastToken[2].last_line += 1; + lastToken[2].last_column = delimiter.length - 1; + } else { + lastToken[2].last_column += delimiter.length; + } + if (lastToken[1].length === 0) { + lastToken[2].last_column -= 1; + } + return { + tokens, + index: offsetInChunk + delimiter.length + }; + } + + mergeInterpolationTokens(tokens, options, fn) { + var converted, firstEmptyStringIndex, firstIndex, i, j, lastToken, len, locationToken, lparen, plusToken, rparen, tag, token, tokensToPush, value; + if (tokens.length > 1) { + lparen = this.token('STRING_START', '(', 0, 0); + } + firstIndex = this.tokens.length; + for (i = j = 0, len = tokens.length; j < len; i = ++j) { + token = tokens[i]; + [tag, value] = token; + switch (tag) { + case 'TOKENS': + if (value.length === 2) { + continue; + } + locationToken = value[0]; + tokensToPush = value; + break; + case 'NEOSTRING': + converted = fn(token[1], i); + if (converted.length === 0) { + if (i === 0) { + firstEmptyStringIndex = this.tokens.length; + } else { + continue; + } + } + if (i === 2 && (firstEmptyStringIndex != null)) { + this.tokens.splice(firstEmptyStringIndex, 2); + } + token[0] = 'STRING'; + token[1] = this.makeDelimitedLiteral(converted, options); + locationToken = token; + tokensToPush = [token]; + } + if (this.tokens.length > firstIndex) { + plusToken = this.token('+', '+'); + plusToken[2] = { + first_line: locationToken[2].first_line, + first_column: locationToken[2].first_column, + last_line: locationToken[2].first_line, + last_column: locationToken[2].first_column + }; + } + this.tokens.push(...tokensToPush); + } + if (lparen) { + lastToken = tokens[tokens.length - 1]; + lparen.origin = [ + 'STRING', null, { + first_line: lparen[2].first_line, + first_column: lparen[2].first_column, + last_line: lastToken[2].last_line, + last_column: lastToken[2].last_column + } + ]; + rparen = this.token('STRING_END', ')'); + return rparen[2] = { + first_line: lastToken[2].last_line, + first_column: lastToken[2].last_column, + last_line: lastToken[2].last_line, + last_column: lastToken[2].last_column + }; + } + } + + pair(tag) { + var lastIndent, prev, ref, ref1, wanted; + ref = this.ends, prev = ref[ref.length - 1]; + if (tag !== (wanted = prev != null ? prev.tag : void 0)) { + if ('OUTDENT' !== wanted) { + this.error(`unmatched ${tag}`); + } + ref1 = this.indents, lastIndent = ref1[ref1.length - 1]; + this.outdentToken(lastIndent, true); + return this.pair(tag); + } + return this.ends.pop(); + } + + getLineAndColumnFromChunk(offset) { + var column, lastLine, lineCount, ref, string; + if (offset === 0) { + return [this.chunkLine, this.chunkColumn]; + } + if (offset >= this.chunk.length) { + string = this.chunk; + } else { + string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9); + } + lineCount = count(string, '\n'); + column = this.chunkColumn; + if (lineCount > 0) { + ref = string.split('\n'), lastLine = ref[ref.length - 1]; + column = lastLine.length; + } else { + column += string.length; + } + return [this.chunkLine + lineCount, column]; + } + + makeToken(tag, value, offsetInChunk = 0, length = value.length) { + var lastCharacter, locationData, token; + locationData = {}; + [locationData.first_line, locationData.first_column] = this.getLineAndColumnFromChunk(offsetInChunk); + lastCharacter = length > 0 ? length - 1 : 0; + [locationData.last_line, locationData.last_column] = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter); + token = [tag, value, locationData]; + return token; + } + + token(tag, value, offsetInChunk, length, origin) { + var token; + token = this.makeToken(tag, value, offsetInChunk, length); + if (origin) { + token.origin = origin; + } + this.tokens.push(token); + return token; + } + + tag() { + var ref, token; + ref = this.tokens, token = ref[ref.length - 1]; + return token != null ? token[0] : void 0; + } + + value() { + var ref, token; + ref = this.tokens, token = ref[ref.length - 1]; + return token != null ? token[1] : void 0; + } + + prev() { + return this.tokens[this.tokens.length - 1]; + } + + unfinished() { + var ref; + return LINE_CONTINUER.test(this.chunk) || ((ref = this.tag()) === '\\' || ref === '.' || ref === '?.' || ref === '?::' || ref === 'UNARY' || ref === 'MATH' || ref === 'UNARY_MATH' || ref === '+' || ref === '-' || ref === '**' || ref === 'SHIFT' || ref === 'RELATION' || ref === 'COMPARE' || ref === '&' || ref === '^' || ref === '|' || ref === '&&' || ref === '||' || ref === 'BIN?' || ref === 'THROW' || ref === 'EXTENDS'); + } + + formatString(str) { + return str.replace(STRING_OMIT, '$1'); + } + + formatHeregex(str) { + return str.replace(HEREGEX_OMIT, '$1$2'); + } + + validateEscapes(str, options = {}) { + var before, hex, invalidEscape, invalidEscapeRegex, match, message, octal, ref, unicode; + invalidEscapeRegex = options.isRegex ? REGEX_INVALID_ESCAPE : STRING_INVALID_ESCAPE; + match = invalidEscapeRegex.exec(str); + if (!match) { + return; + } + match[0], before = match[1], octal = match[2], hex = match[3], unicode = match[4]; + message = octal ? "octal escape sequences are not allowed" : "invalid escape sequence"; + invalidEscape = `\\${octal || hex || unicode}`; + return this.error(`${message} ${invalidEscape}`, { + offset: ((ref = options.offsetInChunk) != null ? ref : 0) + match.index + before.length, + length: invalidEscape.length + }); + } + + makeDelimitedLiteral(body, options = {}) { + var regex; + if (body === '' && options.delimiter === '/') { + body = '(?:)'; + } + regex = RegExp(`(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?(${options.delimiter})|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)`, "g"); + body = body.replace(regex, function(match, backslash, nul, delimiter, lf, cr, ls, ps, other) { + switch (false) { + case !backslash: + if (options.double) { + return backslash + backslash; + } else { + return backslash; + } + case !nul: + return '\\x00'; + case !delimiter: + return `\\${delimiter}`; + case !lf: + return '\\n'; + case !cr: + return '\\r'; + case !ls: + return '\\u2028'; + case !ps: + return '\\u2029'; + case !other: + if (options.double) { + return `\\${other}`; + } else { + return other; + } + } + }); + return `${options.delimiter}${body}${options.delimiter}`; + } + + error(message, options = {}) { + var first_column, first_line, location, ref, ref1; + location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), { + first_line, + first_column, + last_column: first_column + ((ref1 = options.length) != null ? ref1 : 1) - 1 + }); + return throwSyntaxError(message, location); + } + + }; + + isUnassignable = function(name, displayName = name) { + switch (false) { + case indexOf.call([...JS_KEYWORDS, ...COFFEE_KEYWORDS], name) < 0: + return `keyword '${displayName}' can't be assigned`; + case indexOf.call(STRICT_PROSCRIBED, name) < 0: + return `'${displayName}' can't be assigned`; + case indexOf.call(RESERVED, name) < 0: + return `reserved word '${displayName}' can't be assigned`; + default: + return false; + } + }; + + exports.isUnassignable = isUnassignable; + + isForFrom = function(prev) { + var ref; + if (prev[0] === 'IDENTIFIER') { + if (prev[1] === 'from') { + prev[1][0] = 'IDENTIFIER'; + true; + } + return true; + } else if (prev[0] === 'FOR') { + return false; + } else if ((ref = prev[1]) === '{' || ref === '[' || ref === ',' || ref === ':') { + return false; + } else { + return true; + } + }; + + JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'await', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super', 'import', 'export', 'default']; + + COFFEE_KEYWORDS = ['undefined', 'Infinity', 'NaN', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; + + COFFEE_ALIAS_MAP = { + and: '&&', + or: '||', + is: '==', + isnt: '!=', + not: '!', + yes: 'true', + no: 'false', + on: 'true', + off: 'false' + }; + + COFFEE_ALIASES = (function() { + var results; + results = []; + for (key in COFFEE_ALIAS_MAP) { + results.push(key); + } + return results; + })(); + + COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); + + RESERVED = ['case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; + + STRICT_PROSCRIBED = ['arguments', 'eval']; + + exports.JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); + + BOM = 65279; + + IDENTIFIER = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/; + + NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; + + OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/; + + WHITESPACE = /^[^\n\S]+/; + + COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/; + + CODE = /^[-=]>/; + + MULTI_DENT = /^(?:\n[^\n\S]*)+/; + + JSTOKEN = /^`(?!``)((?:[^`\\]|\\[\s\S])*)`/; + + HERE_JSTOKEN = /^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/; + + STRING_START = /^(?:'''|"""|'|")/; + + STRING_SINGLE = /^(?:[^\\']|\\[\s\S])*/; + + STRING_DOUBLE = /^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/; + + HEREDOC_SINGLE = /^(?:[^\\']|\\[\s\S]|'(?!''))*/; + + HEREDOC_DOUBLE = /^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/; + + STRING_OMIT = /((?:\\\\)+)|\\[^\S\n]*\n\s*/g; + + SIMPLE_STRING_OMIT = /\s*\n\s*/g; + + HEREDOC_INDENT = /\n+([^\n\S]*)(?=\S)/g; + + REGEX = /^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/; + + REGEX_FLAGS = /^\w*/; + + VALID_FLAGS = /^(?!.*(.).*\1)[imgy]*$/; + + HEREGEX = /^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/; + + HEREGEX_OMIT = /((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g; + + REGEX_ILLEGAL = /^(\/|\/{3}\s*)(\*)/; + + POSSIBLY_DIVISION = /^\/=?\s/; + + HERECOMMENT_ILLEGAL = /\*\//; + + LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; + + STRING_INVALID_ESCAPE = /((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/; + + REGEX_INVALID_ESCAPE = /((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/; + + LEADING_BLANK_LINE = /^[^\n\S]*\n/; + + TRAILING_BLANK_LINE = /\n[^\n\S]*$/; + + TRAILING_SPACES = /\s+$/; + + COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '**=', '//=', '%%=']; + + UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO']; + + UNARY_MATH = ['!', '~']; + + SHIFT = ['<<', '>>', '>>>']; + + COMPARE = ['==', '!=', '<', '>', '<=', '>=']; + + MATH = ['*', '/', '%', '//', '%%']; + + RELATION = ['IN', 'OF', 'INSTANCEOF']; + + BOOL = ['TRUE', 'FALSE']; + + CALLABLE = ['IDENTIFIER', 'PROPERTY', ')', ']', '?', '@', 'THIS', 'SUPER']; + + INDEXABLE = CALLABLE.concat(['NUMBER', 'INFINITY', 'NAN', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END', 'BOOL', 'NULL', 'UNDEFINED', '}', '::']); + + NOT_REGEX = INDEXABLE.concat(['++', '--']); + + LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; + + INDENTABLE_CLOSERS = [')', '}', ']']; + +}).call(this); + + return module.exports; +})();require['./parser'] = (function() { + var exports = {}, module = {exports: exports}; + /* parser generated by jison 0.4.17 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,22],$V1=[1,52],$V2=[1,86],$V3=[1,82],$V4=[1,87],$V5=[1,88],$V6=[1,84],$V7=[1,85],$V8=[1,60],$V9=[1,62],$Va=[1,63],$Vb=[1,64],$Vc=[1,65],$Vd=[1,66],$Ve=[1,53],$Vf=[1,40],$Vg=[1,54],$Vh=[1,34],$Vi=[1,71],$Vj=[1,72],$Vk=[1,33],$Vl=[1,81],$Vm=[1,50],$Vn=[1,55],$Vo=[1,56],$Vp=[1,69],$Vq=[1,70],$Vr=[1,68],$Vs=[1,45],$Vt=[1,51],$Vu=[1,67],$Vv=[1,76],$Vw=[1,77],$Vx=[1,78],$Vy=[1,79],$Vz=[1,49],$VA=[1,75],$VB=[1,36],$VC=[1,37],$VD=[1,38],$VE=[1,39],$VF=[1,41],$VG=[1,42],$VH=[1,89],$VI=[1,6,34,44,134],$VJ=[1,104],$VK=[1,92],$VL=[1,91],$VM=[1,90],$VN=[1,93],$VO=[1,94],$VP=[1,95],$VQ=[1,96],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,101],$VW=[1,102],$VX=[1,103],$VY=[1,107],$VZ=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V_=[2,171],$V$=[1,113],$V01=[1,118],$V11=[1,114],$V21=[1,115],$V31=[1,116],$V41=[1,119],$V51=[1,112],$V61=[1,6,34,44,134,136,138,142,159],$V71=[1,6,33,34,42,43,44,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V81=[2,98],$V91=[2,77],$Va1=[1,129],$Vb1=[1,134],$Vc1=[1,135],$Vd1=[1,137],$Ve1=[1,141],$Vf1=[1,139],$Vg1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh1=[2,95],$Vi1=[1,6,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vj1=[2,29],$Vk1=[1,167],$Vl1=[2,65],$Vm1=[1,175],$Vn1=[1,187],$Vo1=[1,189],$Vp1=[1,184],$Vq1=[1,191],$Vr1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$Vs1=[2,117],$Vt1=[1,6,33,34,42,43,44,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vu1=[1,6,33,34,42,43,44,48,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vv1=[1,239],$Vw1=[42,43,117],$Vx1=[1,249],$Vy1=[1,248],$Vz1=[2,75],$VA1=[1,259],$VB1=[6,33,34,68,73],$VC1=[6,33,34,57,68,73,76],$VD1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,168,169,170,171,172,173,174,175,176,177],$VE1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,169,170,171,172,173,174,175,176,177],$VF1=[42,43,87,88,90,91,92,95,116,117],$VG1=[1,279],$VH1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159],$VI1=[2,64],$VJ1=[1,291],$VK1=[1,293],$VL1=[1,298],$VM1=[1,300],$VN1=[2,192],$VO1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$VP1=[1,309],$VQ1=[6,33,34,73,118,123],$VR1=[1,6,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$VS1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,143,159],$VT1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$VU1=[149,150,151],$VV1=[73,149,150,151],$VW1=[6,33,99],$VX1=[1,321],$VY1=[6,33,34,73,99],$VZ1=[6,33,34,60,73,99],$V_1=[6,33,34,57,60,73,99],$V$1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,169,170,171,172,173,174,175,176,177],$V02=[1,6,33,34,44,48,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V12=[14,30,36,40,42,43,46,47,50,51,52,53,54,55,63,64,65,66,70,71,86,89,97,100,102,110,120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],$V22=[2,181],$V32=[6,33,34],$V42=[2,76],$V52=[1,336],$V62=[1,337],$V72=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,131,134,136,137,138,142,143,154,156,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V82=[34,154,156],$V92=[1,6,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$Va2=[1,363],$Vb2=[1,369],$Vc2=[1,6,34,44,134,159],$Vd2=[2,90],$Ve2=[1,380],$Vf2=[1,381],$Vg2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,154,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,143,159],$Vi2=[1,393],$Vj2=[1,394],$Vk2=[6,33,34,99],$Vl2=[6,33,34,73],$Vm2=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vn2=[33,73],$Vo2=[1,421],$Vp2=[1,422],$Vq2=[1,428],$Vr2=[1,429]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"FuncDirective":9,"YieldReturn":10,"AwaitReturn":11,"Return":12,"Comment":13,"STATEMENT":14,"Import":15,"Export":16,"Value":17,"Invocation":18,"Code":19,"Operation":20,"Assign":21,"If":22,"Try":23,"While":24,"For":25,"Switch":26,"Class":27,"Throw":28,"Yield":29,"YIELD":30,"FROM":31,"Block":32,"INDENT":33,"OUTDENT":34,"Identifier":35,"IDENTIFIER":36,"Property":37,"PROPERTY":38,"AlphaNumeric":39,"NUMBER":40,"String":41,"STRING":42,"STRING_START":43,"STRING_END":44,"Regex":45,"REGEX":46,"REGEX_START":47,"REGEX_END":48,"Literal":49,"JS":50,"UNDEFINED":51,"NULL":52,"BOOL":53,"INFINITY":54,"NAN":55,"Assignable":56,"=":57,"AssignObj":58,"ObjAssignable":59,":":60,"SimpleObjAssignable":61,"ThisProperty":62,"RETURN":63,"AWAIT":64,"HERECOMMENT":65,"PARAM_START":66,"ParamList":67,"PARAM_END":68,"FuncGlyph":69,"->":70,"=>":71,"OptComma":72,",":73,"Param":74,"ParamVar":75,"...":76,"Array":77,"Object":78,"Splat":79,"SimpleAssignable":80,"Accessor":81,"Parenthetical":82,"Range":83,"This":84,"Super":85,"SUPER":86,".":87,"INDEX_START":88,"INDEX_END":89,"?.":90,"::":91,"?::":92,"Index":93,"IndexValue":94,"INDEX_SOAK":95,"Slice":96,"{":97,"AssignList":98,"}":99,"CLASS":100,"EXTENDS":101,"IMPORT":102,"ImportDefaultSpecifier":103,"ImportNamespaceSpecifier":104,"ImportSpecifierList":105,"ImportSpecifier":106,"AS":107,"DEFAULT":108,"IMPORT_ALL":109,"EXPORT":110,"ExportSpecifierList":111,"EXPORT_ALL":112,"ExportSpecifier":113,"OptFuncExist":114,"Arguments":115,"FUNC_EXIST":116,"CALL_START":117,"CALL_END":118,"ArgList":119,"THIS":120,"@":121,"[":122,"]":123,"RangeDots":124,"..":125,"Arg":126,"SimpleArgs":127,"TRY":128,"Catch":129,"FINALLY":130,"CATCH":131,"THROW":132,"(":133,")":134,"WhileSource":135,"WHILE":136,"WHEN":137,"UNTIL":138,"Loop":139,"LOOP":140,"ForBody":141,"FOR":142,"BY":143,"ForStart":144,"ForSource":145,"ForVariables":146,"OWN":147,"ForValue":148,"FORIN":149,"FOROF":150,"FORFROM":151,"SWITCH":152,"Whens":153,"ELSE":154,"When":155,"LEADING_WHEN":156,"IfBlock":157,"IF":158,"POST_IF":159,"UNARY":160,"UNARY_MATH":161,"-":162,"+":163,"--":164,"++":165,"?":166,"MATH":167,"**":168,"SHIFT":169,"COMPARE":170,"&":171,"^":172,"|":173,"&&":174,"||":175,"BIN?":176,"RELATION":177,"COMPOUND_ASSIGN":178,"$accept":0,"$end":1}, +terminals_: {2:"error",6:"TERMINATOR",14:"STATEMENT",30:"YIELD",31:"FROM",33:"INDENT",34:"OUTDENT",36:"IDENTIFIER",38:"PROPERTY",40:"NUMBER",42:"STRING",43:"STRING_START",44:"STRING_END",46:"REGEX",47:"REGEX_START",48:"REGEX_END",50:"JS",51:"UNDEFINED",52:"NULL",53:"BOOL",54:"INFINITY",55:"NAN",57:"=",60:":",63:"RETURN",64:"AWAIT",65:"HERECOMMENT",66:"PARAM_START",68:"PARAM_END",70:"->",71:"=>",73:",",76:"...",86:"SUPER",87:".",88:"INDEX_START",89:"INDEX_END",90:"?.",91:"::",92:"?::",95:"INDEX_SOAK",97:"{",99:"}",100:"CLASS",101:"EXTENDS",102:"IMPORT",107:"AS",108:"DEFAULT",109:"IMPORT_ALL",110:"EXPORT",112:"EXPORT_ALL",116:"FUNC_EXIST",117:"CALL_START",118:"CALL_END",120:"THIS",121:"@",122:"[",123:"]",125:"..",128:"TRY",130:"FINALLY",131:"CATCH",132:"THROW",133:"(",134:")",136:"WHILE",137:"WHEN",138:"UNTIL",140:"LOOP",142:"FOR",143:"BY",147:"OWN",149:"FORIN",150:"FOROF",151:"FORFROM",152:"SWITCH",154:"ELSE",156:"LEADING_WHEN",158:"IF",159:"POST_IF",160:"UNARY",161:"UNARY_MATH",162:"-",163:"+",164:"--",165:"++",166:"?",167:"MATH",168:"**",169:"SHIFT",170:"COMPARE",171:"&",172:"^",173:"|",174:"&&",175:"||",176:"BIN?",177:"RELATION",178:"COMPOUND_ASSIGN"}, +productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[29,1],[29,2],[29,3],[32,2],[32,3],[35,1],[37,1],[39,1],[39,1],[41,1],[41,3],[45,1],[45,3],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[49,1],[21,3],[21,4],[21,5],[58,1],[58,3],[58,5],[58,3],[58,5],[58,1],[61,1],[61,1],[61,1],[59,1],[59,1],[12,2],[12,1],[10,3],[10,2],[11,3],[11,2],[13,1],[19,5],[19,2],[69,1],[69,1],[72,0],[72,1],[67,0],[67,1],[67,3],[67,4],[67,6],[74,1],[74,2],[74,3],[74,1],[75,1],[75,1],[75,1],[75,1],[79,2],[80,1],[80,2],[80,2],[80,1],[56,1],[56,1],[56,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[85,3],[85,4],[81,2],[81,2],[81,2],[81,2],[81,1],[81,1],[93,3],[93,2],[94,1],[94,1],[78,4],[98,0],[98,1],[98,3],[98,4],[98,6],[27,1],[27,2],[27,3],[27,4],[27,2],[27,3],[27,4],[27,5],[15,2],[15,4],[15,4],[15,5],[15,7],[15,6],[15,9],[105,1],[105,3],[105,4],[105,4],[105,6],[106,1],[106,3],[106,1],[106,3],[103,1],[104,3],[16,3],[16,5],[16,2],[16,4],[16,5],[16,6],[16,3],[16,4],[16,7],[111,1],[111,3],[111,4],[111,4],[111,6],[113,1],[113,3],[113,3],[113,1],[113,3],[18,3],[18,3],[18,3],[18,3],[114,0],[114,1],[115,2],[115,4],[84,1],[84,1],[62,2],[77,2],[77,4],[124,1],[124,1],[83,5],[96,3],[96,2],[96,2],[96,1],[119,1],[119,3],[119,4],[119,4],[119,6],[126,1],[126,1],[126,1],[127,1],[127,3],[23,2],[23,3],[23,4],[23,5],[129,3],[129,3],[129,2],[28,2],[82,3],[82,5],[135,2],[135,4],[135,2],[135,4],[24,2],[24,2],[24,2],[24,1],[139,2],[139,2],[25,2],[25,2],[25,2],[141,2],[141,4],[141,2],[144,2],[144,3],[148,1],[148,1],[148,1],[148,1],[146,1],[146,3],[145,2],[145,2],[145,4],[145,4],[145,4],[145,6],[145,6],[145,2],[145,4],[26,5],[26,7],[26,4],[26,6],[153,1],[153,2],[155,3],[155,4],[157,3],[157,5],[22,1],[22,3],[22,3],[22,3],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,3],[20,5],[20,4],[20,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: +return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block); +break; +case 2: +return this.$ = $$[$0]; +break; +case 3: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]])); +break; +case 4: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0])); +break; +case 5: +this.$ = $$[$0-1]; +break; +case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 37: case 42: case 44: case 58: case 59: case 60: case 61: case 62: case 63: case 75: case 76: case 86: case 87: case 88: case 89: case 94: case 95: case 98: case 102: case 103: case 111: case 192: case 193: case 195: case 225: case 226: case 244: case 250: +this.$ = $$[$0]; +break; +case 13: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.StatementLiteral($$[$0])); +break; +case 29: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Op($$[$0], new yy.Value(new yy.Literal('')))); +break; +case 30: case 254: case 255: case 258: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); +break; +case 31: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-2].concat($$[$0-1]), $$[$0])); +break; +case 32: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block); +break; +case 33: case 112: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); +break; +case 34: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.IdentifierLiteral($$[$0])); +break; +case 35: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.PropertyName($$[$0])); +break; +case 36: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.NumberLiteral($$[$0])); +break; +case 38: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.StringLiteral($$[$0])); +break; +case 39: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.StringWithInterpolations($$[$0-1])); +break; +case 40: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.RegexLiteral($$[$0])); +break; +case 41: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.RegexWithInterpolations($$[$0-1].args)); +break; +case 43: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.PassthroughLiteral($$[$0])); +break; +case 45: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.UndefinedLiteral); +break; +case 46: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.NullLiteral); +break; +case 47: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.BooleanLiteral($$[$0])); +break; +case 48: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.InfinityLiteral($$[$0])); +break; +case 49: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.NaNLiteral); +break; +case 50: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0])); +break; +case 51: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0])); +break; +case 52: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1])); +break; +case 53: case 91: case 96: case 97: case 99: case 100: case 101: case 227: case 228: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); +break; +case 54: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object', { + operatorToken: yy.addLocationDataFn(_$[$0-1])(new yy.Literal($$[$0-1])) + })); +break; +case 55: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object', { + operatorToken: yy.addLocationDataFn(_$[$0-3])(new yy.Literal($$[$0-3])) + })); +break; +case 56: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], null, { + operatorToken: yy.addLocationDataFn(_$[$0-1])(new yy.Literal($$[$0-1])) + })); +break; +case 57: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], null, { + operatorToken: yy.addLocationDataFn(_$[$0-3])(new yy.Literal($$[$0-3])) + })); +break; +case 64: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0])); +break; +case 65: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return); +break; +case 66: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.YieldReturn($$[$0])); +break; +case 67: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.YieldReturn); +break; +case 68: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.AwaitReturn($$[$0])); +break; +case 69: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.AwaitReturn); +break; +case 70: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0])); +break; +case 71: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1])); +break; +case 72: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1])); +break; +case 73: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func'); +break; +case 74: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc'); +break; +case 77: case 117: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); +break; +case 78: case 118: case 137: case 157: case 187: case 229: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); +break; +case 79: case 119: case 138: case 158: case 188: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); +break; +case 80: case 120: case 139: case 159: case 189: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); +break; +case 81: case 121: case 141: case 161: case 191: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); +break; +case 82: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0])); +break; +case 83: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true)); +break; +case 84: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0])); +break; +case 85: case 194: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion); +break; +case 90: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1])); +break; +case 92: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0])); +break; +case 93: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0]))); +break; +case 104: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Super(yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0])))); +break; +case 105: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Super(yy.addLocationDataFn(_$[$0-1])(new yy.Index($$[$0-1])))); +break; +case 106: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0])); +break; +case 107: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak')); +break; +case 108: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.PropertyName('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 109: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.PropertyName('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); +break; +case 110: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.PropertyName('prototype'))); +break; +case 113: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], { + soak: true + })); +break; +case 114: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0])); +break; +case 115: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0])); +break; +case 116: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated)); +break; +case 122: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class); +break; +case 123: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0])); +break; +case 124: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0])); +break; +case 125: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0])); +break; +case 126: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0])); +break; +case 127: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0])); +break; +case 128: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0])); +break; +case 129: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0])); +break; +case 130: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.ImportDeclaration(null, $$[$0])); +break; +case 131: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause($$[$0-2], null), $$[$0])); +break; +case 132: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause(null, $$[$0-2]), $$[$0])); +break; +case 133: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause(null, new yy.ImportSpecifierList([])), $$[$0])); +break; +case 134: +this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause(null, new yy.ImportSpecifierList($$[$0-4])), $$[$0])); +break; +case 135: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause($$[$0-4], $$[$0-2]), $$[$0])); +break; +case 136: +this.$ = yy.addLocationDataFn(_$[$0-8], _$[$0])(new yy.ImportDeclaration(new yy.ImportClause($$[$0-7], new yy.ImportSpecifierList($$[$0-4])), $$[$0])); +break; +case 140: case 160: case 174: case 190: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); +break; +case 142: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.ImportSpecifier($$[$0])); +break; +case 143: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ImportSpecifier($$[$0-2], $$[$0])); +break; +case 144: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.ImportSpecifier(new yy.Literal($$[$0]))); +break; +case 145: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ImportSpecifier(new yy.Literal($$[$0-2]), $$[$0])); +break; +case 146: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.ImportDefaultSpecifier($$[$0])); +break; +case 147: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ImportNamespaceSpecifier(new yy.Literal($$[$0-2]), $$[$0])); +break; +case 148: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ExportNamedDeclaration(new yy.ExportSpecifierList([]))); +break; +case 149: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.ExportNamedDeclaration(new yy.ExportSpecifierList($$[$0-2]))); +break; +case 150: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.ExportNamedDeclaration($$[$0])); +break; +case 151: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.ExportNamedDeclaration(new yy.Assign($$[$0-2], $$[$0], null, { + moduleDeclaration: 'export' + }))); +break; +case 152: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.ExportNamedDeclaration(new yy.Assign($$[$0-3], $$[$0], null, { + moduleDeclaration: 'export' + }))); +break; +case 153: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.ExportNamedDeclaration(new yy.Assign($$[$0-4], $$[$0-1], null, { + moduleDeclaration: 'export' + }))); +break; +case 154: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ExportDefaultDeclaration($$[$0])); +break; +case 155: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.ExportAllDeclaration(new yy.Literal($$[$0-2]), $$[$0])); +break; +case 156: +this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.ExportNamedDeclaration(new yy.ExportSpecifierList($$[$0-4]), $$[$0])); +break; +case 162: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.ExportSpecifier($$[$0])); +break; +case 163: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ExportSpecifier($$[$0-2], $$[$0])); +break; +case 164: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ExportSpecifier($$[$0-2], new yy.Literal($$[$0]))); +break; +case 165: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.ExportSpecifier(new yy.Literal($$[$0]))); +break; +case 166: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.ExportSpecifier(new yy.Literal($$[$0-2]), $$[$0])); +break; +case 167: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.TaggedTemplateCall($$[$0-2], $$[$0], $$[$0-1])); +break; +case 168: case 169: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); +break; +case 170: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.SuperCall(yy.addLocationDataFn(_$[$0-2])(new yy.Super), $$[$0], $$[$0-1])); +break; +case 171: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); +break; +case 172: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); +break; +case 173: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]); +break; +case 175: case 176: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.ThisLiteral)); +break; +case 177: +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 178: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); +break; +case 179: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); +break; +case 180: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); +break; +case 181: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); +break; +case 182: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); +break; +case 183: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); +break; +case 184: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); +break; +case 185: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); +break; +case 186: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0])); +break; +case 196: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0])); +break; +case 197: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0])); +break; +case 198: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1])); +break; +case 199: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0])); +break; +case 200: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0])); +break; +case 201: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]); +break; +case 202: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]); +break; +case 203: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]); +break; +case 204: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0])); +break; +case 205: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); +break; +case 206: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); +break; +case 207: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); +break; +case 208: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + guard: $$[$0] + })); +break; +case 209: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], { + invert: true + })); +break; +case 210: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { + invert: true, + guard: $$[$0] + })); +break; +case 211: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0])); +break; +case 212: case 213: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); +break; +case 214: +this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]); +break; +case 215: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.BooleanLiteral('true'))).addBody($$[$0])); +break; +case 216: +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 217: case 218: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); +break; +case 219: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1])); +break; +case 220: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0])) + }); +break; +case 221: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), + step: $$[$0] + }); +break; +case 222: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { + $$[$0].own = $$[$0-1].own; + $$[$0].ownTag = $$[$0-1].ownTag; + $$[$0].name = $$[$0-1][0]; + $$[$0].index = $$[$0-1][1]; + return $$[$0]; + }())); +break; +case 223: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]); +break; +case 224: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + $$[$0].own = true; + $$[$0].ownTag = yy.addLocationDataFn(_$[$0-1])(new yy.Literal($$[$0-1])); + return $$[$0]; + }())); +break; +case 230: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]); +break; +case 231: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0] + }); +break; +case 232: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0], + object: true + }); +break; +case 233: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0] + }); +break; +case 234: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0], + object: true + }); +break; +case 235: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + step: $$[$0] + }); +break; +case 236: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + guard: $$[$0-2], + step: $$[$0] + }); +break; +case 237: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ + source: $$[$0-4], + step: $$[$0-2], + guard: $$[$0] + }); +break; +case 238: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ + source: $$[$0], + from: true + }); +break; +case 239: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ + source: $$[$0-2], + guard: $$[$0], + from: true + }); +break; +case 240: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1])); +break; +case 241: +this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1])); +break; +case 242: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1])); +break; +case 243: +this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1])); +break; +case 245: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0])); +break; +case 246: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]); +break; +case 247: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]); +break; +case 248: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { + type: $$[$0-2] + })); +break; +case 249: +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 251: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0])); +break; +case 252: case 253: +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 256: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0])); +break; +case 257: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0])); +break; +case 259: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); +break; +case 260: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); +break; +case 261: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); +break; +case 262: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); +break; +case 263: +this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); +break; +case 264: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); +break; +case 265: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); +break; +case 266: case 267: case 268: case 269: case 270: case 271: case 272: case 273: case 274: case 275: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 276: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { + if ($$[$0-1].charAt(0) === '!') { + return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); + } else { + return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); + } + }())); +break; +case 277: +this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); +break; +case 278: +this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); +break; +case 279: +this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); +break; +case 280: +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:25,11:26,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$V1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{1:[3]},{1:[2,2],6:$VH},o($VI,[2,3]),o($VI,[2,6],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VI,[2,7],{144:80,135:108,141:109,136:$Vv,138:$Vw,142:$Vy,159:$VY}),o($VI,[2,8]),o($VZ,[2,16],{114:110,81:111,93:117,42:$V_,43:$V_,117:$V_,87:$V$,88:$V01,90:$V11,91:$V21,92:$V31,95:$V41,116:$V51}),o($VZ,[2,17],{93:117,114:120,81:121,87:$V$,88:$V01,90:$V11,91:$V21,92:$V31,95:$V41,116:$V51,117:$V_}),o($VZ,[2,18]),o($VZ,[2,19]),o($VZ,[2,20]),o($VZ,[2,21]),o($VZ,[2,22]),o($VZ,[2,23]),o($VZ,[2,24]),o($VZ,[2,25]),o($VZ,[2,26]),o($VZ,[2,27]),o($VZ,[2,28]),o($V61,[2,11]),o($V61,[2,12]),o($V61,[2,13]),o($V61,[2,14]),o($V61,[2,15]),o($VI,[2,9]),o($VI,[2,10]),o($V71,$V81,{57:[1,122]}),o($V71,[2,99]),o($V71,[2,100]),o($V71,[2,101]),o($V71,[2,102]),o($V71,[2,103]),{87:[1,124],88:[1,125],114:123,116:$V51,117:$V_},o([6,33,68,73],$V91,{67:126,74:127,75:128,35:130,62:131,77:132,78:133,36:$V2,76:$Va1,97:$Vl,121:$Vb1,122:$Vc1}),{32:136,33:$Vd1},{7:138,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:142,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:143,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:144,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:145,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:[1,146],64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{17:148,18:149,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:150,62:74,77:57,78:58,80:147,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,120:$Vp,121:$Vq,122:$Vr,133:$Vu},{17:148,18:149,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:150,62:74,77:57,78:58,80:151,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,120:$Vp,121:$Vq,122:$Vr,133:$Vu},o($Vg1,$Vh1,{101:[1,155],164:[1,152],165:[1,153],178:[1,154]}),o($VZ,[2,250],{154:[1,156]}),{32:157,33:$Vd1},{32:158,33:$Vd1},o($VZ,[2,214]),{32:159,33:$Vd1},{7:160,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,161],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($Vi1,[2,122],{49:28,82:29,83:30,84:31,85:32,77:57,78:58,39:59,45:61,35:73,62:74,41:83,17:148,18:149,56:150,32:162,80:164,33:$Vd1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,86:$Vk,97:$Vl,101:[1,163],120:$Vp,121:$Vq,122:$Vr,133:$Vu}),{7:165,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o([1,6,34,44,134,136,138,142,159,166,167,168,169,170,171,172,173,174,175,176,177],$Vj1,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:166,14:$V0,30:$Ve1,31:$Vk1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:[1,168],64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,140:$Vx,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($V61,$Vl1,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:169,14:$V0,30:$Ve1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,140:$Vx,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o([1,6,33,34,44,73,99,134,136,138,142,159],[2,70]),{35:174,36:$V2,41:170,42:$V4,43:$V5,97:[1,173],103:171,104:172,109:$Vm1},{27:177,35:178,36:$V2,97:[1,176],100:$Vm,108:[1,179],112:[1,180]},o($Vg1,[2,96]),o($Vg1,[2,97]),o($V71,[2,42]),o($V71,[2,43]),o($V71,[2,44]),o($V71,[2,45]),o($V71,[2,46]),o($V71,[2,47]),o($V71,[2,48]),o($V71,[2,49]),{4:181,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$V1,33:[1,182],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:183,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:$Vn1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,119:185,120:$Vp,121:$Vq,122:$Vr,123:$Vp1,126:186,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V71,[2,175]),o($V71,[2,176],{37:190,38:$Vq1}),{33:[2,73]},{33:[2,74]},o($Vr1,[2,91]),o($Vr1,[2,94]),{7:192,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:193,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:194,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:196,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,32:195,33:$Vd1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{35:201,36:$V2,62:202,77:203,78:204,83:197,97:$Vl,121:$Vb1,122:$Vr,146:198,147:[1,199],148:200},{145:205,149:[1,206],150:[1,207],151:[1,208]},o([6,33,73,99],$Vs1,{41:83,98:209,58:210,59:211,61:212,13:213,39:214,35:215,37:216,62:217,36:$V2,38:$Vq1,40:$V3,42:$V4,43:$V5,65:$Vg,121:$Vb1}),o($Vt1,[2,36]),o($Vt1,[2,37]),o($V71,[2,40]),{17:148,18:218,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:150,62:74,77:57,78:58,80:219,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,120:$Vp,121:$Vq,122:$Vr,133:$Vu},o([1,6,31,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,107,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],[2,34]),o($Vu1,[2,38]),{4:220,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$V1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VI,[2,5],{7:4,8:5,9:6,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,10:25,11:26,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,5:221,14:$V0,30:$V1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,136:$Vv,138:$Vw,140:$Vx,142:$Vy,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($VZ,[2,263]),{7:222,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:223,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:224,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:225,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:226,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:227,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:228,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:229,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:230,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:231,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:232,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:233,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:234,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:235,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VZ,[2,213]),o($VZ,[2,218]),{7:236,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VZ,[2,212]),o($VZ,[2,217]),{41:237,42:$V4,43:$V5,115:238,117:$Vv1},o($Vr1,[2,92]),o($Vw1,[2,172]),{37:240,38:$Vq1},{37:241,38:$Vq1},o($Vr1,[2,110],{37:242,38:$Vq1}),{37:243,38:$Vq1},o($Vr1,[2,111]),{7:245,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vx1,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,94:244,96:246,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,124:247,125:$Vy1,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{88:$V01,93:250,95:$V41},{115:251,117:$Vv1},o($Vr1,[2,93]),{6:[1,253],7:252,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,254],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{115:255,117:$Vv1},{37:256,38:$Vq1},{7:257,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o([6,33],$Vz1,{72:260,68:[1,258],73:$VA1}),o($VB1,[2,78]),o($VB1,[2,82],{57:[1,262],76:[1,261]}),o($VB1,[2,85]),o($VC1,[2,86]),o($VC1,[2,87]),o($VC1,[2,88]),o($VC1,[2,89]),{37:190,38:$Vq1},{7:263,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:$Vn1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,119:185,120:$Vp,121:$Vq,122:$Vr,123:$Vp1,126:186,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VZ,[2,72]),{4:265,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$V1,34:[1,264],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VD1,[2,254],{144:80,135:105,141:106,166:$VM}),{7:145,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{135:108,136:$Vv,138:$Vw,141:109,142:$Vy,144:80,159:$VY},o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,166,167,168,169,170,171,172,173,174,175,176,177],$Vj1,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:166,14:$V0,30:$Ve1,31:$Vk1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,140:$Vx,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($VE1,[2,255],{144:80,135:105,141:106,166:$VM,168:$VO}),o($VE1,[2,256],{144:80,135:105,141:106,166:$VM,168:$VO}),o($VE1,[2,257],{144:80,135:105,141:106,166:$VM,168:$VO}),o($VD1,[2,258],{144:80,135:105,141:106,166:$VM}),o($VI,[2,69],{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:266,14:$V0,30:$Ve1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,136:$Vl1,138:$Vl1,142:$Vl1,159:$Vl1,140:$Vx,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($VZ,[2,259],{42:$Vh1,43:$Vh1,87:$Vh1,88:$Vh1,90:$Vh1,91:$Vh1,92:$Vh1,95:$Vh1,116:$Vh1,117:$Vh1}),o($Vw1,$V_,{114:110,81:111,93:117,87:$V$,88:$V01,90:$V11,91:$V21,92:$V31,95:$V41,116:$V51}),{81:121,87:$V$,88:$V01,90:$V11,91:$V21,92:$V31,93:117,95:$V41,114:120,116:$V51,117:$V_},o($VF1,$V81),o($VZ,[2,260],{42:$Vh1,43:$Vh1,87:$Vh1,88:$Vh1,90:$Vh1,91:$Vh1,92:$Vh1,95:$Vh1,116:$Vh1,117:$Vh1}),o($VZ,[2,261]),o($VZ,[2,262]),{6:[1,269],7:267,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,268],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:270,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{32:271,33:$Vd1,158:[1,272]},o($VZ,[2,197],{129:273,130:[1,274],131:[1,275]}),o($VZ,[2,211]),o($VZ,[2,219]),{33:[1,276],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},{153:277,155:278,156:$VG1},o($VZ,[2,123]),{7:280,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($Vi1,[2,126],{32:281,33:$Vd1,42:$Vh1,43:$Vh1,87:$Vh1,88:$Vh1,90:$Vh1,91:$Vh1,92:$Vh1,95:$Vh1,116:$Vh1,117:$Vh1,101:[1,282]}),o($VH1,[2,204],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VH1,[2,30],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:283,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VI,[2,67],{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,7:284,14:$V0,30:$Ve1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,136:$Vl1,138:$Vl1,142:$Vl1,159:$Vl1,140:$Vx,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($V61,$VI1,{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($V61,[2,130]),{31:[1,285],73:[1,286]},{31:[1,287]},{33:$VJ1,35:292,36:$V2,99:[1,288],105:289,106:290,108:$VK1},o([31,73],[2,146]),{107:[1,294]},{33:$VL1,35:299,36:$V2,99:[1,295],108:$VM1,111:296,113:297},o($V61,[2,150]),{57:[1,301]},{7:302,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{31:[1,303]},{6:$VH,134:[1,304]},{4:305,5:3,7:4,8:5,9:6,10:25,11:26,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$V1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o([6,33,73,123],$VN1,{144:80,135:105,141:106,124:306,76:[1,307],125:$Vy1,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VO1,[2,178]),o([6,33,123],$Vz1,{72:308,73:$VP1}),o($VQ1,[2,187]),{7:263,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:$Vn1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,119:310,120:$Vp,121:$Vq,122:$Vr,126:186,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VQ1,[2,193]),o($VQ1,[2,194]),o($VR1,[2,177]),o($VR1,[2,35]),{32:311,33:$Vd1,135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($VS1,[2,207],{144:80,135:105,141:106,136:$Vv,137:[1,312],138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VS1,[2,209],{144:80,135:105,141:106,136:$Vv,137:[1,313],138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VZ,[2,215]),o($VT1,[2,216],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],[2,220],{143:[1,314]}),o($VU1,[2,223]),{35:201,36:$V2,62:202,77:203,78:204,97:$Vl,121:$Vb1,122:$Vc1,146:315,148:200},o($VU1,[2,229],{73:[1,316]}),o($VV1,[2,225]),o($VV1,[2,226]),o($VV1,[2,227]),o($VV1,[2,228]),o($VZ,[2,222]),{7:317,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:318,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:319,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VW1,$Vz1,{72:320,73:$VX1}),o($VY1,[2,118]),o($VY1,[2,53],{60:[1,322]}),o($VZ1,[2,62],{57:[1,323]}),o($VY1,[2,58]),o($VZ1,[2,63]),o($V_1,[2,59]),o($V_1,[2,60]),o($V_1,[2,61]),{48:[1,324],81:121,87:$V$,88:$V01,90:$V11,91:$V21,92:$V31,93:117,95:$V41,114:120,116:$V51,117:$V_},o($VF1,$Vh1),{6:$VH,44:[1,325]},o($VI,[2,4]),o($V$1,[2,264],{144:80,135:105,141:106,166:$VM,167:$VN,168:$VO}),o($V$1,[2,265],{144:80,135:105,141:106,166:$VM,167:$VN,168:$VO}),o($VE1,[2,266],{144:80,135:105,141:106,166:$VM,168:$VO}),o($VE1,[2,267],{144:80,135:105,141:106,166:$VM,168:$VO}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,169,170,171,172,173,174,175,176,177],[2,268],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,170,171,172,173,174,175,176],[2,269],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,171,172,173,174,175,176],[2,270],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,172,173,174,175,176],[2,271],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,173,174,175,176],[2,272],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,174,175,176],[2,273],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,175,176],[2,274],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,176],[2,275],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,177:$VX}),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,170,171,172,173,174,175,176,177],[2,276],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP}),o($VT1,[2,253],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VT1,[2,252],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($V02,[2,167]),o($V02,[2,168]),{7:263,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:$Vn1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,118:[1,326],119:327,120:$Vp,121:$Vq,122:$Vr,126:186,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($Vr1,[2,106]),o($Vr1,[2,107]),o($Vr1,[2,108]),o($Vr1,[2,109]),{89:[1,328]},{76:$Vx1,89:[2,114],124:329,125:$Vy1,135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},{89:[2,115]},{7:330,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,89:[2,186],97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V12,[2,180]),o($V12,$V22),o($Vr1,[2,113]),o($V02,[2,169]),o($VH1,[2,50],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:331,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:332,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V02,[2,170]),o($V71,[2,104]),{89:[1,333],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},{69:334,70:$Vi,71:$Vj},o($V32,$V42,{75:128,35:130,62:131,77:132,78:133,74:335,36:$V2,76:$Va1,97:$Vl,121:$Vb1,122:$Vc1}),{6:$V52,33:$V62},o($VB1,[2,83]),{7:338,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VQ1,$VN1,{144:80,135:105,141:106,76:[1,339],136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($V72,[2,32]),{6:$VH,34:[1,340]},o($VI,[2,68],{144:80,135:105,141:106,136:$VI1,138:$VI1,142:$VI1,159:$VI1,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VH1,[2,277],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:341,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:342,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VH1,[2,280],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VZ,[2,251]),{7:343,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VZ,[2,198],{130:[1,344]}),{32:345,33:$Vd1},{32:348,33:$Vd1,35:346,36:$V2,78:347,97:$Vl},{153:349,155:278,156:$VG1},{34:[1,350],154:[1,351],155:352,156:$VG1},o($V82,[2,244]),{7:354,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,127:353,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V92,[2,124],{144:80,135:105,141:106,32:355,33:$Vd1,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VZ,[2,127]),{7:356,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VH1,[2,31],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VI,[2,66],{144:80,135:105,141:106,136:$VI1,138:$VI1,142:$VI1,159:$VI1,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{41:357,42:$V4,43:$V5},{97:[1,359],104:358,109:$Vm1},{41:360,42:$V4,43:$V5},{31:[1,361]},o($VW1,$Vz1,{72:362,73:$Va2}),o($VY1,[2,137]),{33:$VJ1,35:292,36:$V2,105:364,106:290,108:$VK1},o($VY1,[2,142],{107:[1,365]}),o($VY1,[2,144],{107:[1,366]}),{35:367,36:$V2},o($V61,[2,148]),o($VW1,$Vz1,{72:368,73:$Vb2}),o($VY1,[2,157]),{33:$VL1,35:299,36:$V2,108:$VM1,111:370,113:297},o($VY1,[2,162],{107:[1,371]}),o($VY1,[2,165],{107:[1,372]}),{6:[1,374],7:373,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,375],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($Vc2,[2,154],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{41:376,42:$V4,43:$V5},o($V71,[2,205]),{6:$VH,34:[1,377]},{7:378,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o([14,30,36,40,42,43,46,47,50,51,52,53,54,55,63,64,65,66,70,71,86,97,100,102,110,120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],$V22,{6:$Vd2,33:$Vd2,73:$Vd2,123:$Vd2}),{6:$Ve2,33:$Vf2,123:[1,379]},o([6,33,34,118,123],$V42,{17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,12:20,13:21,15:23,16:24,56:27,49:28,82:29,83:30,84:31,85:32,69:35,80:43,157:44,135:46,139:47,141:48,77:57,78:58,39:59,45:61,35:73,62:74,144:80,41:83,8:140,79:188,7:263,126:382,14:$V0,30:$Ve1,36:$V2,40:$V3,42:$V4,43:$V5,46:$V6,47:$V7,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,70:$Vi,71:$Vj,76:$Vo1,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,136:$Vv,138:$Vw,140:$Vx,142:$Vy,152:$Vz,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG}),o($V32,$Vz1,{72:383,73:$VP1}),o($Vg2,[2,248]),{7:384,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:385,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:386,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VU1,[2,224]),{35:201,36:$V2,62:202,77:203,78:204,97:$Vl,121:$Vb1,122:$Vc1,148:387},o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,159],[2,231],{144:80,135:105,141:106,137:[1,388],143:[1,389],162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($Vh2,[2,232],{144:80,135:105,141:106,137:[1,390],162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($Vh2,[2,238],{144:80,135:105,141:106,137:[1,391],162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{6:$Vi2,33:$Vj2,99:[1,392]},o($Vk2,$V42,{41:83,59:211,61:212,13:213,39:214,35:215,37:216,62:217,58:395,36:$V2,38:$Vq1,40:$V3,42:$V4,43:$V5,65:$Vg,121:$Vb1}),{7:396,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,397],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:398,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:[1,399],35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V71,[2,41]),o($Vu1,[2,39]),o($V02,[2,173]),o([6,33,118],$Vz1,{72:400,73:$VP1}),o($Vr1,[2,112]),{7:401,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,89:[2,184],97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{89:[2,185],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($VH1,[2,51],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{34:[1,402],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($V71,[2,105]),{32:403,33:$Vd1},o($VB1,[2,79]),{35:130,36:$V2,62:131,74:404,75:128,76:$Va1,77:132,78:133,97:$Vl,121:$Vb1,122:$Vc1},o($Vl2,$V91,{74:127,75:128,35:130,62:131,77:132,78:133,67:405,36:$V2,76:$Va1,97:$Vl,121:$Vb1,122:$Vc1}),o($VB1,[2,84],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VQ1,$Vd2),o($V72,[2,33]),{34:[1,406],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($VH1,[2,279],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{32:407,33:$Vd1,135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},{32:408,33:$Vd1},o($VZ,[2,199]),{32:409,33:$Vd1},{32:410,33:$Vd1},o($Vm2,[2,203]),{34:[1,411],154:[1,412],155:352,156:$VG1},o($VZ,[2,242]),{32:413,33:$Vd1},o($V82,[2,245]),{32:414,33:$Vd1,73:[1,415]},o($Vn2,[2,195],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VZ,[2,125]),o($V92,[2,128],{144:80,135:105,141:106,32:416,33:$Vd1,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($V61,[2,131]),{31:[1,417]},{33:$VJ1,35:292,36:$V2,105:418,106:290,108:$VK1},o($V61,[2,132]),{41:419,42:$V4,43:$V5},{6:$Vo2,33:$Vp2,99:[1,420]},o($Vk2,$V42,{35:292,106:423,36:$V2,108:$VK1}),o($V32,$Vz1,{72:424,73:$Va2}),{35:425,36:$V2},{35:426,36:$V2},{31:[2,147]},{6:$Vq2,33:$Vr2,99:[1,427]},o($Vk2,$V42,{35:299,113:430,36:$V2,108:$VM1}),o($V32,$Vz1,{72:431,73:$Vb2}),{35:432,36:$V2,108:[1,433]},{35:434,36:$V2},o($Vc2,[2,151],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:435,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:436,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($V61,[2,155]),{134:[1,437]},{123:[1,438],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($VO1,[2,179]),{7:263,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,126:439,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:263,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,33:$Vn1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,76:$Vo1,77:57,78:58,79:188,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,119:440,120:$Vp,121:$Vq,122:$Vr,126:186,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VQ1,[2,188]),{6:$Ve2,33:$Vf2,34:[1,441]},o($VT1,[2,208],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VT1,[2,210],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VT1,[2,221],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VU1,[2,230]),{7:442,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:443,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:444,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:445,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VO1,[2,116]),{13:213,35:215,36:$V2,37:216,38:$Vq1,39:214,40:$V3,41:83,42:$V4,43:$V5,58:446,59:211,61:212,62:217,65:$Vg,121:$Vb1},o($Vl2,$Vs1,{41:83,58:210,59:211,61:212,13:213,39:214,35:215,37:216,62:217,98:447,36:$V2,38:$Vq1,40:$V3,42:$V4,43:$V5,65:$Vg,121:$Vb1}),o($VY1,[2,119]),o($VY1,[2,54],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:448,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VY1,[2,56],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{7:449,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{6:$Ve2,33:$Vf2,118:[1,450]},{89:[2,183],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($VZ,[2,52]),o($VZ,[2,71]),o($VB1,[2,80]),o($V32,$Vz1,{72:451,73:$VA1}),o($VZ,[2,278]),o($Vg2,[2,249]),o($VZ,[2,200]),o($Vm2,[2,201]),o($Vm2,[2,202]),o($VZ,[2,240]),{32:452,33:$Vd1},{34:[1,453]},o($V82,[2,246],{6:[1,454]}),{7:455,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},o($VZ,[2,129]),{41:456,42:$V4,43:$V5},o($VW1,$Vz1,{72:457,73:$Va2}),o($V61,[2,133]),{31:[1,458]},{35:292,36:$V2,106:459,108:$VK1},{33:$VJ1,35:292,36:$V2,105:460,106:290,108:$VK1},o($VY1,[2,138]),{6:$Vo2,33:$Vp2,34:[1,461]},o($VY1,[2,143]),o($VY1,[2,145]),o($V61,[2,149],{31:[1,462]}),{35:299,36:$V2,108:$VM1,113:463},{33:$VL1,35:299,36:$V2,108:$VM1,111:464,113:297},o($VY1,[2,158]),{6:$Vq2,33:$Vr2,34:[1,465]},o($VY1,[2,163]),o($VY1,[2,164]),o($VY1,[2,166]),o($Vc2,[2,152],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),{34:[1,466],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($V71,[2,206]),o($V71,[2,182]),o($VQ1,[2,189]),o($V32,$Vz1,{72:467,73:$VP1}),o($VQ1,[2,190]),o([1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,159],[2,233],{144:80,135:105,141:106,143:[1,468],162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($Vh2,[2,235],{144:80,135:105,141:106,137:[1,469],162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VH1,[2,234],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VH1,[2,239],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VY1,[2,120]),o($V32,$Vz1,{72:470,73:$VX1}),{34:[1,471],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},{34:[1,472],135:105,136:$Vv,138:$Vw,141:106,142:$Vy,144:80,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX},o($V02,[2,174]),{6:$V52,33:$V62,34:[1,473]},{34:[1,474]},o($VZ,[2,243]),o($V82,[2,247]),o($Vn2,[2,196],{144:80,135:105,141:106,136:$Vv,138:$Vw,142:$Vy,159:$VJ,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($V61,[2,135]),{6:$Vo2,33:$Vp2,99:[1,475]},{41:476,42:$V4,43:$V5},o($VY1,[2,139]),o($V32,$Vz1,{72:477,73:$Va2}),o($VY1,[2,140]),{41:478,42:$V4,43:$V5},o($VY1,[2,159]),o($V32,$Vz1,{72:479,73:$Vb2}),o($VY1,[2,160]),o($V61,[2,153]),{6:$Ve2,33:$Vf2,34:[1,480]},{7:481,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{7:482,8:140,12:20,13:21,14:$V0,15:23,16:24,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:$Ve1,35:73,36:$V2,39:59,40:$V3,41:83,42:$V4,43:$V5,45:61,46:$V6,47:$V7,49:28,50:$V8,51:$V9,52:$Va,53:$Vb,54:$Vc,55:$Vd,56:27,62:74,63:$Ve,64:$Vf1,65:$Vg,66:$Vh,69:35,70:$Vi,71:$Vj,77:57,78:58,80:43,82:29,83:30,84:31,85:32,86:$Vk,97:$Vl,100:$Vm,102:$Vn,110:$Vo,120:$Vp,121:$Vq,122:$Vr,128:$Vs,132:$Vt,133:$Vu,135:46,136:$Vv,138:$Vw,139:47,140:$Vx,141:48,142:$Vy,144:80,152:$Vz,157:44,158:$VA,160:$VB,161:$VC,162:$VD,163:$VE,164:$VF,165:$VG},{6:$Vi2,33:$Vj2,34:[1,483]},o($VY1,[2,55]),o($VY1,[2,57]),o($VB1,[2,81]),o($VZ,[2,241]),{31:[1,484]},o($V61,[2,134]),{6:$Vo2,33:$Vp2,34:[1,485]},o($V61,[2,156]),{6:$Vq2,33:$Vr2,34:[1,486]},o($VQ1,[2,191]),o($VH1,[2,236],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VH1,[2,237],{144:80,135:105,141:106,162:$VK,163:$VL,166:$VM,167:$VN,168:$VO,169:$VP,170:$VQ,171:$VR,172:$VS,173:$VT,174:$VU,175:$VV,176:$VW,177:$VX}),o($VY1,[2,121]),{41:487,42:$V4,43:$V5},o($VY1,[2,141]),o($VY1,[2,161]),o($V61,[2,136])], +defaultActions: {71:[2,73],72:[2,74],246:[2,115],367:[2,147]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; + + throw new _parseError(str, hash); + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; + +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = ''; + var fs = require('fs'); + if (typeof fs !== 'undefined' && fs !== null) + source = fs.readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +} + return module.exports; +})();require['./scope'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var Scope, + 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; }; + + exports.Scope = Scope = class Scope { + constructor(parent, expressions, method, referencedVars) { + var ref, ref1; + this.parent = parent; + this.expressions = expressions; + this.method = method; + this.referencedVars = referencedVars; + this.variables = [ + { + name: 'arguments', + type: 'arguments' + } + ]; + this.positions = {}; + if (!this.parent) { + this.utilities = {}; + } + this.root = (ref = (ref1 = this.parent) != null ? ref1.root : void 0) != null ? ref : this; + } + + add(name, type, immediate) { + if (this.shared && !immediate) { + return this.parent.add(name, type, immediate); + } + if (Object.prototype.hasOwnProperty.call(this.positions, name)) { + return this.variables[this.positions[name]].type = type; + } else { + return this.positions[name] = this.variables.push({name, type}) - 1; + } + } + + namedMethod() { + var ref; + if (((ref = this.method) != null ? ref.name : void 0) || !this.parent) { + return this.method; + } + return this.parent.namedMethod(); + } + + find(name, type = 'var') { + if (this.check(name)) { + return true; + } + this.add(name, type); + return false; + } + + parameter(name) { + if (this.shared && this.parent.check(name, true)) { + return; + } + return this.add(name, 'param'); + } + + check(name) { + var ref; + return !!(this.type(name) || ((ref = this.parent) != null ? ref.check(name) : void 0)); + } + + temporary(name, index, single = false) { + var diff, endCode, letter, newCode, num, startCode; + if (single) { + startCode = name.charCodeAt(0); + endCode = 'z'.charCodeAt(0); + diff = endCode - startCode; + newCode = startCode + index % (diff + 1); + letter = String.fromCharCode(newCode); + num = Math.floor(index / (diff + 1)); + return `${letter}${num || ''}`; + } else { + return `${name}${index || ''}`; + } + } + + type(name) { + var i, len, ref, v; + ref = this.variables; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.name === name) { + return v.type; + } + } + return null; + } + + freeVariable(name, options = {}) { + var index, ref, temp; + index = 0; + while (true) { + temp = this.temporary(name, index, options.single); + if (!(this.check(temp) || indexOf.call(this.root.referencedVars, temp) >= 0)) { + break; + } + index++; + } + if ((ref = options.reserve) != null ? ref : true) { + this.add(temp, 'var', true); + } + return temp; + } + + assign(name, value) { + this.add(name, { + value, + assigned: true + }, true); + return this.hasAssignments = true; + } + + hasDeclarations() { + return !!this.declaredVariables().length; + } + + declaredVariables() { + var v; + return ((function() { + var i, len, ref, results; + ref = this.variables; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.type === 'var') { + results.push(v.name); + } + } + return results; + }).call(this)).sort(); + } + + assignedVariables() { + var i, len, ref, results, v; + ref = this.variables; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.type.assigned) { + results.push(`${v.name} = ${v.type.value}`); + } + } + return results; + } + + }; + +}).call(this); + + return module.exports; +})();require['./nodes'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var Access, Arr, Assign, AwaitReturn, Base, Block, BooleanLiteral, Call, Class, Code, CodeFragment, Comment, ExecutableClassBody, Existence, Expansion, ExportAllDeclaration, ExportDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, ExportSpecifierList, Extends, For, HoistTarget, IdentifierLiteral, If, ImportClause, ImportDeclaration, ImportDefaultSpecifier, ImportNamespaceSpecifier, ImportSpecifier, ImportSpecifierList, In, Index, InfinityLiteral, JS_FORBIDDEN, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, ModuleDeclaration, ModuleSpecifier, ModuleSpecifierList, NEGATE, NO, NaNLiteral, NullLiteral, NumberLiteral, Obj, Op, Param, Parens, PassthroughLiteral, PropertyName, Range, RegexLiteral, RegexWithInterpolations, Return, SIMPLENUM, Scope, Slice, Splat, StatementLiteral, StringLiteral, StringWithInterpolations, Super, SuperCall, Switch, TAB, THIS, TaggedTemplateCall, ThisLiteral, Throw, Try, UTILITIES, UndefinedLiteral, Value, While, YES, YieldReturn, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isLiteralArguments, isLiteralThis, isUnassignable, locationDataToString, merge, multident, shouldCacheOrIsAssignable, some, starts, throwSyntaxError, unfoldSoak, utility, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + slice = [].slice; + + Error.stackTraceLimit = 2e308; + + ({Scope} = require('./scope')); + + ({isUnassignable, JS_FORBIDDEN} = require('./lexer')); + + ({compact, flatten, extend, merge, del, starts, ends, some, addLocationDataFn, locationDataToString, throwSyntaxError} = require('./helpers')); + + exports.extend = extend; + + exports.addLocationDataFn = addLocationDataFn; + + YES = function() { + return true; + }; + + NO = function() { + return false; + }; + + THIS = function() { + return this; + }; + + NEGATE = function() { + this.negated = !this.negated; + return this; + }; + + exports.CodeFragment = CodeFragment = class CodeFragment { + constructor(parent, code) { + var ref1; + this.code = `${code}`; + this.locationData = parent != null ? parent.locationData : void 0; + this.type = (parent != null ? (ref1 = parent.constructor) != null ? ref1.name : void 0 : void 0) || 'unknown'; + } + + toString() { + return `${this.code}${(this.locationData ? ": " + locationDataToString(this.locationData) : '')}`; + } + + }; + + fragmentsToText = function(fragments) { + var fragment; + return ((function() { + var j, len1, results; + results = []; + for (j = 0, len1 = fragments.length; j < len1; j++) { + fragment = fragments[j]; + results.push(fragment.code); + } + return results; + })()).join(''); + }; + + exports.Base = Base = (function() { + class Base { + compile(o, lvl) { + return fragmentsToText(this.compileToFragments(o, lvl)); + } + + compileToFragments(o, lvl) { + var node; + o = extend({}, o); + if (lvl) { + o.level = lvl; + } + node = this.unfoldSoak(o) || this; + node.tab = o.indent; + if (o.level === LEVEL_TOP || !node.isStatement(o)) { + return node.compileNode(o); + } else { + return node.compileClosure(o); + } + } + + compileClosure(o) { + var args, argumentsNode, func, jumpNode, meth, parts, ref1, ref2; + if (jumpNode = this.jumps()) { + jumpNode.error('cannot use a pure statement in an expression'); + } + o.sharedScope = true; + func = new Code([], Block.wrap([this])); + args = []; + if (this.contains((function(node) { + return node instanceof SuperCall; + }))) { + func.bound = true; + } else if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { + args = [new ThisLiteral]; + if (argumentsNode) { + meth = 'apply'; + args.push(new IdentifierLiteral('arguments')); + } else { + meth = 'call'; + } + func = new Value(func, [new Access(new PropertyName(meth))]); + } + parts = (new Call(func, args)).compileNode(o); + switch (false) { + case !(func.isGenerator || ((ref1 = func.base) != null ? ref1.isGenerator : void 0)): + parts.unshift(this.makeCode("(yield* ")); + parts.push(this.makeCode(")")); + break; + case !(func.isAsync || ((ref2 = func.base) != null ? ref2.isAsync : void 0)): + parts.unshift(this.makeCode("(await ")); + parts.push(this.makeCode(")")); + } + return parts; + } + + cache(o, level, shouldCache) { + var complex, ref, sub; + complex = shouldCache != null ? shouldCache(this) : this.shouldCache(); + if (complex) { + ref = new IdentifierLiteral(o.scope.freeVariable('ref')); + sub = new Assign(ref, this); + if (level) { + return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]]; + } else { + return [sub, ref]; + } + } else { + ref = level ? this.compileToFragments(o, level) : this; + return [ref, ref]; + } + } + + hoist() { + var compileNode, compileToFragments, target; + this.hoisted = true; + target = new HoistTarget(this); + compileNode = this.compileNode; + compileToFragments = this.compileToFragments; + this.compileNode = function(o) { + return target.update(compileNode, o); + }; + this.compileToFragments = function(o) { + return target.update(compileToFragments, o); + }; + return target; + } + + cacheToCodeFragments(cacheValues) { + return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])]; + } + + makeReturn(res) { + var me; + me = this.unwrapAll(); + if (res) { + return new Call(new Literal(`${res}.push`), [me]); + } else { + return new Return(me); + } + } + + contains(pred) { + var node; + node = void 0; + this.traverseChildren(false, function(n) { + if (pred(n)) { + node = n; + return false; + } + }); + return node; + } + + lastNonComment(list) { + var i; + i = list.length; + while (i--) { + if (!(list[i] instanceof Comment)) { + return list[i]; + } + } + return null; + } + + toString(idt = '', name = this.constructor.name) { + var tree; + tree = '\n' + idt + name; + if (this.soak) { + tree += '?'; + } + this.eachChild(function(node) { + return tree += node.toString(idt + TAB); + }); + return tree; + } + + eachChild(func) { + var attr, child, j, k, len1, len2, ref1, ref2; + if (!this.children) { + return this; + } + ref1 = this.children; + for (j = 0, len1 = ref1.length; j < len1; j++) { + attr = ref1[j]; + if (this[attr]) { + ref2 = flatten([this[attr]]); + for (k = 0, len2 = ref2.length; k < len2; k++) { + child = ref2[k]; + if (func(child) === false) { + return this; + } + } + } + } + return this; + } + + traverseChildren(crossScope, func) { + return this.eachChild(function(child) { + var recur; + recur = func(child); + if (recur !== false) { + return child.traverseChildren(crossScope, func); + } + }); + } + + replaceInContext(match, replacement) { + var attr, child, children, i, j, k, len1, len2, ref1, ref2; + if (!this.children) { + return false; + } + ref1 = this.children; + for (j = 0, len1 = ref1.length; j < len1; j++) { + attr = ref1[j]; + if (children = this[attr]) { + if (Array.isArray(children)) { + for (i = k = 0, len2 = children.length; k < len2; i = ++k) { + child = children[i]; + if (match(child)) { + [].splice.apply(children, [i, i - i + 1].concat(ref2 = replacement(child, this))), ref2; + return true; + } else { + if (child.replaceInContext(match, replacement)) { + return true; + } + } + } + } else if (match(children)) { + this[attr] = replacement(children, this); + return true; + } else { + if (children.replaceInContext(match, replacement)) { + return true; + } + } + } + } + } + + invert() { + return new Op('!', this); + } + + unwrapAll() { + var node; + node = this; + while (node !== (node = node.unwrap())) { + continue; + } + return node; + } + + updateLocationDataIfMissing(locationData) { + if (this.locationData) { + return this; + } + this.locationData = locationData; + return this.eachChild(function(child) { + return child.updateLocationDataIfMissing(locationData); + }); + } + + error(message) { + return throwSyntaxError(message, this.locationData); + } + + makeCode(code) { + return new CodeFragment(this, code); + } + + wrapInParentheses(fragments) { + return [].concat(this.makeCode('('), fragments, this.makeCode(')')); + } + + joinFragmentArrays(fragmentsList, joinStr) { + var answer, fragments, i, j, len1; + answer = []; + for (i = j = 0, len1 = fragmentsList.length; j < len1; i = ++j) { + fragments = fragmentsList[i]; + if (i) { + answer.push(this.makeCode(joinStr)); + } + answer = answer.concat(fragments); + } + return answer; + } + + }; + + Base.prototype.children = []; + + Base.prototype.isStatement = NO; + + Base.prototype.jumps = NO; + + Base.prototype.shouldCache = YES; + + Base.prototype.isChainable = NO; + + Base.prototype.isAssignable = NO; + + Base.prototype.isNumber = NO; + + Base.prototype.unwrap = THIS; + + Base.prototype.unfoldSoak = NO; + + Base.prototype.assigns = NO; + + return Base; + + })(); + + exports.HoistTarget = HoistTarget = class HoistTarget extends Base { + static expand(fragments) { + var fragment, i, j, ref1; + for (i = j = fragments.length - 1; j >= 0; i = j += -1) { + fragment = fragments[i]; + if (fragment.fragments) { + [].splice.apply(fragments, [i, i - i + 1].concat(ref1 = this.expand(fragment.fragments))), ref1; + } + } + return fragments; + } + + constructor(source1) { + super(); + this.source = source1; + this.options = {}; + this.targetFragments = { + fragments: [] + }; + } + + isStatement(o) { + return this.source.isStatement(o); + } + + update(compile, o) { + return this.targetFragments.fragments = compile.call(this.source, merge(o, this.options)); + } + + compileToFragments(o, level) { + this.options.indent = o.indent; + this.options.level = level != null ? level : o.level; + return [this.targetFragments]; + } + + compileNode(o) { + return this.compileToFragments(o); + } + + compileClosure(o) { + return this.compileToFragments(o); + } + + }; + + exports.Block = Block = (function() { + class Block extends Base { + constructor(nodes) { + super(); + this.expressions = compact(flatten(nodes || [])); + } + + push(node) { + this.expressions.push(node); + return this; + } + + pop() { + return this.expressions.pop(); + } + + unshift(node) { + this.expressions.unshift(node); + return this; + } + + unwrap() { + if (this.expressions.length === 1) { + return this.expressions[0]; + } else { + return this; + } + } + + isEmpty() { + return !this.expressions.length; + } + + isStatement(o) { + var exp, j, len1, ref1; + ref1 = this.expressions; + for (j = 0, len1 = ref1.length; j < len1; j++) { + exp = ref1[j]; + if (exp.isStatement(o)) { + return true; + } + } + return false; + } + + jumps(o) { + var exp, j, jumpNode, len1, ref1; + ref1 = this.expressions; + for (j = 0, len1 = ref1.length; j < len1; j++) { + exp = ref1[j]; + if (jumpNode = exp.jumps(o)) { + return jumpNode; + } + } + } + + makeReturn(res) { + var expr, len; + len = this.expressions.length; + while (len--) { + expr = this.expressions[len]; + if (!(expr instanceof Comment)) { + this.expressions[len] = expr.makeReturn(res); + if (expr instanceof Return && !expr.expression) { + this.expressions.splice(len, 1); + } + break; + } + } + return this; + } + + compileToFragments(o = {}, level) { + if (o.scope) { + return super.compileToFragments(o, level); + } else { + return this.compileRoot(o); + } + } + + compileNode(o) { + var answer, compiledNodes, fragments, index, j, len1, node, ref1, top; + this.tab = o.indent; + top = o.level === LEVEL_TOP; + compiledNodes = []; + ref1 = this.expressions; + for (index = j = 0, len1 = ref1.length; j < len1; index = ++j) { + node = ref1[index]; + node = node.unwrapAll(); + node = node.unfoldSoak(o) || node; + if (node instanceof Block) { + compiledNodes.push(node.compileNode(o)); + } else if (node.hoisted) { + node.compileToFragments(o); + } else if (top) { + node.front = true; + fragments = node.compileToFragments(o); + if (!node.isStatement(o)) { + fragments.unshift(this.makeCode(`${this.tab}`)); + fragments.push(this.makeCode(";")); + } + compiledNodes.push(fragments); + } else { + compiledNodes.push(node.compileToFragments(o, LEVEL_LIST)); + } + } + if (top) { + if (this.spaced) { + return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n")); + } else { + return this.joinFragmentArrays(compiledNodes, '\n'); + } + } + if (compiledNodes.length) { + answer = this.joinFragmentArrays(compiledNodes, ', '); + } else { + answer = [this.makeCode("void 0")]; + } + if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) { + return this.wrapInParentheses(answer); + } else { + return answer; + } + } + + compileRoot(o) { + var exp, fragments, i, j, len1, name, prelude, preludeExps, ref1, ref2, rest; + o.indent = o.bare ? '' : TAB; + o.level = LEVEL_TOP; + this.spaced = true; + o.scope = new Scope(null, this, null, (ref1 = o.referencedVars) != null ? ref1 : []); + ref2 = o.locals || []; + for (j = 0, len1 = ref2.length; j < len1; j++) { + name = ref2[j]; + o.scope.parameter(name); + } + prelude = []; + if (!o.bare) { + preludeExps = (function() { + var k, len2, ref3, results; + ref3 = this.expressions; + results = []; + for (i = k = 0, len2 = ref3.length; k < len2; i = ++k) { + exp = ref3[i]; + if (!(exp.unwrap() instanceof Comment)) { + break; + } + results.push(exp); + } + return results; + }).call(this); + rest = this.expressions.slice(preludeExps.length); + this.expressions = preludeExps; + if (preludeExps.length) { + prelude = this.compileNode(merge(o, { + indent: '' + })); + prelude.push(this.makeCode("\n")); + } + this.expressions = rest; + } + fragments = this.compileWithDeclarations(o); + HoistTarget.expand(fragments); + if (o.bare) { + return fragments; + } + return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n")); + } + + compileWithDeclarations(o) { + var assigns, declars, exp, fragments, i, j, len1, post, ref1, rest, scope, spaced; + fragments = []; + post = []; + ref1 = this.expressions; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + exp = ref1[i]; + exp = exp.unwrap(); + if (!(exp instanceof Comment || exp instanceof Literal)) { + break; + } + } + o = merge(o, { + level: LEVEL_TOP + }); + if (i) { + rest = this.expressions.splice(i, 9e9); + [spaced, this.spaced] = [this.spaced, false]; + [fragments, this.spaced] = [this.compileNode(o), spaced]; + this.expressions = rest; + } + post = this.compileNode(o); + ({scope} = o); + if (scope.expressions === this) { + declars = o.scope.hasDeclarations(); + assigns = scope.hasAssignments; + if (declars || assigns) { + if (i) { + fragments.push(this.makeCode('\n')); + } + fragments.push(this.makeCode(`${this.tab}var `)); + if (declars) { + fragments.push(this.makeCode(scope.declaredVariables().join(', '))); + } + if (assigns) { + if (declars) { + fragments.push(this.makeCode(`,\n${this.tab + TAB}`)); + } + fragments.push(this.makeCode(scope.assignedVariables().join(`,\n${this.tab + TAB}`))); + } + fragments.push(this.makeCode(`;\n${(this.spaced ? '\n' : '')}`)); + } else if (fragments.length && post.length) { + fragments.push(this.makeCode("\n")); + } + } + return fragments.concat(post); + } + + static wrap(nodes) { + if (nodes.length === 1 && nodes[0] instanceof Block) { + return nodes[0]; + } + return new Block(nodes); + } + + }; + + Block.prototype.children = ['expressions']; + + return Block; + + })(); + + exports.Literal = Literal = (function() { + class Literal extends Base { + constructor(value1) { + super(); + this.value = value1; + } + + assigns(name) { + return name === this.value; + } + + compileNode(o) { + return [this.makeCode(this.value)]; + } + + toString() { + return ` ${(this.isStatement() ? super.toString() : this.constructor.name)}: ${this.value}`; + } + + }; + + Literal.prototype.shouldCache = NO; + + return Literal; + + })(); + + exports.NumberLiteral = NumberLiteral = class NumberLiteral extends Literal {}; + + exports.InfinityLiteral = InfinityLiteral = class InfinityLiteral extends NumberLiteral { + compileNode() { + return [this.makeCode('2e308')]; + } + + }; + + exports.NaNLiteral = NaNLiteral = class NaNLiteral extends NumberLiteral { + constructor() { + super('NaN'); + } + + compileNode(o) { + var code; + code = [this.makeCode('0/0')]; + if (o.level >= LEVEL_OP) { + return this.wrapInParentheses(code); + } else { + return code; + } + } + + }; + + exports.StringLiteral = StringLiteral = class StringLiteral extends Literal {}; + + exports.RegexLiteral = RegexLiteral = class RegexLiteral extends Literal {}; + + exports.PassthroughLiteral = PassthroughLiteral = class PassthroughLiteral extends Literal {}; + + exports.IdentifierLiteral = IdentifierLiteral = (function() { + class IdentifierLiteral extends Literal { + eachName(iterator) { + return iterator(this); + } + + }; + + IdentifierLiteral.prototype.isAssignable = YES; + + return IdentifierLiteral; + + })(); + + exports.PropertyName = PropertyName = (function() { + class PropertyName extends Literal {}; + + PropertyName.prototype.isAssignable = YES; + + return PropertyName; + + })(); + + exports.StatementLiteral = StatementLiteral = (function() { + class StatementLiteral extends Literal { + jumps(o) { + if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { + return this; + } + if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { + return this; + } + } + + compileNode(o) { + return [this.makeCode(`${this.tab}${this.value};`)]; + } + + }; + + StatementLiteral.prototype.isStatement = YES; + + StatementLiteral.prototype.makeReturn = THIS; + + return StatementLiteral; + + })(); + + exports.ThisLiteral = ThisLiteral = class ThisLiteral extends Literal { + constructor() { + super('this'); + } + + compileNode(o) { + var code, ref1; + code = ((ref1 = o.scope.method) != null ? ref1.bound : void 0) ? o.scope.method.context : this.value; + return [this.makeCode(code)]; + } + + }; + + exports.UndefinedLiteral = UndefinedLiteral = class UndefinedLiteral extends Literal { + constructor() { + super('undefined'); + } + + compileNode(o) { + return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')]; + } + + }; + + exports.NullLiteral = NullLiteral = class NullLiteral extends Literal { + constructor() { + super('null'); + } + + }; + + exports.BooleanLiteral = BooleanLiteral = class BooleanLiteral extends Literal {}; + + exports.Return = Return = (function() { + class Return extends Base { + constructor(expression1) { + super(); + this.expression = expression1; + } + + compileToFragments(o, level) { + var expr, ref1; + expr = (ref1 = this.expression) != null ? ref1.makeReturn() : void 0; + if (expr && !(expr instanceof Return)) { + return expr.compileToFragments(o, level); + } else { + return super.compileToFragments(o, level); + } + } + + compileNode(o) { + var answer; + answer = []; + answer.push(this.makeCode(this.tab + `return${(this.expression ? " " : "")}`)); + if (this.expression) { + answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN)); + } + answer.push(this.makeCode(";")); + return answer; + } + + }; + + Return.prototype.children = ['expression']; + + Return.prototype.isStatement = YES; + + Return.prototype.makeReturn = THIS; + + Return.prototype.jumps = THIS; + + return Return; + + })(); + + exports.YieldReturn = YieldReturn = class YieldReturn extends Return { + compileNode(o) { + if (o.scope.parent == null) { + this.error('yield can only occur inside functions'); + } + return super.compileNode(o); + } + + }; + + exports.AwaitReturn = AwaitReturn = class AwaitReturn extends Return { + compileNode(o) { + if (o.scope.parent == null) { + this.error('await can only occur inside functions'); + } + return super.compileNode(o); + } + + }; + + exports.Value = Value = (function() { + class Value extends Base { + constructor(base, props, tag, isDefaultValue = false) { + if (!props && base instanceof Value) { + return base; + } + super(); + this.base = base; + this.properties = props || []; + if (tag) { + this[tag] = true; + } + this.isDefaultValue = isDefaultValue; + return this; + } + + add(props) { + this.properties = this.properties.concat(props); + return this; + } + + hasProperties() { + return !!this.properties.length; + } + + bareLiteral(type) { + return !this.properties.length && this.base instanceof type; + } + + isArray() { + return this.bareLiteral(Arr); + } + + isRange() { + return this.bareLiteral(Range); + } + + shouldCache() { + return this.hasProperties() || this.base.shouldCache(); + } + + isAssignable() { + return this.hasProperties() || this.base.isAssignable(); + } + + isNumber() { + return this.bareLiteral(NumberLiteral); + } + + isString() { + return this.bareLiteral(StringLiteral); + } + + isRegex() { + return this.bareLiteral(RegexLiteral); + } + + isUndefined() { + return this.bareLiteral(UndefinedLiteral); + } + + isNull() { + return this.bareLiteral(NullLiteral); + } + + isBoolean() { + return this.bareLiteral(BooleanLiteral); + } + + isAtomic() { + var j, len1, node, ref1; + ref1 = this.properties.concat(this.base); + for (j = 0, len1 = ref1.length; j < len1; j++) { + node = ref1[j]; + if (node.soak || node instanceof Call) { + return false; + } + } + return true; + } + + isNotCallable() { + return this.isNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject() || this.isUndefined() || this.isNull() || this.isBoolean(); + } + + isStatement(o) { + return !this.properties.length && this.base.isStatement(o); + } + + assigns(name) { + return !this.properties.length && this.base.assigns(name); + } + + jumps(o) { + return !this.properties.length && this.base.jumps(o); + } + + isObject(onlyGenerated) { + if (this.properties.length) { + return false; + } + return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); + } + + isSplice() { + var lastProp, ref1; + ref1 = this.properties, lastProp = ref1[ref1.length - 1]; + return lastProp instanceof Slice; + } + + looksStatic(className) { + var ref1; + return (this["this"] || this.base instanceof ThisLiteral || this.base.value === className) && this.properties.length === 1 && ((ref1 = this.properties[0].name) != null ? ref1.value : void 0) !== 'prototype'; + } + + unwrap() { + if (this.properties.length) { + return this; + } else { + return this.base; + } + } + + cacheReference(o) { + var base, bref, name, nref, ref1; + ref1 = this.properties, name = ref1[ref1.length - 1]; + if (this.properties.length < 2 && !this.base.shouldCache() && !(name != null ? name.shouldCache() : void 0)) { + return [this, this]; + } + base = new Value(this.base, this.properties.slice(0, -1)); + if (base.shouldCache()) { + bref = new IdentifierLiteral(o.scope.freeVariable('base')); + base = new Value(new Parens(new Assign(bref, base))); + } + if (!name) { + return [base, bref]; + } + if (name.shouldCache()) { + nref = new IdentifierLiteral(o.scope.freeVariable('name')); + name = new Index(new Assign(nref, name.index)); + nref = new Index(nref); + } + return [base.add(name), new Value(bref || base.base, [nref || name])]; + } + + compileNode(o) { + var fragments, j, len1, prop, props; + this.base.front = this.front; + props = this.properties; + fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null)); + if (props.length && SIMPLENUM.test(fragmentsToText(fragments))) { + fragments.push(this.makeCode('.')); + } + for (j = 0, len1 = props.length; j < len1; j++) { + prop = props[j]; + fragments.push(...prop.compileToFragments(o)); + } + return fragments; + } + + unfoldSoak(o) { + return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (() => { + var fst, i, ifn, j, len1, prop, ref, ref1, snd; + if (ifn = this.base.unfoldSoak(o)) { + ifn.body.properties.push(...this.properties); + return ifn; + } + ref1 = this.properties; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + prop = ref1[i]; + if (!prop.soak) { + continue; + } + prop.soak = false; + fst = new Value(this.base, this.properties.slice(0, i)); + snd = new Value(this.base, this.properties.slice(i)); + if (fst.shouldCache()) { + 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: true + }); + } + return false; + })(); + } + + eachName(iterator) { + if (this.hasProperties()) { + return iterator(this); + } else if (this.base.isAssignable()) { + return this.base.eachName(iterator); + } else { + return this.error('tried to assign to unassignable value'); + } + } + + }; + + Value.prototype.children = ['base', 'properties']; + + return Value; + + })(); + + exports.Comment = Comment = (function() { + class Comment extends Base { + constructor(comment1) { + super(); + this.comment = comment1; + } + + compileNode(o, level) { + var code, comment; + comment = this.comment.replace(/^(\s*)#(?=\s)/gm, "$1 *"); + code = `/*${multident(comment, this.tab)}${(indexOf.call(comment, '\n') >= 0 ? `\n${this.tab}` : '')} */`; + if ((level || o.level) === LEVEL_TOP) { + code = o.indent + code; + } + return [this.makeCode("\n"), this.makeCode(code)]; + } + + }; + + Comment.prototype.isStatement = YES; + + Comment.prototype.makeReturn = THIS; + + return Comment; + + })(); + + exports.Call = Call = (function() { + class Call extends Base { + constructor(variable1, args1 = [], soak1) { + super(); + this.variable = variable1; + this.args = args1; + this.soak = soak1; + this.isNew = false; + if (this.variable instanceof Value && this.variable.isNotCallable()) { + this.variable.error("literal is not a function"); + } + } + + updateLocationDataIfMissing(locationData) { + var base, ref1; + if (this.locationData && this.needsUpdatedStartLocation) { + this.locationData.first_line = locationData.first_line; + this.locationData.first_column = locationData.first_column; + base = ((ref1 = this.variable) != null ? ref1.base : void 0) || this.variable; + if (base.needsUpdatedStartLocation) { + this.variable.locationData.first_line = locationData.first_line; + this.variable.locationData.first_column = locationData.first_column; + base.updateLocationDataIfMissing(locationData); + } + delete this.needsUpdatedStartLocation; + } + return super.updateLocationDataIfMissing(locationData); + } + + newInstance() { + var base, ref1; + base = ((ref1 = this.variable) != null ? ref1.base : void 0) || this.variable; + if (base instanceof Call && !base.isNew) { + base.newInstance(); + } else { + this.isNew = true; + } + this.needsUpdatedStartLocation = true; + return this; + } + + unfoldSoak(o) { + var call, ifn, j, left, len1, list, ref1, rite; + if (this.soak) { + if (this.variable instanceof Super) { + left = new Literal(this.variable.compile(o)); + rite = new Value(left); + if (this.variable.accessor == null) { + this.variable.error("Unsupported reference to 'super'"); + } + } else { + if (ifn = unfoldSoak(o, this, 'variable')) { + return ifn; + } + [left, rite] = new Value(this.variable).cacheReference(o); + } + rite = new Call(rite, this.args); + rite.isNew = this.isNew; + left = new Literal(`typeof ${left.compile(o)} === \"function\"`); + return new If(left, new Value(rite), { + soak: true + }); + } + call = this; + list = []; + while (true) { + if (call.variable instanceof Call) { + list.push(call); + call = call.variable; + continue; + } + if (!(call.variable instanceof Value)) { + break; + } + list.push(call); + if (!((call = call.variable.base) instanceof Call)) { + break; + } + } + ref1 = list.reverse(); + for (j = 0, len1 = ref1.length; j < len1; j++) { + call = ref1[j]; + if (ifn) { + if (call.variable instanceof Call) { + call.variable = ifn; + } else { + call.variable.base = ifn; + } + } + ifn = unfoldSoak(o, call, 'variable'); + } + return ifn; + } + + compileNode(o) { + var arg, argIndex, compiledArgs, fragments, j, len1, ref1, ref2; + if ((ref1 = this.variable) != null) { + ref1.front = this.front; + } + compiledArgs = []; + ref2 = this.args; + for (argIndex = j = 0, len1 = ref2.length; j < len1; argIndex = ++j) { + arg = ref2[argIndex]; + if (argIndex) { + compiledArgs.push(this.makeCode(", ")); + } + compiledArgs.push(...arg.compileToFragments(o, LEVEL_LIST)); + } + fragments = []; + if (this.isNew) { + if (this.variable instanceof Super) { + this.variable.error("Unsupported reference to 'super'"); + } + fragments.push(this.makeCode('new ')); + } + fragments.push(...this.variable.compileToFragments(o, LEVEL_ACCESS)); + fragments.push(this.makeCode('('), ...compiledArgs, this.makeCode(')')); + return fragments; + } + + }; + + Call.prototype.children = ['variable', 'args']; + + return Call; + + })(); + + exports.SuperCall = SuperCall = (function() { + class SuperCall extends Call { + isStatement(o) { + var ref1; + return ((ref1 = this.expressions) != null ? ref1.length : void 0) && o.level === LEVEL_TOP; + } + + compileNode(o) { + var ref, ref1, replacement, superCall; + if (!((ref1 = this.expressions) != null ? ref1.length : void 0)) { + return super.compileNode(o); + } + superCall = new Literal(fragmentsToText(super.compileNode(o))); + replacement = new Block(this.expressions.slice()); + if (o.level > LEVEL_TOP) { + [superCall, ref] = superCall.cache(o, null, YES); + replacement.push(ref); + } + replacement.unshift(superCall); + return replacement.compileToFragments(o, o.level === LEVEL_TOP ? o.level : LEVEL_LIST); + } + + }; + + SuperCall.prototype.children = Call.prototype.children.concat(['expressions']); + + return SuperCall; + + })(); + + exports.Super = Super = (function() { + class Super extends Base { + constructor(accessor) { + super(); + this.accessor = accessor; + } + + compileNode(o) { + var method, name, nref, variable; + method = o.scope.namedMethod(); + if (!(method != null ? method.isMethod : void 0)) { + this.error('cannot use super outside of an instance method'); + } + this.inCtor = !!method.ctor; + if (!(this.inCtor || (this.accessor != null))) { + ({name, variable} = method); + if (name.shouldCache() || (name instanceof Index && name.index.isAssignable())) { + nref = new IdentifierLiteral(o.scope.parent.freeVariable('name')); + name.index = new Assign(nref, name.index); + } + this.accessor = nref != null ? new Index(nref) : name; + } + return (new Value(new Literal('super'), this.accessor ? [this.accessor] : [])).compileToFragments(o); + } + + }; + + Super.prototype.children = ['accessor']; + + return Super; + + })(); + + exports.RegexWithInterpolations = RegexWithInterpolations = class RegexWithInterpolations extends Call { + constructor(args = []) { + super(new Value(new IdentifierLiteral('RegExp')), args, false); + } + + }; + + exports.TaggedTemplateCall = TaggedTemplateCall = class TaggedTemplateCall extends Call { + constructor(variable, arg, soak) { + if (arg instanceof StringLiteral) { + arg = new StringWithInterpolations(Block.wrap([new Value(arg)])); + } + super(variable, [arg], soak); + } + + compileNode(o) { + return this.variable.compileToFragments(o, LEVEL_ACCESS).concat(this.args[0].compileToFragments(o, LEVEL_LIST)); + } + + }; + + exports.Extends = Extends = (function() { + class Extends extends Base { + constructor(child1, parent1) { + super(); + this.child = child1; + this.parent = parent1; + } + + compileToFragments(o) { + return new Call(new Value(new Literal(utility('extend', o))), [this.child, this.parent]).compileToFragments(o); + } + + }; + + Extends.prototype.children = ['child', 'parent']; + + return Extends; + + })(); + + exports.Access = Access = (function() { + class Access extends Base { + constructor(name1, tag) { + super(); + this.name = name1; + this.soak = tag === 'soak'; + } + + compileToFragments(o) { + var name, node, ref1; + name = this.name.compileToFragments(o); + node = this.name.unwrap(); + if (node instanceof PropertyName) { + if (ref1 = node.value, indexOf.call(JS_FORBIDDEN, ref1) >= 0) { + return [this.makeCode('["'), ...name, this.makeCode('"]')]; + } else { + return [this.makeCode('.'), ...name]; + } + } else { + return [this.makeCode('['), ...name, this.makeCode(']')]; + } + } + + }; + + Access.prototype.children = ['name']; + + Access.prototype.shouldCache = NO; + + return Access; + + })(); + + exports.Index = Index = (function() { + class Index extends Base { + constructor(index1) { + super(); + this.index = index1; + } + + compileToFragments(o) { + return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]")); + } + + shouldCache() { + return this.index.shouldCache(); + } + + }; + + Index.prototype.children = ['index']; + + return Index; + + })(); + + exports.Range = Range = (function() { + class Range extends Base { + constructor(from1, to1, tag) { + super(); + this.from = from1; + this.to = to1; + this.exclusive = tag === 'exclusive'; + this.equals = this.exclusive ? '' : '='; + } + + compileVariables(o) { + var shouldCache, step; + o = merge(o, { + top: true + }); + shouldCache = del(o, 'shouldCache'); + [this.fromC, this.fromVar] = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST, shouldCache)); + [this.toC, this.toVar] = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST, shouldCache)); + if (step = del(o, 'step')) { + [this.step, this.stepVar] = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST, shouldCache)); + } + 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; + } + + compileNode(o) { + var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart; + if (!this.fromVar) { + this.compileVariables(o); + } + if (!o.index) { + return this.compileArray(o); + } + known = (this.fromNum != null) && (this.toNum != null); + idx = del(o, 'index'); + idxName = del(o, 'name'); + namedIndex = idxName && idxName !== idx; + varPart = `${idx} = ${this.fromC}`; + if (this.toC !== this.toVar) { + varPart += `, ${this.toC}`; + } + if (this.step !== this.stepVar) { + varPart += `, ${this.step}`; + } + [lt, gt] = [`${idx} <${this.equals}`, `${idx} >${this.equals}`]; + condPart = this.stepNum != null ? this.stepNum > 0 ? `${lt} ${this.toVar}` : `${gt} ${this.toVar}` : known ? ([from, to] = [this.fromNum, this.toNum], from <= to ? `${lt} ${to}` : `${gt} ${to}`) : (cond = this.stepVar ? `${this.stepVar} > 0` : `${this.fromVar} <= ${this.toVar}`, `${cond} ? ${lt} ${this.toVar} : ${gt} ${this.toVar}`); + stepPart = this.stepVar ? `${idx} += ${this.stepVar}` : known ? namedIndex ? from <= to ? `++${idx}` : `--${idx}` : from <= to ? `${idx}++` : `${idx}--` : namedIndex ? `${cond} ? ++${idx} : --${idx}` : `${cond} ? ${idx}++ : ${idx}--`; + if (namedIndex) { + varPart = `${idxName} = ${varPart}`; + } + if (namedIndex) { + stepPart = `${idxName} = ${stepPart}`; + } + return [this.makeCode(`${varPart}; ${condPart}; ${stepPart}`)]; + } + + compileArray(o) { + var args, body, cond, hasArgs, i, idt, j, known, post, pre, range, ref1, ref2, 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 = ref1 = this.fromNum, ref2 = this.toNum; ref1 <= ref2 ? j <= ref2 : j >= ref2; ref1 <= ref2 ? j++ : j--){ results.push(j); } + return results; + }).apply(this); + if (this.exclusive) { + range.pop(); + } + return [this.makeCode(`[${range.join(', ')}]`)]; + } + idt = this.tab + TAB; + i = o.scope.freeVariable('i', { + single: true + }); + result = o.scope.freeVariable('results'); + pre = `\n${idt}${result} = [];`; + if (known) { + o.index = i; + body = fragmentsToText(this.compileNode(o)); + } else { + vars = `${i} = ${this.fromC}` + (this.toC !== this.toVar ? `, ${this.toC}` : ''); + cond = `${this.fromVar} <= ${this.toVar}`; + body = `var ${vars}; ${cond} ? ${i} <${this.equals} ${this.toVar} : ${i} >${this.equals} ${this.toVar}; ${cond} ? ${i}++ : ${i}--`; + } + post = `{ ${result}.push(${i}); }\n${idt}return ${result};\n${o.indent}`; + hasArgs = function(node) { + return node != null ? node.contains(isLiteralArguments) : void 0; + }; + if (hasArgs(this.from) || hasArgs(this.to)) { + args = ', arguments'; + } + return [this.makeCode(`(function() {${pre}\n${idt}for (${body})${post}}).apply(this${args != null ? args : ''})`)]; + } + + }; + + Range.prototype.children = ['from', 'to']; + + return Range; + + })(); + + exports.Slice = Slice = (function() { + class Slice extends Base { + constructor(range1) { + super(); + this.range = range1; + } + + compileNode(o) { + var compiled, compiledText, from, fromCompiled, to, toStr; + ({to, from} = this.range); + fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')]; + if (to) { + compiled = to.compileToFragments(o, LEVEL_PAREN); + compiledText = fragmentsToText(compiled); + if (!(!this.range.exclusive && +compiledText === -1)) { + toStr = ', ' + (this.range.exclusive ? compiledText : to.isNumber() ? `${+compiledText + 1}` : (compiled = to.compileToFragments(o, LEVEL_ACCESS), `+${fragmentsToText(compiled)} + 1 || 9e9`)); + } + } + return [this.makeCode(`.slice(${fragmentsToText(fromCompiled)}${toStr || ''})`)]; + } + + }; + + Slice.prototype.children = ['range']; + + return Slice; + + })(); + + exports.Obj = Obj = (function() { + class Obj extends Base { + constructor(props, generated = false, lhs1 = false) { + super(); + this.generated = generated; + this.lhs = lhs1; + this.objects = this.properties = props || []; + } + + isAssignable() { + var j, len1, message, prop, ref1; + ref1 = this.properties; + for (j = 0, len1 = ref1.length; j < len1; j++) { + prop = ref1[j]; + message = isUnassignable(prop.unwrapAll().value); + if (message) { + prop.error(message); + } + if (prop instanceof Assign && prop.context === 'object') { + prop = prop.value; + } + if (!prop.isAssignable()) { + return false; + } + } + return true; + } + + shouldCache() { + return !this.isAssignable(); + } + + compileNode(o) { + var answer, i, idt, indent, isCompact, j, join, k, key, l, lastNoncom, len1, len2, len3, node, prop, props, ref1, value; + props = this.properties; + if (this.generated) { + for (j = 0, len1 = props.length; j < len1; j++) { + node = props[j]; + if (node instanceof Value) { + node.error('cannot have an implicit value in an implicit object'); + } + } + } + idt = o.indent += TAB; + lastNoncom = this.lastNonComment(this.properties); + isCompact = true; + ref1 = this.properties; + for (k = 0, len2 = ref1.length; k < len2; k++) { + prop = ref1[k]; + if (prop instanceof Comment || (prop instanceof Assign && prop.context === 'object')) { + isCompact = false; + } + } + answer = []; + answer.push(this.makeCode(`{${(isCompact ? '' : '\n')}`)); + for (i = l = 0, len3 = props.length; l < len3; i = ++l) { + prop = props[i]; + join = i === props.length - 1 ? '' : isCompact ? ', ' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; + indent = isCompact || prop instanceof Comment ? '' : idt; + key = prop instanceof Assign && prop.context === 'object' ? prop.variable : prop instanceof Assign ? (!this.lhs ? prop.operatorToken.error(`unexpected ${prop.operatorToken.value}`) : void 0, prop.variable) : !(prop instanceof Comment) ? prop : void 0; + if (key instanceof Value && key.hasProperties()) { + if (prop.context === 'object' || !key["this"]) { + key.error('invalid object key'); + } + key = key.properties[0].name; + prop = new Assign(key, prop, 'object'); + } + if (key === prop) { + if (prop.shouldCache()) { + [key, value] = prop.base.cache(o); + if (key instanceof IdentifierLiteral) { + key = new PropertyName(key.value); + } + prop = new Assign(key, value, 'object'); + } else if (!(typeof prop.bareLiteral === "function" ? prop.bareLiteral(IdentifierLiteral) : void 0)) { + prop = new Assign(prop, prop, 'object'); + } + } + if (indent) { + answer.push(this.makeCode(indent)); + } + answer.push(...prop.compileToFragments(o, LEVEL_TOP)); + if (join) { + answer.push(this.makeCode(join)); + } + } + answer.push(this.makeCode(`${(isCompact ? '' : `\n${this.tab}`)}}`)); + if (this.front) { + return this.wrapInParentheses(answer); + } else { + return answer; + } + } + + assigns(name) { + var j, len1, prop, ref1; + ref1 = this.properties; + for (j = 0, len1 = ref1.length; j < len1; j++) { + prop = ref1[j]; + if (prop.assigns(name)) { + return true; + } + } + return false; + } + + eachName(iterator) { + var j, len1, prop, ref1, results; + ref1 = this.properties; + results = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + prop = ref1[j]; + if (prop instanceof Assign && prop.context === 'object') { + prop = prop.value; + } + prop = prop.unwrapAll(); + if (prop.eachName != null) { + results.push(prop.eachName(iterator)); + } else { + results.push(void 0); + } + } + return results; + } + + }; + + Obj.prototype.children = ['properties']; + + return Obj; + + })(); + + exports.Arr = Arr = (function() { + class Arr extends Base { + constructor(objs, lhs1 = false) { + super(); + this.lhs = lhs1; + this.objects = objs || []; + } + + isAssignable() { + var i, j, len1, obj, ref1; + if (!this.objects.length) { + return false; + } + ref1 = this.objects; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + obj = ref1[i]; + if (obj instanceof Splat && i + 1 !== this.objects.length) { + return false; + } + if (!(obj.isAssignable() && (!obj.isAtomic || obj.isAtomic()))) { + return false; + } + } + return true; + } + + shouldCache() { + return !this.isAssignable(); + } + + compileNode(o) { + var answer, compiledObjs, fragments, index, j, k, len1, len2, obj, ref1, unwrappedObj; + if (!this.objects.length) { + return [this.makeCode('[]')]; + } + o.indent += TAB; + answer = []; + if (this.lhs) { + ref1 = this.objects; + for (j = 0, len1 = ref1.length; j < len1; j++) { + obj = ref1[j]; + unwrappedObj = obj.unwrapAll(); + if (unwrappedObj instanceof Arr || unwrappedObj instanceof Obj) { + unwrappedObj.lhs = true; + } + } + } + compiledObjs = (function() { + var k, len2, ref2, results; + ref2 = this.objects; + results = []; + for (k = 0, len2 = ref2.length; k < len2; k++) { + obj = ref2[k]; + results.push(obj.compileToFragments(o, LEVEL_LIST)); + } + return results; + }).call(this); + for (index = k = 0, len2 = compiledObjs.length; k < len2; index = ++k) { + fragments = compiledObjs[index]; + if (index) { + answer.push(this.makeCode(", ")); + } + answer.push(...fragments); + } + if (fragmentsToText(answer).indexOf('\n') >= 0) { + answer.unshift(this.makeCode(`[\n${o.indent}`)); + answer.push(this.makeCode(`\n${this.tab}]`)); + } else { + answer.unshift(this.makeCode("[")); + answer.push(this.makeCode("]")); + } + return answer; + } + + assigns(name) { + var j, len1, obj, ref1; + ref1 = this.objects; + for (j = 0, len1 = ref1.length; j < len1; j++) { + obj = ref1[j]; + if (obj.assigns(name)) { + return true; + } + } + return false; + } + + eachName(iterator) { + var j, len1, obj, ref1, results; + ref1 = this.objects; + results = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + obj = ref1[j]; + obj = obj.unwrapAll(); + results.push(obj.eachName(iterator)); + } + return results; + } + + }; + + Arr.prototype.children = ['objects']; + + return Arr; + + })(); + + exports.Class = Class = (function() { + class Class extends Base { + constructor(variable1, parent1, body1 = new Block) { + super(); + this.variable = variable1; + this.parent = parent1; + this.body = body1; + } + + compileNode(o) { + var assign, executableBody, parentName, result; + this.name = this.determineName(); + executableBody = this.walkBody(); + if (this.parent instanceof Value && !this.parent.hasProperties()) { + parentName = this.parent.base.value; + } + this.hasNameClash = (this.name != null) && this.name === parentName; + if (executableBody || this.hasNameClash) { + this.compileNode = this.compileClassDeclaration; + result = new ExecutableClassBody(this, executableBody).compileToFragments(o); + this.compileNode = this.constructor.prototype.compileNode; + } else { + result = this.compileClassDeclaration(o); + if ((this.name == null) && o.level === LEVEL_TOP) { + result = this.wrapInParentheses(result); + } + } + if (this.variable) { + assign = new Assign(this.variable, new Literal(''), null, {moduleDeclaration: this.moduleDeclaration}); + return [...assign.compileToFragments(o), ...result]; + } else { + return result; + } + } + + compileClassDeclaration(o) { + var ref1, result; + if (this.externalCtor || this.boundMethods.length) { + if (this.ctor == null) { + this.ctor = this.makeDefaultConstructor(); + } + } + if ((ref1 = this.ctor) != null) { + ref1.noReturn = true; + } + if (this.boundMethods.length) { + this.proxyBoundMethods(o); + } + o.indent += TAB; + result = []; + result.push(this.makeCode("class ")); + if (this.name) { + result.push(this.makeCode(`${this.name} `)); + } + if (this.parent) { + result.push(this.makeCode('extends '), ...this.parent.compileToFragments(o), this.makeCode(' ')); + } + result.push(this.makeCode('{')); + if (!this.body.isEmpty()) { + this.body.spaced = true; + result.push(this.makeCode('\n')); + result.push(...this.body.compileToFragments(o, LEVEL_TOP)); + result.push(this.makeCode(`\n${this.tab}`)); + } + result.push(this.makeCode('}')); + return result; + } + + determineName() { + var message, name, node, ref1, tail; + if (!this.variable) { + return null; + } + ref1 = this.variable.properties, tail = ref1[ref1.length - 1]; + node = tail ? tail instanceof Access && tail.name : this.variable.base; + if (!(node instanceof IdentifierLiteral || node instanceof PropertyName)) { + return null; + } + name = node.value; + if (!tail) { + message = isUnassignable(name); + if (message) { + this.variable.error(message); + } + } + if (indexOf.call(JS_FORBIDDEN, name) >= 0) { + return `_${name}`; + } else { + return name; + } + } + + walkBody() { + var assign, end, executableBody, expression, expressions, exprs, i, initializer, initializerExpression, j, k, len1, len2, method, properties, pushSlice, ref1, start; + this.ctor = null; + this.boundMethods = []; + executableBody = null; + initializer = []; + ({expressions} = this.body); + i = 0; + ref1 = expressions.slice(); + for (j = 0, len1 = ref1.length; j < len1; j++) { + expression = ref1[j]; + if (expression instanceof Value && expression.isObject(true)) { + ({properties} = expression.base); + exprs = []; + end = 0; + start = 0; + pushSlice = function() { + if (end > start) { + return exprs.push(new Value(new Obj(properties.slice(start, end), true))); + } + }; + while (assign = properties[end]) { + if (initializerExpression = this.addInitializerExpression(assign)) { + pushSlice(); + exprs.push(initializerExpression); + initializer.push(initializerExpression); + start = end + 1; + } else if (initializer[initializer.length - 1] instanceof Comment) { + exprs.pop(); + initializer.pop(); + start--; + } + end++; + } + pushSlice(); + [].splice.apply(expressions, [i, i - i + 1].concat(exprs)), exprs; + i += exprs.length; + } else { + if (initializerExpression = this.addInitializerExpression(expression)) { + initializer.push(initializerExpression); + expressions[i] = initializerExpression; + } else if (initializer[initializer.length - 1] instanceof Comment) { + initializer.pop(); + } + i += 1; + } + } + for (k = 0, len2 = initializer.length; k < len2; k++) { + method = initializer[k]; + if (method instanceof Code) { + if (method.ctor) { + if (this.ctor) { + method.error('Cannot define more than one constructor in a class'); + } + this.ctor = method; + } else if (method.bound && method.isStatic) { + method.context = this.name; + } else if (method.bound) { + this.boundMethods.push(method.name); + method.bound = false; + } + } + } + if (initializer.length !== expressions.length) { + this.body.expressions = (function() { + var l, len3, results; + results = []; + for (l = 0, len3 = initializer.length; l < len3; l++) { + expression = initializer[l]; + results.push(expression.hoist()); + } + return results; + })(); + return new Block(expressions); + } + } + + addInitializerExpression(node) { + switch (false) { + case !(node instanceof Comment): + return node; + case !this.validInitializerMethod(node): + return this.addInitializerMethod(node); + default: + return null; + } + } + + validInitializerMethod(node) { + if (!(node instanceof Assign && node.value instanceof Code)) { + return false; + } + if (node.context === 'object' && !node.variable.hasProperties()) { + return true; + } + return node.variable.looksStatic(this.name) && (this.name || !node.value.bound); + } + + addInitializerMethod(assign) { + var method, methodName, variable; + ({ + variable, + value: method + } = assign); + method.isMethod = true; + method.isStatic = variable.looksStatic(this.name); + if (method.isStatic) { + method.name = variable.properties[0]; + } else { + methodName = variable.base; + method.name = new (methodName.shouldCache() ? Index : Access)(methodName); + method.name.updateLocationDataIfMissing(methodName.locationData); + if (methodName.value === 'constructor') { + method.ctor = (this.parent ? 'derived' : 'base'); + } + if (method.bound && method.ctor) { + method.error('Cannot define a constructor as a bound function'); + } + } + return method; + } + + makeDefaultConstructor() { + var applyArgs, applyCtor, ctor; + ctor = this.addInitializerMethod(new Assign(new Value(new PropertyName('constructor')), new Code)); + this.body.unshift(ctor); + if (this.parent) { + ctor.body.push(new SuperCall(new Super, [new Splat(new IdentifierLiteral('arguments'))])); + } + if (this.externalCtor) { + applyCtor = new Value(this.externalCtor, [new Access(new PropertyName('apply'))]); + applyArgs = [new ThisLiteral, new IdentifierLiteral('arguments')]; + ctor.body.push(new Call(applyCtor, applyArgs)); + ctor.body.makeReturn(); + } + return ctor; + } + + proxyBoundMethods(o) { + var name; + this.ctor.thisAssignments = (function() { + var j, ref1, results; + ref1 = this.boundMethods; + results = []; + for (j = ref1.length - 1; j >= 0; j += -1) { + name = ref1[j]; + name = new Value(new ThisLiteral, [name]).compile(o); + results.push(new Literal(`${name} = ${utility('bind', o)}(${name}, this)`)); + } + return results; + }).call(this); + return null; + } + + }; + + Class.prototype.children = ['variable', 'parent', 'body']; + + return Class; + + })(); + + exports.ExecutableClassBody = ExecutableClassBody = (function() { + class ExecutableClassBody extends Base { + constructor(_class, body1 = new Block) { + super(); + this["class"] = _class; + this.body = body1; + } + + compileNode(o) { + var args, argumentsNode, directives, externalCtor, ident, jumpNode, klass, params, parent, ref1, wrapper; + if (jumpNode = this.body.jumps()) { + jumpNode.error('Class bodies cannot contain pure statements'); + } + if (argumentsNode = this.body.contains(isLiteralArguments)) { + argumentsNode.error("Class bodies shouldn't reference arguments"); + } + this.name = (ref1 = this["class"].name) != null ? ref1 : this.defaultClassVariableName; + directives = this.walkBody(); + this.setContext(); + ident = new IdentifierLiteral(this.name); + params = []; + args = []; + wrapper = new Code(params, this.body); + klass = new Parens(new Call(wrapper, args)); + this.body.spaced = true; + o.classScope = wrapper.makeScope(o.scope); + if (this["class"].hasNameClash) { + parent = new IdentifierLiteral(o.classScope.freeVariable('superClass')); + wrapper.params.push(new Param(parent)); + args.push(this["class"].parent); + this["class"].parent = parent; + } + if (this.externalCtor) { + externalCtor = new IdentifierLiteral(o.classScope.freeVariable('ctor', { + reserve: false + })); + this["class"].externalCtor = externalCtor; + this.externalCtor.variable.base = externalCtor; + } + if (this.name !== this["class"].name) { + this.body.expressions.unshift(new Assign(new IdentifierLiteral(this.name), this["class"])); + } else { + this.body.expressions.unshift(this["class"]); + } + this.body.expressions.unshift(...directives); + this.body.push(ident); + return klass.compileToFragments(o); + } + + walkBody() { + var directives, expr, index; + directives = []; + index = 0; + while (expr = this.body.expressions[index]) { + if (!(expr instanceof Comment || expr instanceof Value && expr.isString())) { + break; + } + if (expr.hoisted) { + index++; + } else { + directives.push(...this.body.expressions.splice(index, 1)); + } + } + this.traverseChildren(false, (child) => { + var cont, i, j, len1, node, ref1; + if (child instanceof Class || child instanceof HoistTarget) { + return false; + } + cont = true; + if (child instanceof Block) { + ref1 = child.expressions; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + node = ref1[i]; + if (node instanceof Value && node.isObject(true)) { + cont = false; + child.expressions[i] = this.addProperties(node.base.properties); + } else if (node instanceof Assign && node.variable.looksStatic(this.name)) { + node.value.isStatic = true; + } + } + child.expressions = flatten(child.expressions); + } + return cont; + }); + return directives; + } + + setContext() { + return this.body.traverseChildren(false, (node) => { + if (node instanceof ThisLiteral) { + return node.value = this.name; + } else if (node instanceof Code && node.bound) { + return node.context = this.name; + } + }); + } + + addProperties(assigns) { + var assign, base, name, prototype, result, value, variable; + result = (function() { + var j, len1, results; + results = []; + for (j = 0, len1 = assigns.length; j < len1; j++) { + assign = assigns[j]; + variable = assign.variable; + base = variable != null ? variable.base : void 0; + value = assign.value; + delete assign.context; + if (assign instanceof Comment) { + + } else if (base.value === 'constructor') { + if (value instanceof Code) { + base.error('constructors must be defined at the top level of a class body'); + } + assign = this.externalCtor = new Assign(new Value, value); + } else if (!assign.variable["this"]) { + name = new (base.shouldCache() ? Index : Access)(base); + prototype = new Access(new PropertyName('prototype')); + variable = new Value(new ThisLiteral(), [prototype, name]); + assign.variable = variable; + } else if (assign.value instanceof Code) { + assign.value.isStatic = true; + } + results.push(assign); + } + return results; + }).call(this); + return compact(result); + } + + }; + + ExecutableClassBody.prototype.children = ['class', 'body']; + + ExecutableClassBody.prototype.defaultClassVariableName = '_Class'; + + return ExecutableClassBody; + + })(); + + exports.ModuleDeclaration = ModuleDeclaration = (function() { + class ModuleDeclaration extends Base { + constructor(clause, source1) { + super(); + this.clause = clause; + this.source = source1; + this.checkSource(); + } + + checkSource() { + if ((this.source != null) && this.source instanceof StringWithInterpolations) { + return this.source.error('the name of the module to be imported from must be an uninterpolated string'); + } + } + + checkScope(o, moduleDeclarationType) { + if (o.indent.length !== 0) { + return this.error(`${moduleDeclarationType} statements must be at top-level scope`); + } + } + + }; + + ModuleDeclaration.prototype.children = ['clause', 'source']; + + ModuleDeclaration.prototype.isStatement = YES; + + ModuleDeclaration.prototype.jumps = THIS; + + ModuleDeclaration.prototype.makeReturn = THIS; + + return ModuleDeclaration; + + })(); + + exports.ImportDeclaration = ImportDeclaration = class ImportDeclaration extends ModuleDeclaration { + compileNode(o) { + var code, ref1; + this.checkScope(o, 'import'); + o.importedSymbols = []; + code = []; + code.push(this.makeCode(`${this.tab}import `)); + if (this.clause != null) { + code.push(...this.clause.compileNode(o)); + } + if (((ref1 = this.source) != null ? ref1.value : void 0) != null) { + if (this.clause !== null) { + code.push(this.makeCode(' from ')); + } + code.push(this.makeCode(this.source.value)); + } + code.push(this.makeCode(';')); + return code; + } + + }; + + exports.ImportClause = ImportClause = (function() { + class ImportClause extends Base { + constructor(defaultBinding, namedImports) { + super(); + this.defaultBinding = defaultBinding; + this.namedImports = namedImports; + } + + compileNode(o) { + var code; + code = []; + if (this.defaultBinding != null) { + code.push(...this.defaultBinding.compileNode(o)); + if (this.namedImports != null) { + code.push(this.makeCode(', ')); + } + } + if (this.namedImports != null) { + code.push(...this.namedImports.compileNode(o)); + } + return code; + } + + }; + + ImportClause.prototype.children = ['defaultBinding', 'namedImports']; + + return ImportClause; + + })(); + + exports.ExportDeclaration = ExportDeclaration = class ExportDeclaration extends ModuleDeclaration { + compileNode(o) { + var code, ref1; + this.checkScope(o, 'export'); + code = []; + code.push(this.makeCode(`${this.tab}export `)); + if (this instanceof ExportDefaultDeclaration) { + code.push(this.makeCode('default ')); + } + if (!(this instanceof ExportDefaultDeclaration) && (this.clause instanceof Assign || this.clause instanceof Class)) { + if (this.clause instanceof Class && !this.clause.variable) { + this.clause.error('anonymous classes cannot be exported'); + } + code.push(this.makeCode('var ')); + this.clause.moduleDeclaration = 'export'; + } + if ((this.clause.body != null) && this.clause.body instanceof Block) { + code = code.concat(this.clause.compileToFragments(o, LEVEL_TOP)); + } else { + code = code.concat(this.clause.compileNode(o)); + } + if (((ref1 = this.source) != null ? ref1.value : void 0) != null) { + code.push(this.makeCode(` from ${this.source.value}`)); + } + code.push(this.makeCode(';')); + return code; + } + + }; + + exports.ExportNamedDeclaration = ExportNamedDeclaration = class ExportNamedDeclaration extends ExportDeclaration {}; + + exports.ExportDefaultDeclaration = ExportDefaultDeclaration = class ExportDefaultDeclaration extends ExportDeclaration {}; + + exports.ExportAllDeclaration = ExportAllDeclaration = class ExportAllDeclaration extends ExportDeclaration {}; + + exports.ModuleSpecifierList = ModuleSpecifierList = (function() { + class ModuleSpecifierList extends Base { + constructor(specifiers) { + super(); + this.specifiers = specifiers; + } + + compileNode(o) { + var code, compiledList, fragments, index, j, len1, specifier; + code = []; + o.indent += TAB; + compiledList = (function() { + var j, len1, ref1, results; + ref1 = this.specifiers; + results = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + specifier = ref1[j]; + results.push(specifier.compileToFragments(o, LEVEL_LIST)); + } + return results; + }).call(this); + if (this.specifiers.length !== 0) { + code.push(this.makeCode(`{\n${o.indent}`)); + for (index = j = 0, len1 = compiledList.length; j < len1; index = ++j) { + fragments = compiledList[index]; + if (index) { + code.push(this.makeCode(`,\n${o.indent}`)); + } + code.push(...fragments); + } + code.push(this.makeCode("\n}")); + } else { + code.push(this.makeCode('{}')); + } + return code; + } + + }; + + ModuleSpecifierList.prototype.children = ['specifiers']; + + return ModuleSpecifierList; + + })(); + + exports.ImportSpecifierList = ImportSpecifierList = class ImportSpecifierList extends ModuleSpecifierList {}; + + exports.ExportSpecifierList = ExportSpecifierList = class ExportSpecifierList extends ModuleSpecifierList {}; + + exports.ModuleSpecifier = ModuleSpecifier = (function() { + class ModuleSpecifier extends Base { + constructor(original, alias, moduleDeclarationType1) { + super(); + this.original = original; + this.alias = alias; + this.moduleDeclarationType = moduleDeclarationType1; + this.identifier = this.alias != null ? this.alias.value : this.original.value; + } + + compileNode(o) { + var code; + o.scope.find(this.identifier, this.moduleDeclarationType); + code = []; + code.push(this.makeCode(this.original.value)); + if (this.alias != null) { + code.push(this.makeCode(` as ${this.alias.value}`)); + } + return code; + } + + }; + + ModuleSpecifier.prototype.children = ['original', 'alias']; + + return ModuleSpecifier; + + })(); + + exports.ImportSpecifier = ImportSpecifier = class ImportSpecifier extends ModuleSpecifier { + constructor(imported, local) { + super(imported, local, 'import'); + } + + compileNode(o) { + var ref1; + if ((ref1 = this.identifier, indexOf.call(o.importedSymbols, ref1) >= 0) || o.scope.check(this.identifier)) { + this.error(`'${this.identifier}' has already been declared`); + } else { + o.importedSymbols.push(this.identifier); + } + return super.compileNode(o); + } + + }; + + exports.ImportDefaultSpecifier = ImportDefaultSpecifier = class ImportDefaultSpecifier extends ImportSpecifier {}; + + exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier = class ImportNamespaceSpecifier extends ImportSpecifier {}; + + exports.ExportSpecifier = ExportSpecifier = class ExportSpecifier extends ModuleSpecifier { + constructor(local, exported) { + super(local, exported, 'export'); + } + + }; + + exports.Assign = Assign = (function() { + class Assign extends Base { + constructor(variable1, value1, context1, options = {}) { + super(); + this.variable = variable1; + this.value = value1; + this.context = context1; + ({param: this.param, subpattern: this.subpattern, operatorToken: this.operatorToken, moduleDeclaration: this.moduleDeclaration} = options); + } + + isStatement(o) { + return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && (this.moduleDeclaration || indexOf.call(this.context, "?") >= 0); + } + + checkAssignability(o, varBase) { + if (Object.prototype.hasOwnProperty.call(o.scope.positions, varBase.value) && o.scope.variables[o.scope.positions[varBase.value]].type === 'import') { + return varBase.error(`'${varBase.value}' is read-only`); + } + } + + assigns(name) { + return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); + } + + unfoldSoak(o) { + return unfoldSoak(o, this, 'variable'); + } + + compileNode(o) { + var answer, compiledName, isValue, j, name, properties, prototype, ref1, ref2, ref3, ref4, ref5, ref6, val, varBase; + isValue = this.variable instanceof Value; + if (isValue) { + this.variable.param = this.param; + if (this.variable.isArray() || this.variable.isObject()) { + this.variable.base.lhs = true; + if (!this.variable.isAssignable()) { + return this.compileDestructuring(o); + } + } + if (this.variable.isSplice()) { + return this.compileSplice(o); + } + if ((ref1 = this.context) === '||=' || ref1 === '&&=' || ref1 === '?=') { + return this.compileConditional(o); + } + if ((ref2 = this.context) === '**=' || ref2 === '//=' || ref2 === '%%=') { + return this.compileSpecialMath(o); + } + } + if (!this.context) { + varBase = this.variable.unwrapAll(); + if (!varBase.isAssignable()) { + this.variable.error(`'${this.variable.compile(o)}' can't be assigned`); + } + varBase.eachName((name) => { + var message; + if (typeof name.hasProperties === "function" ? name.hasProperties() : void 0) { + return; + } + message = isUnassignable(name.value); + if (message) { + name.error(message); + } + this.checkAssignability(o, name); + if (this.moduleDeclaration) { + return o.scope.add(name.value, this.moduleDeclaration); + } else { + return o.scope.find(name.value); + } + }); + } + if (this.value instanceof Code) { + if (this.value.isStatic) { + this.value.name = this.variable.properties[0]; + } else if (((ref3 = this.variable.properties) != null ? ref3.length : void 0) >= 2) { + ref4 = this.variable.properties, properties = 3 <= ref4.length ? slice.call(ref4, 0, j = ref4.length - 2) : (j = 0, []), prototype = ref4[j++], name = ref4[j++]; + if (((ref5 = prototype.name) != null ? ref5.value : void 0) === 'prototype') { + this.value.name = name; + } + } + } + val = this.value.compileToFragments(o, LEVEL_LIST); + compiledName = this.variable.compileToFragments(o, LEVEL_LIST); + if (this.context === 'object') { + if (this.variable.shouldCache()) { + compiledName.unshift(this.makeCode('[')); + compiledName.push(this.makeCode(']')); + } else if (ref6 = fragmentsToText(compiledName), indexOf.call(JS_FORBIDDEN, ref6) >= 0) { + compiledName.unshift(this.makeCode('"')); + compiledName.push(this.makeCode('"')); + } + return compiledName.concat(this.makeCode(": "), val); + } + answer = compiledName.concat(this.makeCode(` ${this.context || '='} `), val); + if (o.level > LEVEL_LIST || (isValue && this.variable.base instanceof Obj && !this.param)) { + return this.wrapInParentheses(answer); + } else { + return answer; + } + } + + compileDestructuring(o) { + var acc, assigns, code, defaultValue, expandedIdx, fragments, i, idx, isObject, ivar, j, len1, message, name, obj, objects, olen, ref, rest, top, val, value, vvar, vvarText; + top = o.level === LEVEL_TOP; + ({value} = this); + ({objects} = this.variable.base); + olen = objects.length; + if (olen === 0) { + code = value.compileToFragments(o); + if (o.level >= LEVEL_OP) { + return this.wrapInParentheses(code); + } else { + return code; + } + } + [obj] = objects; + if (olen === 1 && obj instanceof Expansion) { + obj.error('Destructuring assignment has no target'); + } + isObject = this.variable.isObject(); + if (top && olen === 1 && !(obj instanceof Splat)) { + defaultValue = void 0; + if (obj instanceof Assign && obj.context === 'object') { + ({ + variable: { + base: idx + }, + value: obj + } = obj); + if (obj instanceof Assign) { + defaultValue = obj.value; + obj = obj.variable; + } + } else { + if (obj instanceof Assign) { + defaultValue = obj.value; + obj = obj.variable; + } + idx = isObject ? obj["this"] ? obj.properties[0].name : new PropertyName(obj.unwrap().value) : new NumberLiteral(0); + } + acc = idx.unwrap() instanceof PropertyName; + value = new Value(value); + value.properties.push(new (acc ? Access : Index)(idx)); + message = isUnassignable(obj.unwrap().value); + if (message) { + obj.error(message); + } + if (defaultValue) { + defaultValue.isDefaultValue = true; + value = new Op('?', value, defaultValue); + } + return new Assign(obj, value, null, { + param: this.param + }).compileToFragments(o, LEVEL_TOP); + } + vvar = value.compileToFragments(o, LEVEL_LIST); + vvarText = fragmentsToText(vvar); + assigns = []; + expandedIdx = false; + if (!(value.unwrap() instanceof IdentifierLiteral) || this.variable.assigns(vvarText)) { + ref = o.scope.freeVariable('ref'); + assigns.push([this.makeCode(ref + ' = '), ...vvar]); + vvar = [this.makeCode(ref)]; + vvarText = ref; + } + for (i = j = 0, len1 = objects.length; j < len1; i = ++j) { + obj = objects[i]; + idx = i; + if (!expandedIdx && obj instanceof Splat) { + name = obj.name.unwrap().value; + obj = obj.unwrap(); + val = `${olen} <= ${vvarText}.length ? ${utility('slice', o)}.call(${vvarText}, ${i}`; + rest = olen - i - 1; + if (rest !== 0) { + ivar = o.scope.freeVariable('i', { + single: true + }); + val += `, ${ivar} = ${vvarText}.length - ${rest}) : (${ivar} = ${i}, [])`; + } else { + val += ") : []"; + } + val = new Literal(val); + expandedIdx = `${ivar}++`; + } else if (!expandedIdx && obj instanceof Expansion) { + rest = olen - i - 1; + if (rest !== 0) { + if (rest === 1) { + expandedIdx = `${vvarText}.length - 1`; + } else { + ivar = o.scope.freeVariable('i', { + single: true + }); + val = new Literal(`${ivar} = ${vvarText}.length - ${rest}`); + expandedIdx = `${ivar}++`; + assigns.push(val.compileToFragments(o, LEVEL_LIST)); + } + } + continue; + } else { + if (obj instanceof Splat || obj instanceof Expansion) { + obj.error("multiple splats/expansions are disallowed in an assignment"); + } + defaultValue = void 0; + if (obj instanceof Assign && obj.context === 'object') { + ({ + variable: { + base: idx + }, + value: obj + } = obj); + if (obj instanceof Assign) { + defaultValue = obj.value; + obj = obj.variable; + } + } else { + if (obj instanceof Assign) { + defaultValue = obj.value; + obj = obj.variable; + } + idx = isObject ? obj["this"] ? obj.properties[0].name : new PropertyName(obj.unwrap().value) : new Literal(expandedIdx || idx); + } + name = obj.unwrap().value; + acc = idx.unwrap() instanceof PropertyName; + val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]); + if (defaultValue) { + defaultValue.isDefaultValue = true; + val = new Op('?', val, defaultValue); + } + } + if (name != null) { + message = isUnassignable(name); + if (message) { + obj.error(message); + } + } + assigns.push(new Assign(obj, val, null, { + param: this.param, + subpattern: true + }).compileToFragments(o, LEVEL_LIST)); + } + if (!(top || this.subpattern)) { + assigns.push(vvar); + } + fragments = this.joinFragmentArrays(assigns, ', '); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInParentheses(fragments); + } + } + + compileConditional(o) { + var fragments, left, right; + [left, right] = this.variable.cacheReference(o); + 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) { + o.isExistentialEquals = true; + return new If(new Existence(left), right, { + type: 'if' + }).addElse(new Assign(right, this.value, '=')).compileToFragments(o); + } else { + fragments = new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o); + if (o.level <= LEVEL_LIST) { + return fragments; + } else { + return this.wrapInParentheses(fragments); + } + } + } + + compileSpecialMath(o) { + var left, right; + [left, right] = this.variable.cacheReference(o); + return new Assign(left, new Op(this.context.slice(0, -1), right, this.value)).compileToFragments(o); + } + + compileSplice(o) { + var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef; + ({ + range: {from, to, exclusive} + } = this.variable.properties.pop()); + name = this.variable.compile(o); + if (from) { + [fromDecl, fromRef] = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)); + } else { + fromDecl = fromRef = '0'; + } + if (to) { + if ((from != null ? from.isNumber() : void 0) && to.isNumber()) { + to = to.compile(o) - fromRef; + if (!exclusive) { + to += 1; + } + } else { + to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; + if (!exclusive) { + to += ' + 1'; + } + } + } else { + to = "9e9"; + } + [valDef, valRef] = this.value.cache(o, LEVEL_LIST); + answer = [].concat(this.makeCode(`[].splice.apply(${name}, [${fromDecl}, ${to}].concat(`), valDef, this.makeCode(")), "), valRef); + if (o.level > LEVEL_TOP) { + return this.wrapInParentheses(answer); + } else { + return answer; + } + } + + eachName(iterator) { + return this.variable.unwrapAll().eachName(iterator); + } + + }; + + Assign.prototype.children = ['variable', 'value']; + + Assign.prototype.isAssignable = YES; + + return Assign; + + })(); + + exports.Code = Code = (function() { + class Code extends Base { + constructor(params, body, tag) { + super(); + this.params = params || []; + this.body = body || new Block; + this.bound = tag === 'boundfunc'; + this.isGenerator = false; + this.isAsync = false; + this.isMethod = false; + this.body.traverseChildren(false, (node) => { + if ((node instanceof Op && node.isYield()) || node instanceof YieldReturn) { + this.isGenerator = true; + } + if ((node instanceof Op && node.isAwait()) || node instanceof AwaitReturn) { + this.isAsync = true; + } + if (this.isGenerator && this.isAsync) { + return node.error("function can't contain both yield and await"); + } + }); + } + + isStatement() { + return this.isMethod; + } + + makeScope(parentScope) { + return new Scope(parentScope, this.body, this); + } + + compileNode(o) { + var answer, body, condition, exprs, haveBodyParam, haveSplatParam, i, ifTrue, j, k, len1, len2, m, methodScope, modifiers, name, param, paramNames, params, paramsAfterSplat, ref, ref1, ref2, ref3, ref4, ref5, signature, splatParamName, thisAssignments, wasEmpty; + if (this.ctor) { + if (this.isAsync) { + this.name.error('Class constructor may not be async'); + } + if (this.isGenerator) { + this.name.error('Class constructor may not be a generator'); + } + } + if (this.bound) { + if ((ref1 = o.scope.method) != null ? ref1.bound : void 0) { + this.context = o.scope.method.context; + } + if (!this.context) { + this.context = 'this'; + } + } + o.scope = del(o, 'classScope') || this.makeScope(o.scope); + o.scope.shared = del(o, 'sharedScope'); + o.indent += TAB; + delete o.bare; + delete o.isExistentialEquals; + params = []; + exprs = []; + thisAssignments = (ref2 = (ref3 = this.thisAssignments) != null ? ref3.slice() : void 0) != null ? ref2 : []; + paramsAfterSplat = []; + haveSplatParam = false; + haveBodyParam = false; + paramNames = []; + this.eachParamName(function(name, node, param) { + var target; + if (indexOf.call(paramNames, name) >= 0) { + node.error(`multiple parameters named '${name}'`); + } + paramNames.push(name); + if (node["this"]) { + name = node.properties[0].name.value; + if (indexOf.call(JS_FORBIDDEN, name) >= 0) { + name = `_${name}`; + } + target = new IdentifierLiteral(o.scope.freeVariable(name)); + param.renameParam(node, target); + return thisAssignments.push(new Assign(node, target)); + } + }); + ref4 = this.params; + for (i = j = 0, len1 = ref4.length; j < len1; i = ++j) { + param = ref4[i]; + if (param.splat || param instanceof Expansion) { + if (haveSplatParam) { + param.error('only one splat or expansion parameter is allowed per function definition'); + } else if (param instanceof Expansion && this.params.length === 1) { + param.error('an expansion parameter cannot be the only parameter in a function definition'); + } + haveSplatParam = true; + if (param.splat) { + if (param.name instanceof Arr) { + splatParamName = o.scope.freeVariable('arg'); + params.push(ref = new Value(new IdentifierLiteral(splatParamName))); + exprs.push(new Assign(new Value(param.name), ref, null, { + param: true + })); + } else { + params.push(ref = param.asReference(o)); + splatParamName = fragmentsToText(ref.compileNode(o)); + } + if (param.shouldCache()) { + exprs.push(new Assign(new Value(param.name), ref, null, { + param: true + })); + } + } else { + splatParamName = o.scope.freeVariable('args'); + params.push(new Value(new IdentifierLiteral(splatParamName))); + } + o.scope.parameter(splatParamName); + } else { + if (param.shouldCache() || haveBodyParam) { + param.assignedInBody = true; + haveBodyParam = true; + if (param.value != null) { + condition = new Op('===', param, new UndefinedLiteral); + ifTrue = new Assign(new Value(param.name), param.value, null, { + param: true + }); + exprs.push(new If(condition, ifTrue)); + } else { + exprs.push(new Assign(new Value(param.name), param.asReference(o), null, { + param: true + })); + } + } + if (!haveSplatParam) { + if (param.shouldCache()) { + ref = param.asReference(o); + } else { + if ((param.value != null) && !param.assignedInBody) { + ref = new Assign(new Value(param.name), param.value, null, { + param: true + }); + } else { + ref = param; + } + } + if (param.name instanceof Arr || param.name instanceof Obj) { + param.name.lhs = true; + param.name.eachName(function(prop) { + return o.scope.parameter(prop.value); + }); + } else { + o.scope.parameter(fragmentsToText((param.value != null ? param : ref).compileToFragments(o))); + } + params.push(ref); + } else { + paramsAfterSplat.push(param); + if ((param.value != null) && !param.shouldCache()) { + condition = new Op('===', param, new UndefinedLiteral); + ifTrue = new Assign(new Value(param.name), param.value); + exprs.push(new If(condition, ifTrue)); + } + if (((ref5 = param.name) != null ? ref5.value : void 0) != null) { + o.scope.add(param.name.value, 'var', true); + } + } + } + } + if (paramsAfterSplat.length !== 0) { + exprs.unshift(new Assign(new Value(new Arr([ + new Splat(new IdentifierLiteral(splatParamName)), ...(function() { + var k, len2, results; + results = []; + for (k = 0, len2 = paramsAfterSplat.length; k < len2; k++) { + param = paramsAfterSplat[k]; + results.push(param.asReference(o)); + } + return results; + })() + ])), new Value(new IdentifierLiteral(splatParamName)))); + } + wasEmpty = this.body.isEmpty(); + if (!this.expandCtorSuper(thisAssignments)) { + this.body.expressions.unshift(...thisAssignments); + } + this.body.expressions.unshift(...exprs); + if (!(wasEmpty || this.noReturn)) { + this.body.makeReturn(); + } + modifiers = []; + if (this.isMethod && this.isStatic) { + modifiers.push('static'); + } + if (this.isAsync) { + modifiers.push('async'); + } + if (!(this.isMethod || this.bound)) { + modifiers.push(`function${(this.isGenerator ? '*' : '')}`); + } else if (this.isGenerator) { + modifiers.push('*'); + } + signature = [this.makeCode('(')]; + for (i = k = 0, len2 = params.length; k < len2; i = ++k) { + param = params[i]; + if (i) { + signature.push(this.makeCode(', ')); + } + if (haveSplatParam && i === params.length - 1) { + signature.push(this.makeCode('...')); + } + signature.push(...param.compileToFragments(o)); + } + signature.push(this.makeCode(')')); + if (!this.body.isEmpty()) { + body = this.body.compileWithDeclarations(o); + } + if (this.isMethod) { + [methodScope, o.scope] = [o.scope, o.scope.parent]; + name = this.name.compileToFragments(o); + if (name[0].code === '.') { + name.shift(); + } + o.scope = methodScope; + } + answer = this.joinFragmentArrays((function() { + var l, len3, results; + results = []; + for (l = 0, len3 = modifiers.length; l < len3; l++) { + m = modifiers[l]; + results.push(this.makeCode(m)); + } + return results; + }).call(this), ' '); + if (modifiers.length && name) { + answer.push(this.makeCode(' ')); + } + if (name) { + answer.push(...name); + } + answer.push(...signature); + if (this.bound && !this.isMethod) { + answer.push(this.makeCode(' =>')); + } + answer.push(this.makeCode(' {')); + if (body != null ? body.length : void 0) { + answer.push(this.makeCode('\n'), ...body, this.makeCode(`\n${this.tab}`)); + } + answer.push(this.makeCode('}')); + if (this.isMethod) { + return [this.makeCode(this.tab), ...answer]; + } + if (this.front || (o.level >= LEVEL_ACCESS)) { + return this.wrapInParentheses(answer); + } else { + return answer; + } + } + + eachParamName(iterator) { + var j, len1, param, ref1, results; + ref1 = this.params; + results = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + param = ref1[j]; + results.push(param.eachName(iterator)); + } + return results; + } + + traverseChildren(crossScope, func) { + if (crossScope) { + return super.traverseChildren(crossScope, func); + } + } + + replaceInContext(child, replacement) { + if (this.bound) { + return super.replaceInContext(child, replacement); + } else { + return false; + } + } + + expandCtorSuper(thisAssignments) { + var haveThisParam, param, ref1, seenSuper; + if (!this.ctor) { + return false; + } + this.eachSuperCall(Block.wrap(this.params), function(superCall) { + return superCall.error("'super' is not allowed in constructor parameter defaults"); + }); + seenSuper = this.eachSuperCall(this.body, (superCall) => { + if (this.ctor === 'base') { + superCall.error("'super' is only allowed in derived class constructors"); + } + return superCall.expressions = thisAssignments; + }); + haveThisParam = thisAssignments.length && thisAssignments.length !== ((ref1 = this.thisAssignments) != null ? ref1.length : void 0); + if (this.ctor === 'derived' && !seenSuper && haveThisParam) { + param = thisAssignments[0].variable; + param.error("Can't use @params in derived class constructors without calling super"); + } + return seenSuper; + } + + eachSuperCall(context, iterator) { + var seenSuper; + seenSuper = false; + context.traverseChildren(true, (child) => { + if (child instanceof SuperCall) { + seenSuper = true; + iterator(child); + } else if (child instanceof ThisLiteral && this.ctor === 'derived' && !seenSuper) { + child.error("Can't reference 'this' before calling super in derived class constructors"); + } + return !(child instanceof SuperCall) && (!(child instanceof Code) || child.bound); + }); + return seenSuper; + } + + }; + + Code.prototype.children = ['params', 'body']; + + Code.prototype.jumps = NO; + + return Code; + + })(); + + exports.Param = Param = (function() { + class Param extends Base { + constructor(name1, value1, splat) { + var message, token; + super(); + this.name = name1; + this.value = value1; + this.splat = splat; + message = isUnassignable(this.name.unwrapAll().value); + if (message) { + this.name.error(message); + } + if (this.name instanceof Obj && this.name.generated) { + token = this.name.objects[0].operatorToken; + token.error(`unexpected ${token.value}`); + } + } + + compileToFragments(o) { + return this.name.compileToFragments(o, LEVEL_LIST); + } + + asReference(o) { + var name, node; + if (this.reference) { + return this.reference; + } + node = this.name; + if (node["this"]) { + name = node.properties[0].name.value; + if (indexOf.call(JS_FORBIDDEN, name) >= 0) { + name = `_${name}`; + } + node = new IdentifierLiteral(o.scope.freeVariable(name)); + } else if (node.shouldCache()) { + node = new IdentifierLiteral(o.scope.freeVariable('arg')); + } + node = new Value(node); + node.updateLocationDataIfMissing(this.locationData); + return this.reference = node; + } + + shouldCache() { + return this.name.shouldCache(); + } + + eachName(iterator, name = this.name) { + var atParam, j, len1, node, obj, ref1, ref2; + atParam = (obj) => { + return iterator(`@${obj.properties[0].name.value}`, obj, this); + }; + if (name instanceof Literal) { + return iterator(name.value, name, this); + } + if (name instanceof Value) { + return atParam(name); + } + ref2 = (ref1 = name.objects) != null ? ref1 : []; + for (j = 0, len1 = ref2.length; j < len1; j++) { + obj = ref2[j]; + if (obj instanceof Assign && (obj.context == null)) { + obj = obj.variable; + } + if (obj instanceof Assign) { + if (obj.value instanceof Assign) { + obj = obj.value; + } + this.eachName(iterator, obj.value.unwrap()); + } else if (obj instanceof Splat) { + node = obj.name.unwrap(); + iterator(node.value, node, this); + } else if (obj instanceof Value) { + if (obj.isArray() || obj.isObject()) { + this.eachName(iterator, obj.base); + } else if (obj["this"]) { + atParam(obj); + } else { + iterator(obj.base.value, obj.base, this); + } + } else if (!(obj instanceof Expansion)) { + obj.error(`illegal parameter ${obj.compile()}`); + } + } + } + + renameParam(node, newNode) { + var isNode, replacement; + isNode = function(candidate) { + return candidate === node; + }; + replacement = (node, parent) => { + var key; + if (parent instanceof Obj) { + key = node; + if (node["this"]) { + key = node.properties[0].name; + } + return new Assign(new Value(key), newNode, 'object'); + } else { + return newNode; + } + }; + return this.replaceInContext(isNode, replacement); + } + + }; + + Param.prototype.children = ['name', 'value']; + + return Param; + + })(); + + exports.Splat = Splat = (function() { + class Splat extends Base { + isAssignable() { + return this.name.isAssignable() && (!this.name.isAtomic || this.name.isAtomic()); + } + + constructor(name) { + super(); + this.name = name.compile ? name : new Literal(name); + } + + assigns(name) { + return this.name.assigns(name); + } + + compileToFragments(o) { + return [this.makeCode('...'), ...this.name.compileToFragments(o)]; + } + + unwrap() { + return this.name; + } + + }; + + Splat.prototype.children = ['name']; + + return Splat; + + })(); + + exports.Expansion = Expansion = (function() { + class Expansion extends Base { + compileNode(o) { + return this.error('Expansion must be used inside a destructuring assignment or parameter list'); + } + + asReference(o) { + return this; + } + + eachName(iterator) {} + + }; + + Expansion.prototype.shouldCache = NO; + + return Expansion; + + })(); + + exports.While = While = (function() { + class While extends Base { + constructor(condition, options) { + super(); + this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; + this.guard = options != null ? options.guard : void 0; + } + + makeReturn(res) { + if (res) { + return super.makeReturn(res); + } else { + this.returns = !this.jumps({ + loop: true + }); + return this; + } + } + + addBody(body1) { + this.body = body1; + return this; + } + + jumps() { + var expressions, j, jumpNode, len1, node; + ({expressions} = this.body); + if (!expressions.length) { + return false; + } + for (j = 0, len1 = expressions.length; j < len1; j++) { + node = expressions[j]; + if (jumpNode = node.jumps({ + loop: true + })) { + return jumpNode; + } + } + return false; + } + + compileNode(o) { + var answer, body, rvar, set; + o.indent += TAB; + set = ''; + ({body} = this); + if (body.isEmpty()) { + body = this.makeCode(''); + } else { + if (this.returns) { + body.makeReturn(rvar = o.scope.freeVariable('results')); + set = `${this.tab}${rvar} = [];\n`; + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new StatementLiteral("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode(`\n${this.tab}`)); + } + answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}")); + if (this.returns) { + answer.push(this.makeCode(`\n${this.tab}return ${rvar};`)); + } + return answer; + } + + }; + + While.prototype.children = ['condition', 'guard', 'body']; + + While.prototype.isStatement = YES; + + return While; + + })(); + + exports.Op = Op = (function() { + var CONVERSIONS, INVERSIONS; + + class Op extends Base { + constructor(op, first, second, flip) { + if (op === 'in') { + return new In(first, second); + } + if (op === 'do') { + return Op.prototype.generateDo(first); + } + if (op === 'new') { + if (first instanceof Call && !first["do"] && !first.isNew) { + return first.newInstance(); + } + if (first instanceof Code && first.bound || first["do"]) { + first = new Parens(first); + } + } + super(); + this.operator = CONVERSIONS[op] || op; + this.first = first; + this.second = second; + this.flip = !!flip; + return this; + } + + isNumber() { + var ref1; + return this.isUnary() && ((ref1 = this.operator) === '+' || ref1 === '-') && this.first instanceof Value && this.first.isNumber(); + } + + isAwait() { + return this.operator === 'await'; + } + + isYield() { + var ref1; + return (ref1 = this.operator) === 'yield' || ref1 === 'yield*'; + } + + isUnary() { + return !this.second; + } + + shouldCache() { + return !this.isNumber(); + } + + isChainable() { + var ref1; + return (ref1 = this.operator) === '<' || ref1 === '>' || ref1 === '>=' || ref1 === '<=' || ref1 === '===' || ref1 === '!=='; + } + + invert() { + var allInvertable, curr, fst, op, ref1; + if (this.isChainable() && this.first.isChainable()) { + allInvertable = true; + curr = this; + while (curr && curr.operator) { + allInvertable && (allInvertable = curr.operator in INVERSIONS); + curr = curr.first; + } + if (!allInvertable) { + return new Parens(this).invert(); + } + curr = this; + while (curr && curr.operator) { + curr.invert = !curr.invert; + curr.operator = INVERSIONS[curr.operator]; + curr = curr.first; + } + return this; + } else if (op = INVERSIONS[this.operator]) { + this.operator = op; + if (this.first.unwrap() instanceof Op) { + this.first.invert(); + } + return this; + } else if (this.second) { + return new Parens(this).invert(); + } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((ref1 = fst.operator) === '!' || ref1 === 'in' || ref1 === 'instanceof')) { + return fst; + } else { + return new Op('!', this); + } + } + + unfoldSoak(o) { + var ref1; + return ((ref1 = this.operator) === '++' || ref1 === '--' || ref1 === 'delete') && unfoldSoak(o, this, 'first'); + } + + generateDo(exp) { + var call, func, j, len1, param, passedParams, ref, ref1; + passedParams = []; + func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; + ref1 = func.params || []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + param = ref1[j]; + if (param.value) { + passedParams.push(param.value); + delete param.value; + } else { + passedParams.push(param); + } + } + call = new Call(exp, passedParams); + call["do"] = true; + return call; + } + + compileNode(o) { + var answer, isChain, lhs, message, ref1, rhs; + isChain = this.isChainable() && this.first.isChainable(); + if (!isChain) { + this.first.front = this.front; + } + if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { + this.error('delete operand may not be argument or var'); + } + if ((ref1 = this.operator) === '--' || ref1 === '++') { + message = isUnassignable(this.first.unwrapAll().value); + if (message) { + this.first.error(message); + } + } + if (this.isYield() || this.isAwait()) { + return this.compileContinuation(o); + } + if (this.isUnary()) { + return this.compileUnary(o); + } + if (isChain) { + return this.compileChain(o); + } + switch (this.operator) { + case '?': + return this.compileExistence(o, this.second.isDefaultValue); + case '**': + return this.compilePower(o); + case '//': + return this.compileFloorDivision(o); + case '%%': + return this.compileModulo(o); + default: + lhs = this.first.compileToFragments(o, LEVEL_OP); + rhs = this.second.compileToFragments(o, LEVEL_OP); + answer = [].concat(lhs, this.makeCode(` ${this.operator} `), rhs); + if (o.level <= LEVEL_OP) { + return answer; + } else { + return this.wrapInParentheses(answer); + } + } + } + + compileChain(o) { + var fragments, fst, shared; + [this.first.second, shared] = this.first.second.cache(o); + fst = this.first.compileToFragments(o, LEVEL_OP); + fragments = fst.concat(this.makeCode(` ${(this.invert ? '&&' : '||')} `), shared.compileToFragments(o), this.makeCode(` ${this.operator} `), this.second.compileToFragments(o, LEVEL_OP)); + return this.wrapInParentheses(fragments); + } + + compileExistence(o, checkOnlyUndefined) { + var fst, ref; + if (this.first.shouldCache()) { + ref = new IdentifierLiteral(o.scope.freeVariable('ref')); + fst = new Parens(new Assign(ref, this.first)); + } else { + fst = this.first; + ref = fst; + } + return new If(new Existence(fst, checkOnlyUndefined), ref, { + type: 'if' + }).addElse(this.second).compileToFragments(o); + } + + compileUnary(o) { + var op, parts, plusMinus; + parts = []; + op = this.operator; + parts.push([this.makeCode(op)]); + if (op === '!' && this.first instanceof Existence) { + this.first.negated = !this.first.negated; + return this.first.compileToFragments(o); + } + if (o.level >= LEVEL_ACCESS) { + return (new Parens(this)).compileToFragments(o); + } + plusMinus = op === '+' || op === '-'; + if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { + parts.push([this.makeCode(' ')]); + } + if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { + this.first = new Parens(this.first); + } + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + if (this.flip) { + parts.reverse(); + } + return this.joinFragmentArrays(parts, ''); + } + + compileContinuation(o) { + var op, parts, ref1, ref2; + parts = []; + op = this.operator; + if (o.scope.parent == null) { + this.error(`${this.operator} can only occur inside functions`); + } + if (((ref1 = o.scope.method) != null ? ref1.bound : void 0) && o.scope.method.isGenerator) { + this.error('yield cannot occur inside bound (fat arrow) functions'); + } + if (indexOf.call(Object.keys(this.first), 'expression') >= 0 && !(this.first instanceof Throw)) { + if (this.first.expression != null) { + parts.push(this.first.expression.compileToFragments(o, LEVEL_OP)); + } + } else { + if (o.level >= LEVEL_PAREN) { + parts.push([this.makeCode("(")]); + } + parts.push([this.makeCode(op)]); + if (((ref2 = this.first.base) != null ? ref2.value : void 0) !== '') { + parts.push([this.makeCode(" ")]); + } + parts.push(this.first.compileToFragments(o, LEVEL_OP)); + if (o.level >= LEVEL_PAREN) { + parts.push([this.makeCode(")")]); + } + } + return this.joinFragmentArrays(parts, ''); + } + + compilePower(o) { + var pow; + pow = new Value(new IdentifierLiteral('Math'), [new Access(new PropertyName('pow'))]); + return new Call(pow, [this.first, this.second]).compileToFragments(o); + } + + compileFloorDivision(o) { + var div, floor, second; + floor = new Value(new IdentifierLiteral('Math'), [new Access(new PropertyName('floor'))]); + second = this.second.shouldCache() ? new Parens(this.second) : this.second; + div = new Op('/', this.first, second); + return new Call(floor, [div]).compileToFragments(o); + } + + compileModulo(o) { + var mod; + mod = new Value(new Literal(utility('modulo', o))); + return new Call(mod, [this.first, this.second]).compileToFragments(o); + } + + toString(idt) { + return super.toString(idt, this.constructor.name + ' ' + this.operator); + } + + }; + + CONVERSIONS = { + '==': '===', + '!=': '!==', + 'of': 'in', + 'yieldfrom': 'yield*' + }; + + INVERSIONS = { + '!==': '===', + '===': '!==' + }; + + Op.prototype.children = ['first', 'second']; + + return Op; + + })(); + + exports.In = In = (function() { + class In extends Base { + constructor(object, array) { + super(); + this.object = object; + this.array = array; + } + + compileNode(o) { + var hasSplat, j, len1, obj, ref1; + if (this.array instanceof Value && this.array.isArray() && this.array.base.objects.length) { + ref1 = this.array.base.objects; + for (j = 0, len1 = ref1.length; j < len1; j++) { + obj = ref1[j]; + if (!(obj instanceof Splat)) { + continue; + } + hasSplat = true; + break; + } + if (!hasSplat) { + return this.compileOrTest(o); + } + } + return this.compileLoopTest(o); + } + + compileOrTest(o) { + var cmp, cnj, i, item, j, len1, ref, ref1, sub, tests; + [sub, ref] = this.object.cache(o, LEVEL_OP); + [cmp, cnj] = this.negated ? [' !== ', ' && '] : [' === ', ' || ']; + tests = []; + ref1 = this.array.base.objects; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + item = ref1[i]; + if (i) { + tests.push(this.makeCode(cnj)); + } + tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS)); + } + if (o.level < LEVEL_OP) { + return tests; + } else { + return this.wrapInParentheses(tests); + } + } + + compileLoopTest(o) { + var fragments, ref, sub; + [sub, ref] = this.object.cache(o, LEVEL_LIST); + fragments = [].concat(this.makeCode(utility('indexOf', o) + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0'))); + if (fragmentsToText(sub) === fragmentsToText(ref)) { + return fragments; + } + fragments = sub.concat(this.makeCode(', '), fragments); + if (o.level < LEVEL_LIST) { + return fragments; + } else { + return this.wrapInParentheses(fragments); + } + } + + toString(idt) { + return super.toString(idt, this.constructor.name + (this.negated ? '!' : '')); + } + + }; + + In.prototype.children = ['object', 'array']; + + In.prototype.invert = NEGATE; + + return In; + + })(); + + exports.Try = Try = (function() { + class Try extends Base { + constructor(attempt, errorVariable, recovery, ensure) { + super(); + this.attempt = attempt; + this.errorVariable = errorVariable; + this.recovery = recovery; + this.ensure = ensure; + } + + jumps(o) { + var ref1; + return this.attempt.jumps(o) || ((ref1 = this.recovery) != null ? ref1.jumps(o) : void 0); + } + + makeReturn(res) { + if (this.attempt) { + this.attempt = this.attempt.makeReturn(res); + } + if (this.recovery) { + this.recovery = this.recovery.makeReturn(res); + } + return this; + } + + compileNode(o) { + var catchPart, ensurePart, generatedErrorVariableName, message, placeholder, tryPart; + o.indent += TAB; + tryPart = this.attempt.compileToFragments(o, LEVEL_TOP); + catchPart = this.recovery ? (generatedErrorVariableName = o.scope.freeVariable('error', { + reserve: false + }), placeholder = new IdentifierLiteral(generatedErrorVariableName), this.errorVariable ? (message = isUnassignable(this.errorVariable.unwrapAll().value), message ? this.errorVariable.error(message) : void 0, 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}}`)) : []; + return [].concat(this.makeCode(`${this.tab}try {\n`), tryPart, this.makeCode(`\n${this.tab}}`), catchPart, ensurePart); + } + + }; + + Try.prototype.children = ['attempt', 'recovery', 'ensure']; + + Try.prototype.isStatement = YES; + + return Try; + + })(); + + exports.Throw = Throw = (function() { + class Throw extends Base { + constructor(expression1) { + super(); + this.expression = expression1; + } + + compileNode(o) { + return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";")); + } + + }; + + Throw.prototype.children = ['expression']; + + Throw.prototype.isStatement = YES; + + Throw.prototype.jumps = NO; + + Throw.prototype.makeReturn = THIS; + + return Throw; + + })(); + + exports.Existence = Existence = (function() { + class Existence extends Base { + constructor(expression1, onlyNotUndefined = false) { + super(); + this.expression = expression1; + this.comparisonTarget = onlyNotUndefined ? 'undefined' : 'null'; + } + + compileNode(o) { + var cmp, cnj, code; + this.expression.front = this.front; + code = this.expression.compile(o, LEVEL_OP); + if (this.expression.unwrap() instanceof IdentifierLiteral && !o.scope.check(code)) { + [cmp, cnj] = this.negated ? ['===', '||'] : ['!==', '&&']; + code = `typeof ${code} ${cmp} \"undefined\"` + (this.comparisonTarget !== 'undefined' ? ` ${cnj} ${code} ${cmp} ${this.comparisonTarget}` : ''); + } else { + cmp = this.comparisonTarget === 'null' ? this.negated ? '==' : '!=' : this.negated ? '===' : '!=='; + code = `${code} ${cmp} ${this.comparisonTarget}`; + } + return [this.makeCode(o.level <= LEVEL_COND ? code : `(${code})`)]; + } + + }; + + Existence.prototype.children = ['expression']; + + Existence.prototype.invert = NEGATE; + + return Existence; + + })(); + + exports.Parens = Parens = (function() { + class Parens extends Base { + constructor(body1) { + super(); + this.body = body1; + } + + unwrap() { + return this.body; + } + + shouldCache() { + return this.body.shouldCache(); + } + + compileNode(o) { + var bare, expr, fragments; + expr = this.body.unwrap(); + if (expr instanceof Value && expr.isAtomic()) { + expr.front = this.front; + return expr.compileToFragments(o); + } + fragments = expr.compileToFragments(o, LEVEL_PAREN); + bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); + if (bare) { + return fragments; + } else { + return this.wrapInParentheses(fragments); + } + } + + }; + + Parens.prototype.children = ['body']; + + return Parens; + + })(); + + exports.StringWithInterpolations = StringWithInterpolations = (function() { + class StringWithInterpolations extends Base { + constructor(body1) { + super(); + this.body = body1; + } + + unwrap() { + return this; + } + + shouldCache() { + return this.body.shouldCache(); + } + + compileNode(o) { + var element, elements, expr, fragments, j, len1, value; + expr = this.body.unwrap(); + elements = []; + expr.traverseChildren(false, function(node) { + if (node instanceof StringLiteral) { + elements.push(node); + return true; + } else if (node instanceof Parens) { + elements.push(node); + return false; + } + return true; + }); + fragments = []; + fragments.push(this.makeCode('`')); + for (j = 0, len1 = elements.length; j < len1; j++) { + element = elements[j]; + if (element instanceof StringLiteral) { + value = element.value.slice(1, -1); + value = value.replace(/(\\*)(`|\$\{)/g, function(match, backslashes, toBeEscaped) { + if (backslashes.length % 2 === 0) { + return `${backslashes}\\${toBeEscaped}`; + } else { + return match; + } + }); + fragments.push(this.makeCode(value)); + } else { + fragments.push(this.makeCode('${')); + fragments.push(...element.compileToFragments(o, LEVEL_PAREN)); + fragments.push(this.makeCode('}')); + } + } + fragments.push(this.makeCode('`')); + return fragments; + } + + }; + + StringWithInterpolations.prototype.children = ['body']; + + return StringWithInterpolations; + + })(); + + exports.For = For = (function() { + class For extends While { + constructor(body, source) { + var ref1, ref2; + super(); + ({source: this.source, guard: this.guard, step: this.step, name: this.name, index: this.index} = source); + this.body = Block.wrap([body]); + this.own = !!source.own; + this.object = !!source.object; + this.from = !!source.from; + if (this.from && this.index) { + this.index.error('cannot use index with for-from'); + } + if (this.own && !this.object) { + source.ownTag.error(`cannot use own with for-${(this.from ? 'from' : 'in')}`); + } + if (this.object) { + [this.name, this.index] = [this.index, this.name]; + } + if (((ref1 = this.index) != null ? typeof ref1.isArray === "function" ? ref1.isArray() : void 0 : void 0) || ((ref2 = this.index) != null ? typeof ref2.isObject === "function" ? ref2.isObject() : void 0 : void 0)) { + this.index.error('index cannot be a pattern matching expression'); + } + this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length && !this.from; + this.pattern = this.name instanceof Value; + if (this.range && this.index) { + this.index.error('indexes do not apply to range loops'); + } + if (this.range && this.pattern) { + this.name.error('cannot pattern match over range loops'); + } + this.returns = false; + } + + compileNode(o) { + var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, last, lvar, name, namePart, ref, ref1, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart; + body = Block.wrap([this.body]); + ref1 = body.expressions, last = ref1[ref1.length - 1]; + if ((last != null ? last.jumps() : void 0) instanceof Return) { + this.returns = false; + } + source = this.range ? this.source.base : this.source; + scope = o.scope; + if (!this.pattern) { + name = this.name && (this.name.compile(o, LEVEL_LIST)); + } + index = this.index && (this.index.compile(o, LEVEL_LIST)); + if (name && !this.pattern) { + scope.find(name); + } + if (index && !(this.index instanceof Value)) { + scope.find(index); + } + if (this.returns) { + rvar = scope.freeVariable('results'); + } + if (this.from) { + if (this.pattern) { + ivar = scope.freeVariable('x', { + single: true + }); + } + } else { + ivar = (this.object && index) || scope.freeVariable('i', { + single: true + }); + } + kvar = ((this.range || this.from) && name) || index || ivar; + kvarAssign = kvar !== ivar ? `${kvar} = ` : ""; + if (this.step && !this.range) { + [step, stepVar] = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST, shouldCacheOrIsAssignable)); + if (this.step.isNumber()) { + stepNum = Number(stepVar); + } + } + if (this.pattern) { + name = ivar; + } + varPart = ''; + guardPart = ''; + defPart = ''; + idt1 = this.tab + TAB; + if (this.range) { + forPartFragments = source.compileToFragments(merge(o, { + index: ivar, + name, + step: this.step, + shouldCache: shouldCacheOrIsAssignable + })); + } else { + svar = this.source.compile(o, LEVEL_LIST); + if ((name || this.own) && !(this.source.unwrap() instanceof IdentifierLiteral)) { + defPart += `${this.tab}${(ref = scope.freeVariable('ref'))} = ${svar};\n`; + svar = ref; + } + if (name && !this.pattern && !this.from) { + namePart = `${name} = ${svar}[${kvar}]`; + } + if (!this.object && !this.from) { + if (step !== stepVar) { + defPart += `${this.tab}${step};\n`; + } + down = stepNum < 0; + if (!(this.step && (stepNum != null) && down)) { + lvar = scope.freeVariable('len'); + } + declare = `${kvarAssign}${ivar} = 0, ${lvar} = ${svar}.length`; + declareDown = `${kvarAssign}${ivar} = ${svar}.length - 1`; + compare = `${ivar} < ${lvar}`; + compareDown = `${ivar} >= 0`; + if (this.step) { + if (stepNum != null) { + if (down) { + compare = compareDown; + declare = declareDown; + } + } else { + compare = `${stepVar} > 0 ? ${compare} : ${compareDown}`; + declare = `(${stepVar} > 0 ? (${declare}) : ${declareDown})`; + } + increment = `${ivar} += ${stepVar}`; + } else { + increment = `${(kvar !== ivar ? `++${ivar}` : `${ivar}++`)}`; + } + forPartFragments = [this.makeCode(`${declare}; ${compare}; ${kvarAssign}${increment}`)]; + } + } + if (this.returns) { + resultPart = `${this.tab}${rvar} = [];\n`; + returnResult = `\n${this.tab}return ${rvar};`; + body.makeReturn(rvar); + } + if (this.guard) { + if (body.expressions.length > 1) { + body.expressions.unshift(new If((new Parens(this.guard)).invert(), new StatementLiteral("continue"))); + } else { + if (this.guard) { + body = Block.wrap([new If(this.guard, body)]); + } + } + } + if (this.pattern) { + body.expressions.unshift(new Assign(this.name, this.from ? new IdentifierLiteral(kvar) : new Literal(`${svar}[${kvar}]`))); + } + defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body)); + if (namePart) { + varPart = `\n${idt1}${namePart};`; + } + if (this.object) { + forPartFragments = [this.makeCode(`${kvar} in ${svar}`)]; + if (this.own) { + guardPart = `\n${idt1}if (!${utility('hasProp', o)}.call(${svar}, ${kvar})) continue;`; + } + } else if (this.from) { + forPartFragments = [this.makeCode(`${kvar} of ${svar}`)]; + } + bodyFragments = body.compileToFragments(merge(o, { + indent: idt1 + }), LEVEL_TOP); + if (bodyFragments && bodyFragments.length > 0) { + bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n")); + } + return [].concat(defPartFragments, this.makeCode(`${resultPart || ''}${this.tab}for (`), forPartFragments, this.makeCode(`) {${guardPart}${varPart}`), bodyFragments, this.makeCode(`${this.tab}}${returnResult || ''}`)); + } + + pluckDirectCall(o, body) { + var base, defs, expr, fn, idx, j, len1, ref, ref1, ref2, ref3, ref4, ref5, ref6, val; + defs = []; + ref1 = body.expressions; + for (idx = j = 0, len1 = ref1.length; j < len1; idx = ++j) { + expr = ref1[idx]; + expr = expr.unwrapAll(); + if (!(expr instanceof Call)) { + continue; + } + val = (ref2 = expr.variable) != null ? ref2.unwrapAll() : void 0; + if (!((val instanceof Code) || (val instanceof Value && ((ref3 = val.base) != null ? ref3.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((ref4 = (ref5 = val.properties[0].name) != null ? ref5.value : void 0) === 'call' || ref4 === 'apply')))) { + continue; + } + fn = ((ref6 = val.base) != null ? ref6.unwrapAll() : void 0) || val; + ref = new IdentifierLiteral(o.scope.freeVariable('fn')); + base = new Value(ref); + if (val.base) { + [val.base, base] = [base, val]; + } + body.expressions[idx] = new Call(base, expr.args); + defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n')); + } + return defs; + } + + }; + + For.prototype.children = ['body', 'source', 'guard', 'step']; + + return For; + + })(); + + exports.Switch = Switch = (function() { + class Switch extends Base { + constructor(subject, cases, otherwise) { + super(); + this.subject = subject; + this.cases = cases; + this.otherwise = otherwise; + } + + jumps(o = { + block: true + }) { + var block, conds, j, jumpNode, len1, ref1, ref2; + ref1 = this.cases; + for (j = 0, len1 = ref1.length; j < len1; j++) { + [conds, block] = ref1[j]; + if (jumpNode = block.jumps(o)) { + return jumpNode; + } + } + return (ref2 = this.otherwise) != null ? ref2.jumps(o) : void 0; + } + + makeReturn(res) { + var j, len1, pair, ref1, ref2; + ref1 = this.cases; + for (j = 0, len1 = ref1.length; j < len1; j++) { + pair = ref1[j]; + pair[1].makeReturn(res); + } + if (res) { + this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); + } + if ((ref2 = this.otherwise) != null) { + ref2.makeReturn(res); + } + return this; + } + + compileNode(o) { + var block, body, cond, conditions, expr, fragments, i, idt1, idt2, j, k, len1, len2, ref1, ref2; + idt1 = o.indent + TAB; + idt2 = o.indent = idt1 + TAB; + fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n")); + ref1 = this.cases; + for (i = j = 0, len1 = ref1.length; j < len1; i = ++j) { + [conditions, block] = ref1[i]; + ref2 = flatten([conditions]); + for (k = 0, len2 = ref2.length; k < len2; k++) { + cond = ref2[k]; + if (!this.subject) { + cond = cond.invert(); + } + fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n")); + } + if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) { + fragments = fragments.concat(body, this.makeCode('\n')); + } + if (i === this.cases.length - 1 && !this.otherwise) { + break; + } + expr = this.lastNonComment(block.expressions); + if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { + continue; + } + fragments.push(cond.makeCode(idt2 + 'break;\n')); + } + if (this.otherwise && this.otherwise.expressions.length) { + fragments.push(this.makeCode(idt1 + "default:\n"), ...this.otherwise.compileToFragments(o, LEVEL_TOP), this.makeCode("\n")); + } + fragments.push(this.makeCode(this.tab + '}')); + return fragments; + } + + }; + + Switch.prototype.children = ['subject', 'cases', 'otherwise']; + + Switch.prototype.isStatement = YES; + + return Switch; + + })(); + + exports.If = If = (function() { + class If extends Base { + constructor(condition, body1, options = {}) { + super(); + this.body = body1; + this.condition = options.type === 'unless' ? condition.invert() : condition; + this.elseBody = null; + this.isChain = false; + ({soak: this.soak} = options); + } + + bodyNode() { + var ref1; + return (ref1 = this.body) != null ? ref1.unwrap() : void 0; + } + + elseBodyNode() { + var ref1; + return (ref1 = this.elseBody) != null ? ref1.unwrap() : void 0; + } + + addElse(elseBody) { + if (this.isChain) { + this.elseBodyNode().addElse(elseBody); + } else { + this.isChain = elseBody instanceof If; + this.elseBody = this.ensureBlock(elseBody); + this.elseBody.updateLocationDataIfMissing(elseBody.locationData); + } + return this; + } + + isStatement(o) { + var ref1; + return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((ref1 = this.elseBodyNode()) != null ? ref1.isStatement(o) : void 0); + } + + jumps(o) { + var ref1; + return this.body.jumps(o) || ((ref1 = this.elseBody) != null ? ref1.jumps(o) : void 0); + } + + compileNode(o) { + if (this.isStatement(o)) { + return this.compileStatement(o); + } else { + return this.compileExpression(o); + } + } + + makeReturn(res) { + if (res) { + this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); + } + this.body && (this.body = new Block([this.body.makeReturn(res)])); + this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); + return this; + } + + ensureBlock(node) { + if (node instanceof Block) { + return node; + } else { + return new Block([node]); + } + } + + compileStatement(o) { + var answer, body, child, cond, exeq, ifPart, indent; + child = del(o, 'chainChild'); + exeq = del(o, 'isExistentialEquals'); + if (exeq) { + return new If(this.condition.invert(), this.elseBodyNode(), { + type: 'if' + }).compileToFragments(o); + } + indent = o.indent + TAB; + cond = this.condition.compileToFragments(o, LEVEL_PAREN); + body = this.ensureBlock(this.body).compileToFragments(merge(o, {indent})); + ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode(`\n${this.tab}}`)); + if (!child) { + ifPart.unshift(this.makeCode(this.tab)); + } + if (!this.elseBody) { + return ifPart; + } + answer = ifPart.concat(this.makeCode(' else ')); + if (this.isChain) { + o.chainChild = true; + answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP)); + } else { + answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, {indent}), LEVEL_TOP), this.makeCode(`\n${this.tab}}`)); + } + return answer; + } + + compileExpression(o) { + var alt, body, cond, fragments; + cond = this.condition.compileToFragments(o, LEVEL_COND); + body = this.bodyNode().compileToFragments(o, LEVEL_LIST); + alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')]; + fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt); + if (o.level >= LEVEL_COND) { + return this.wrapInParentheses(fragments); + } else { + return fragments; + } + } + + unfoldSoak() { + return this.soak && this; + } + + }; + + If.prototype.children = ['condition', 'body', 'elseBody']; + + return If; + + })(); + + UTILITIES = { + extend: function(o) { + return `function(child, parent) { for (var key in parent) { if (${utility('hasProp', o)}.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); return child; }`; + }, + bind: function() { + return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }'; + }, + indexOf: function() { + return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"; + }, + modulo: function() { + return "function(a, b) { return (+a % (b = +b) + b) % b; }"; + }, + hasProp: function() { + return '{}.hasOwnProperty'; + }, + slice: function() { + return '[].slice'; + } + }; + + LEVEL_TOP = 1; + + LEVEL_PAREN = 2; + + LEVEL_LIST = 3; + + LEVEL_COND = 4; + + LEVEL_OP = 5; + + LEVEL_ACCESS = 6; + + TAB = ' '; + + SIMPLENUM = /^[+-]?\d+$/; + + utility = function(name, o) { + var ref, root; + ({root} = o.scope); + if (name in root.utilities) { + return root.utilities[name]; + } else { + ref = root.freeVariable(name); + root.assign(ref, UTILITIES[name](o)); + return root.utilities[name] = ref; + } + }; + + multident = function(code, tab) { + code = code.replace(/\n/g, '$&' + tab); + return code.replace(/\s+$/, ''); + }; + + isLiteralArguments = function(node) { + return node instanceof IdentifierLiteral && node.value === 'arguments'; + }; + + isLiteralThis = function(node) { + return node instanceof ThisLiteral || (node instanceof Code && node.bound); + }; + + shouldCacheOrIsAssignable = function(node) { + return node.shouldCache() || (typeof node.isAssignable === "function" ? node.isAssignable() : void 0); + }; + + unfoldSoak = function(o, parent, name) { + var ifn; + if (!(ifn = parent[name].unfoldSoak(o))) { + return; + } + parent[name] = ifn.body; + ifn.body = new Value(parent); + return ifn; + }; + +}).call(this); + + return module.exports; +})();require['./sourcemap'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var LineMap, SourceMap; + + LineMap = class LineMap { + constructor(line1) { + this.line = line1; + this.columns = []; + } + + add(column, [sourceLine, sourceColumn], options = {}) { + if (this.columns[column] && options.noReplace) { + return; + } + return this.columns[column] = { + line: this.line, + column, + sourceLine, + sourceColumn + }; + } + + sourceLocation(column) { + var mapping; + while (!((mapping = this.columns[column]) || (column <= 0))) { + column--; + } + return mapping && [mapping.sourceLine, mapping.sourceColumn]; + } + + }; + + SourceMap = (function() { + var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK; + + class SourceMap { + constructor() { + this.lines = []; + } + + add(sourceLocation, generatedLocation, options = {}) { + var base, column, line, lineMap; + [line, column] = generatedLocation; + lineMap = ((base = this.lines)[line] || (base[line] = new LineMap(line))); + return lineMap.add(column, sourceLocation, options); + } + + sourceLocation([line, column]) { + var lineMap; + while (!((lineMap = this.lines[line]) || (line <= 0))) { + line--; + } + return lineMap && lineMap.sourceLocation(column); + } + + generate(options = {}, code = null) { + var buffer, i, j, lastColumn, lastSourceColumn, lastSourceLine, len, len1, lineMap, lineNumber, mapping, needComma, ref, ref1, v3, writingline; + writingline = 0; + lastColumn = 0; + lastSourceLine = 0; + lastSourceColumn = 0; + needComma = false; + buffer = ""; + ref = this.lines; + for (lineNumber = i = 0, len = ref.length; i < len; lineNumber = ++i) { + lineMap = ref[lineNumber]; + if (lineMap) { + ref1 = lineMap.columns; + for (j = 0, len1 = ref1.length; j < len1; j++) { + mapping = ref1[j]; + if (!(mapping)) { + continue; + } + while (writingline < mapping.line) { + lastColumn = 0; + needComma = false; + buffer += ";"; + writingline++; + } + if (needComma) { + buffer += ","; + needComma = false; + } + buffer += this.encodeVlq(mapping.column - lastColumn); + lastColumn = mapping.column; + buffer += this.encodeVlq(0); + buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine); + lastSourceLine = mapping.sourceLine; + buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn); + lastSourceColumn = mapping.sourceColumn; + needComma = true; + } + } + } + v3 = { + version: 3, + file: options.generatedFile || '', + sourceRoot: options.sourceRoot || '', + sources: options.sourceFiles || [''], + names: [], + mappings: buffer + }; + if (options.inlineMap) { + v3.sourcesContent = [code]; + } + return v3; + } + + encodeVlq(value) { + var answer, nextChunk, signBit, valueToEncode; + answer = ''; + signBit = value < 0 ? 1 : 0; + valueToEncode = (Math.abs(value) << 1) + signBit; + while (valueToEncode || !answer) { + nextChunk = valueToEncode & VLQ_VALUE_MASK; + valueToEncode = valueToEncode >> VLQ_SHIFT; + if (valueToEncode) { + nextChunk |= VLQ_CONTINUATION_BIT; + } + answer += this.encodeBase64(nextChunk); + } + return answer; + } + + encodeBase64(value) { + return BASE64_CHARS[value] || (function() { + throw new Error(`Cannot Base64 encode value: ${value}`); + })(); + } + + }; + + VLQ_SHIFT = 5; + + VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT; + + VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1; + + BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + return SourceMap; + + })(); + + module.exports = SourceMap; + +}).call(this); + + return module.exports; +})();require['./coffeescript'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var Lexer, SourceMap, base64encode, compile, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, sources, vm, withPrettyErrors, + hasProp = {}.hasOwnProperty; + + fs = require('fs'); + + vm = require('vm'); + + path = require('path'); + + ({Lexer} = require('./lexer')); + + ({parser} = require('./parser')); + + helpers = require('./helpers'); + + SourceMap = require('./sourcemap'); + + packageJson = require('../../package.json'); + + exports.VERSION = packageJson.version; + + exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md']; + + exports.helpers = helpers; + + base64encode = function(src) { + switch (false) { + case typeof Buffer !== 'function': + return Buffer.from(src).toString('base64'); + case typeof btoa !== 'function': + return btoa(encodeURIComponent(src).replace(/%([0-9A-F]{2})/g, function(match, p1) { + return String.fromCharCode('0x' + p1); + })); + default: + throw new Error('Unable to base64 encode inline sourcemap.'); + } + }; + + withPrettyErrors = function(fn) { + return function(code, options = {}) { + var err; + try { + return fn.call(this, code, options); + } catch (error) { + err = error; + if (typeof code !== 'string') { + throw err; + } + throw helpers.updateSyntaxError(err, code, options.filename); + } + }; + }; + + sources = {}; + + sourceMaps = {}; + + exports.compile = compile = withPrettyErrors(function(code, options) { + var currentColumn, currentLine, encoded, extend, filename, fragment, fragments, generateSourceMap, header, i, j, js, len, len1, map, merge, newLines, ref, ref1, sourceMapDataURI, sourceURL, token, tokens, v3SourceMap; + ({merge, extend} = helpers); + options = extend({}, options); + generateSourceMap = options.sourceMap || options.inlineMap || (options.filename == null); + filename = options.filename || ''; + sources[filename] = code; + if (generateSourceMap) { + map = new SourceMap; + } + tokens = lexer.tokenize(code, options); + options.referencedVars = (function() { + var i, len, results; + results = []; + for (i = 0, len = tokens.length; i < len; i++) { + token = tokens[i]; + if (token[0] === 'IDENTIFIER') { + results.push(token[1]); + } + } + return results; + })(); + if (!((options.bare != null) && options.bare === true)) { + for (i = 0, len = tokens.length; i < len; i++) { + token = tokens[i]; + if ((ref = token[0]) === 'IMPORT' || ref === 'EXPORT') { + options.bare = true; + break; + } + } + } + fragments = parser.parse(tokens).compileToFragments(options); + currentLine = 0; + if (options.header) { + currentLine += 1; + } + if (options.shiftLine) { + currentLine += 1; + } + currentColumn = 0; + js = ""; + for (j = 0, len1 = fragments.length; j < len1; j++) { + fragment = fragments[j]; + if (generateSourceMap) { + if (fragment.locationData && !/^[;\s]*$/.test(fragment.code)) { + map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], { + noReplace: true + }); + } + newLines = helpers.count(fragment.code, "\n"); + currentLine += newLines; + if (newLines) { + currentColumn = fragment.code.length - (fragment.code.lastIndexOf("\n") + 1); + } else { + currentColumn += fragment.code.length; + } + } + js += fragment.code; + } + if (options.header) { + header = `Generated by CoffeeScript ${this.VERSION}`; + js = `// ${header}\n${js}`; + } + if (generateSourceMap) { + v3SourceMap = map.generate(options, code); + sourceMaps[filename] = map; + } + if (options.inlineMap) { + encoded = base64encode(JSON.stringify(v3SourceMap)); + sourceMapDataURI = `//# sourceMappingURL=data:application/json;base64,${encoded}`; + sourceURL = `//# sourceURL=${(ref1 = options.filename) != null ? ref1 : 'coffeescript'}`; + js = `${js}\n${sourceMapDataURI}\n${sourceURL}`; + } + if (options.sourceMap) { + return { + js, + sourceMap: map, + v3SourceMap: JSON.stringify(v3SourceMap, null, 2) + }; + } else { + return js; + } + }); + + exports.tokens = withPrettyErrors(function(code, options) { + return lexer.tokenize(code, options); + }); + + exports.nodes = withPrettyErrors(function(source, options) { + if (typeof source === 'string') { + return parser.parse(lexer.tokenize(source, options)); + } else { + return parser.parse(source); + } + }); + + exports.run = function(code, options = {}) { + var answer, dir, mainModule, ref; + mainModule = require.main; + mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : ''; + mainModule.moduleCache && (mainModule.moduleCache = {}); + dir = options.filename != null ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); + mainModule.paths = require('module')._nodeModulePaths(dir); + if (!helpers.isCoffee(mainModule.filename) || require.extensions) { + answer = compile(code, options); + code = (ref = answer.js) != null ? ref : answer; + } + return mainModule._compile(code, mainModule.filename); + }; + + exports["eval"] = function(code, options = {}) { + var Module, _module, _require, createContext, i, isContext, js, k, len, o, r, ref, ref1, ref2, ref3, sandbox, v; + if (!(code = code.trim())) { + return; + } + createContext = (ref = vm.Script.createContext) != null ? ref : vm.createContext; + isContext = (ref1 = vm.isContext) != null ? ref1 : function(ctx) { + return options.sandbox instanceof createContext().constructor; + }; + if (createContext) { + if (options.sandbox != null) { + if (isContext(options.sandbox)) { + sandbox = options.sandbox; + } else { + sandbox = createContext(); + ref2 = options.sandbox; + for (k in ref2) { + if (!hasProp.call(ref2, k)) continue; + v = ref2[k]; + sandbox[k] = v; + } + } + sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox; + } else { + sandbox = global; + } + sandbox.__filename = options.filename || 'eval'; + sandbox.__dirname = path.dirname(sandbox.__filename); + if (!(sandbox !== global || sandbox.module || sandbox.require)) { + Module = require('module'); + sandbox.module = _module = new Module(options.modulename || 'eval'); + sandbox.require = _require = function(path) { + return Module._load(path, _module, true); + }; + _module.filename = sandbox.__filename; + ref3 = Object.getOwnPropertyNames(require); + for (i = 0, len = ref3.length; i < len; i++) { + r = ref3[i]; + if (r !== 'paths' && r !== 'arguments' && r !== 'caller') { + _require[r] = require[r]; + } + } + _require.paths = _module.paths = Module._nodeModulePaths(process.cwd()); + _require.resolve = function(request) { + return Module._resolveFilename(request, _module); + }; + } + } + o = {}; + for (k in options) { + if (!hasProp.call(options, k)) continue; + v = options[k]; + o[k] = v; + } + o.bare = true; + js = compile(code, o); + if (sandbox === global) { + return vm.runInThisContext(js); + } else { + return vm.runInContext(js, sandbox); + } + }; + + exports.register = function() { + return require('./register'); + }; + + if (require.extensions) { + ref = this.FILE_EXTENSIONS; + fn1 = function(ext) { + var base; + return (base = require.extensions)[ext] != null ? base[ext] : base[ext] = function() { + throw new Error(`Use CoffeeScript.register() or require the coffeescript/register module to require ${ext} files.`); + }; + }; + for (i = 0, len = ref.length; i < len; i++) { + ext = ref[i]; + fn1(ext); + } + } + + exports._compileFile = function(filename, sourceMap = false, inlineMap = false) { + var answer, err, raw, stripped; + raw = fs.readFileSync(filename, 'utf8'); + stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw; + try { + answer = compile(stripped, { + filename, + sourceMap, + inlineMap, + sourceFiles: [filename], + literate: helpers.isLiterate(filename) + }); + } catch (error) { + err = error; + throw helpers.updateSyntaxError(err, stripped, filename); + } + return answer; + }; + + lexer = new Lexer; + + parser.lexer = { + lex: function() { + var tag, token; + token = parser.tokens[this.pos++]; + if (token) { + [tag, this.yytext, this.yylloc] = token; + parser.errorToken = token.origin || token; + this.yylineno = this.yylloc.first_line; + } else { + tag = ''; + } + return tag; + }, + setInput: function(tokens) { + parser.tokens = tokens; + return this.pos = 0; + }, + upcomingInput: function() { + return ""; + } + }; + + parser.yy = require('./nodes'); + + parser.yy.parseError = function(message, {token}) { + var errorLoc, errorTag, errorText, errorToken, tokens; + ({errorToken, tokens} = parser); + [errorTag, errorText, errorLoc] = errorToken; + errorText = (function() { + switch (false) { + case errorToken !== tokens[tokens.length - 1]: + return 'end of input'; + case errorTag !== 'INDENT' && errorTag !== 'OUTDENT': + return 'indentation'; + 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); + } + })(); + return helpers.throwSyntaxError(`unexpected ${errorText}`, errorLoc); + }; + + formatSourcePosition = function(frame, getSourceMapping) { + var as, column, fileLocation, filename, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; + filename = void 0; + fileLocation = ''; + if (frame.isNative()) { + fileLocation = "native"; + } else { + if (frame.isEval()) { + filename = frame.getScriptNameOrSourceURL(); + if (!filename) { + fileLocation = `${frame.getEvalOrigin()}, `; + } + } else { + filename = frame.getFileName(); + } + filename || (filename = ""); + line = frame.getLineNumber(); + column = frame.getColumnNumber(); + source = getSourceMapping(filename, line, column); + fileLocation = source ? `${filename}:${source[0]}:${source[1]}` : `${filename}:${line}:${column}`; + } + functionName = frame.getFunctionName(); + isConstructor = frame.isConstructor(); + isMethodCall = !(frame.isToplevel() || isConstructor); + if (isMethodCall) { + methodName = frame.getMethodName(); + typeName = frame.getTypeName(); + if (functionName) { + tp = as = ''; + if (typeName && functionName.indexOf(typeName)) { + tp = `${typeName}.`; + } + if (methodName && functionName.indexOf(`.${methodName}`) !== functionName.length - methodName.length - 1) { + as = ` [as ${methodName}]`; + } + return `${tp}${functionName}${as} (${fileLocation})`; + } else { + return `${typeName}.${methodName || ''} (${fileLocation})`; + } + } else if (isConstructor) { + return `new ${functionName || ''} (${fileLocation})`; + } else if (functionName) { + return `${functionName} (${fileLocation})`; + } else { + return fileLocation; + } + }; + + getSourceMap = function(filename) { + var answer; + if (sourceMaps[filename] != null) { + return sourceMaps[filename]; + } else if (sourceMaps[''] != null) { + return sourceMaps['']; + } else if (sources[filename] != null) { + answer = compile(sources[filename], { + filename: filename, + sourceMap: true, + literate: helpers.isLiterate(filename) + }); + return answer.sourceMap; + } else { + return null; + } + }; + + Error.prepareStackTrace = function(err, stack) { + var frame, frames, getSourceMapping; + getSourceMapping = function(filename, line, column) { + var answer, sourceMap; + sourceMap = getSourceMap(filename); + if (sourceMap != null) { + answer = sourceMap.sourceLocation([line - 1, column - 1]); + } + if (answer != null) { + return [answer[0] + 1, answer[1] + 1]; + } else { + return null; + } + }; + frames = (function() { + var j, len1, results; + results = []; + for (j = 0, len1 = stack.length; j < len1; j++) { + frame = stack[j]; + if (frame.getFunction() === exports.run) { + break; + } + results.push(` at ${formatSourcePosition(frame, getSourceMapping)}`); + } + return results; + })(); + return `${err.toString()}\n${frames.join('\n')}\n`; + }; + +}).call(this); + + return module.exports; +})();require['./browser'] = (function() { + var exports = {}, module = {exports: exports}; + // Generated by CoffeeScript 2.0.0-alpha1 +(function() { + var CoffeeScript, compile, runScripts, + 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; }; + + CoffeeScript = require('./coffeescript'); + + CoffeeScript.require = require; + + compile = CoffeeScript.compile; + + CoffeeScript["eval"] = function(code, options = {}) { + if (options.bare == null) { + options.bare = true; + } + return eval(compile(code, options)); + }; + + CoffeeScript.run = function(code, options = {}) { + options.bare = true; + options.shiftLine = true; + return Function(compile(code, options))(); + }; + + if (typeof window === "undefined" || window === null) { + return; + } + + if ((typeof btoa !== "undefined" && btoa !== null) && (typeof JSON !== "undefined" && JSON !== null)) { + compile = function(code, options = {}) { + options.inlineMap = true; + return CoffeeScript.compile(code, options); + }; + } + + CoffeeScript.load = function(url, callback, options = {}, hold = false) { + var xhr; + options.sourceFiles = [url]; + xhr = window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new window.XMLHttpRequest(); + xhr.open('GET', url, true); + if ('overrideMimeType' in xhr) { + xhr.overrideMimeType('text/plain'); + } + xhr.onreadystatechange = function() { + var param, ref; + if (xhr.readyState === 4) { + if ((ref = xhr.status) === 0 || ref === 200) { + param = [xhr.responseText, options]; + if (!hold) { + CoffeeScript.run(...param); + } + } else { + throw new Error(`Could not load ${url}`); + } + if (callback) { + return callback(param); + } + } + }; + return xhr.send(null); + }; + + runScripts = function() { + var coffees, coffeetypes, execute, fn, i, index, j, len, s, script, scripts; + scripts = window.document.getElementsByTagName('script'); + coffeetypes = ['text/coffeescript', 'text/literate-coffeescript']; + coffees = (function() { + var j, len, ref, results; + results = []; + for (j = 0, len = scripts.length; j < len; j++) { + s = scripts[j]; + if (ref = s.type, indexOf.call(coffeetypes, ref) >= 0) { + results.push(s); + } + } + return results; + })(); + index = 0; + execute = function() { + var param; + param = coffees[index]; + if (param instanceof Array) { + CoffeeScript.run(...param); + index++; + return execute(); + } + }; + fn = function(script, i) { + var options, source; + options = { + literate: script.type === coffeetypes[1] + }; + source = script.src || script.getAttribute('data-src'); + if (source) { + options.filename = source; + return CoffeeScript.load(source, function(param) { + coffees[i] = param; + return execute(); + }, options, true); + } else { + options.filename = script.id && script.id !== '' ? script.id : `coffeescript${(i !== 0 ? i : '')}`; + options.sourceFiles = ['embedded']; + return coffees[i] = [script.innerHTML, options]; + } + }; + for (i = j = 0, len = coffees.length; j < len; i = ++j) { + script = coffees[i]; + fn(script, i); + } + return execute(); + }; + + if (window.addEventListener) { + window.addEventListener('DOMContentLoaded', runScripts, false); + } else { + window.attachEvent('onload', runScripts); + } + +}).call(this); + + return module.exports; +})(); + return require['./coffeescript']; + }(); + + if (typeof define === 'function' && define.amd) { + define(function() { return CoffeeScript; }); + } else { + root.CoffeeScript = CoffeeScript; + } +}(this)); \ No newline at end of file diff --git a/docs/v2/index.html b/docs/v2/index.html index 41e82b65..e40aa11c 100644 --- a/docs/v2/index.html +++ b/docs/v2/index.html @@ -714,7 +714,7 @@ textarea {

    CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

    The golden rule of CoffeeScript is: “It’s just JavaScript.” The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable, pretty-printed, and tends to run as fast or faster than the equivalent handwritten JavaScript.

    -

    Latest Version: 2.0.0-alpha1

    +

    Latest Version: 2.0.0-beta1

    npm install -g coffeescript@next
     
    @@ -3126,7 +3126,7 @@ The CoffeeScript logo is available in SVG for use in presentations.
  • Annotated Source

    -

    You can browse the CoffeeScript 2.0.0-alpha1 source in readable, annotated form here. You can also jump directly to a particular source file:

    +

    You can browse the CoffeeScript 2.0.0-beta1 source in readable, annotated form here. You can also jump directly to a particular source file:

    • Grammar Rules — src/grammar
    • Lexing Tokens — src/lexer
    • @@ -3411,6 +3411,14 @@ B = class B extends A {
    • Calling a function named get or set now requires parentheses, to disambiguate from the get or set keywords (which are disallowed).
    • The compiler now requires Node 7.6+, the first version of Node to support asynchronous functions without requiring a flag.
    +
    +

    + 1.12.5 + +

      +
    • Better handling of default, from, as and * within import and export statements. You can now import or export a member named default and the compiler won’t interpret it as the default keyword.
    • +
    • Fixed a bug where invalid octal escape sequences weren’t throwing errors in the compiler.
    • +

    2.0.0-alpha1 diff --git a/docs/v2/test.html b/docs/v2/test.html index 1ede1f58..8c71275c 100644 --- a/docs/v2/test.html +++ b/docs/v2/test.html @@ -440,7 +440,8 @@ test "#1192: assignment starting with object literals", -> # Destructuring Assignment test "empty destructuring assignment", -> - {} = [] = undefined + {} = {} + [] = [] test "chained destructuring assignments", -> [a] = {0: b} = {'0': c} = [nonce={}] @@ -603,7 +604,7 @@ test "simple array destructuring defaults", -> [a = 2] = [undefined] eq 2, a [a = 3] = [null] - eq 3, a + eq null, a # Breaking change in CS2: per ES2015, default values are applied for `undefined` but not for `null`. [a = 4] = [0] eq 0, a arr = [a = 5] @@ -616,7 +617,7 @@ test "simple object destructuring defaults", -> {b = 2} = {b: undefined} eq b, 2 {b = 3} = {b: null} - eq b, 3 + eq b, null # Breaking change in CS2: per ES2015, default values are applied for `undefined` but not for `null`. {b = 4} = {b: 0} eq b, 0 @@ -625,17 +626,17 @@ test "simple object destructuring defaults", -> {b: c = 2} = {b: undefined} eq c, 2 {b: c = 3} = {b: null} - eq c, 3 + eq c, null # Breaking change in CS2: per ES2015, default values are applied for `undefined` but not for `null`. {b: c = 4} = {b: 0} eq c, 0 test "multiple array destructuring defaults", -> - [a = 1, b = 2, c] = [null, 12, 13] + [a = 1, b = 2, c] = [undefined, 12, 13] eq a, 1 eq b, 12 eq c, 13 - [a, b = 2, c = 3] = [null, 12, 13] - eq a, null + [a, b = 2, c = 3] = [undefined, 12, 13] + eq a, undefined eq b, 12 eq c, 13 [a = 1, b, c = 3] = [11, 12] @@ -666,7 +667,7 @@ test "destructuring assignment with context (@) properties and defaults", -> a={}; b={}; c={}; d={}; e={} obj = fn: () -> - local = [a, {b, c: null}, d] + local = [a, {b, c: undefined}, d] [@a, {b: @b = b, @c = c}, @d, @e = e] = local eq undefined, obj[key] for key in ['a','b','c','d','e'] obj.fn() @@ -685,7 +686,7 @@ test "destructuring assignment with defaults single evaluation", -> [a = fn()] = [10] eq 10, a eq 1, callCount - {a = fn(), b: c = fn()} = {a: 20, b: null} + {a = fn(), b: c = fn()} = {a: 20, b: undefined} eq 20, a eq c, 1 eq callCount, 2 @@ -4874,6 +4875,13 @@ test "octal escapes", -> /a\\0\\tb\\\\\\07c/ \ \ \ \ ^\^^ ''' + assertErrorFormat ''' + /a\\1\\tb\\\\\\07c/ + ''', ''' + [stdin]:1:10: error: octal escape sequences are not allowed \\07 + /a\\1\\tb\\\\\\07c/ + \ \ \ \ ^\^^ + ''' assertErrorFormat ''' ///a #{b} \\01/// @@ -5771,6 +5779,142 @@ test "new with 'super'", -> ^^^^^ ''' +test "getter keyword in object", -> + assertErrorFormat ''' + obj = + get foo: -> + ''', ''' + [stdin]:2:3: error: 'get' cannot be used as a keyword, or as a function call without parentheses + get foo: -> + ^^^ + ''' + +test "setter keyword in object", -> + assertErrorFormat ''' + obj = + set foo: -> + ''', ''' + [stdin]:2:3: error: 'set' cannot be used as a keyword, or as a function call without parentheses + set foo: -> + ^^^ + ''' + +test "getter keyword in inline implicit object", -> + assertErrorFormat 'obj = get foo: ->', ''' + [stdin]:1:7: error: 'get' cannot be used as a keyword, or as a function call without parentheses + obj = get foo: -> + ^^^ + ''' + +test "setter keyword in inline implicit object", -> + assertErrorFormat 'obj = set foo: ->', ''' + [stdin]:1:7: error: 'set' cannot be used as a keyword, or as a function call without parentheses + obj = set foo: -> + ^^^ + ''' + +test "getter keyword in inline explicit object", -> + assertErrorFormat 'obj = {get foo: ->}', ''' + [stdin]:1:8: error: 'get' cannot be used as a keyword, or as a function call without parentheses + obj = {get foo: ->} + ^^^ + ''' + +test "setter keyword in inline explicit object", -> + assertErrorFormat 'obj = {set foo: ->}', ''' + [stdin]:1:8: error: 'set' cannot be used as a keyword, or as a function call without parentheses + obj = {set foo: ->} + ^^^ + ''' + +test "getter keyword in function", -> + assertErrorFormat ''' + f = -> + get foo: -> + ''', ''' + [stdin]:2:3: error: 'get' cannot be used as a keyword, or as a function call without parentheses + get foo: -> + ^^^ + ''' + +test "setter keyword in function", -> + assertErrorFormat ''' + f = -> + set foo: -> + ''', ''' + [stdin]:2:3: error: 'set' cannot be used as a keyword, or as a function call without parentheses + set foo: -> + ^^^ + ''' + +test "getter keyword in inline function", -> + assertErrorFormat 'f = -> get foo: ->', ''' + [stdin]:1:8: error: 'get' cannot be used as a keyword, or as a function call without parentheses + f = -> get foo: -> + ^^^ + ''' + +test "setter keyword in inline function", -> + assertErrorFormat 'f = -> set foo: ->', ''' + [stdin]:1:8: error: 'set' cannot be used as a keyword, or as a function call without parentheses + f = -> set foo: -> + ^^^ + ''' + +test "getter keyword in class", -> + assertErrorFormat ''' + class A + get foo: -> + ''', ''' + [stdin]:2:3: error: 'get' cannot be used as a keyword, or as a function call without parentheses + get foo: -> + ^^^ + ''' + +test "setter keyword in class", -> + assertErrorFormat ''' + class A + set foo: -> + ''', ''' + [stdin]:2:3: error: 'set' cannot be used as a keyword, or as a function call without parentheses + set foo: -> + ^^^ + ''' + +test "getter keyword in inline class", -> + assertErrorFormat 'class A then get foo: ->', ''' + [stdin]:1:14: error: 'get' cannot be used as a keyword, or as a function call without parentheses + class A then get foo: -> + ^^^ + ''' + +test "setter keyword in inline class", -> + assertErrorFormat 'class A then set foo: ->', ''' + [stdin]:1:14: error: 'set' cannot be used as a keyword, or as a function call without parentheses + class A then set foo: -> + ^^^ + ''' + +test "getter keyword before static method", -> + assertErrorFormat ''' + class A + get @foo = -> + ''', ''' + [stdin]:2:3: error: 'get' cannot be used as a keyword, or as a function call without parentheses + get @foo = -> + ^^^ + ''' + +test "setter keyword before static method", -> + assertErrorFormat ''' + class A + set @foo = -> + ''', ''' + [stdin]:2:3: error: 'set' cannot be used as a keyword, or as a function call without parentheses + set @foo = -> + ^^^ + ''' + +