Compare commits

..

44 Commits

Author SHA1 Message Date
Simon Lydell
91e3f7255c Merge pull request #4441 from GeoffreyBooth/1.12.4
1.12.4
2017-02-18 09:47:25 +01:00
Geoffrey Booth
664c7a4743 Update compiled output 2017-02-18 02:54:41 -05:00
Geoffrey Booth
f018e94be9 Update changelog 2017-02-18 02:54:15 -05:00
Geoffrey Booth
79d38cc30b Bump dependency version 2017-02-18 02:53:56 -05:00
Geoffrey Booth
ee8f022317 Merge branch 'master' of github.com:jashkenas/coffeescript into 1.12.4
# Conflicts:
#	Cakefile
2017-02-18 02:48:57 -05:00
Geoffrey Booth
98c1a3a045 Refactor Cake tasks (#4440)
* Node comes with NPM nowadays, so there’s not really a reason to install CoffeeScript the non-NPM way

* The cake documentation tasks should each have build and watch modes following the same form

* Refactor the build tasks to be more foolproof, including the parser unless it’s explicitly excluded

* Abstract out testing built code, to prepare for watching the build task

* Cake task to cut a new release

* cake build:watch, based on https://github.com/GeoffreyBooth/coffeescript-gulp

* Coding style

* Tests shouldn’t write files in a watched folder

* Don’t crash if the REPL test history file is already gone by the time we try to delete it
2017-02-18 02:47:02 -05:00
Simon Lydell
d84c94dc6d Merge pull request #4445 from alangpierce/upstream-fix-new-location-data
Properly update location data when setting a call to use `new`
2017-02-17 18:21:23 +01:00
Simon Lydell
4f714cc7f9 Merge pull request #4444 from alangpierce/upstream-fix-heregex-end-location
Place ending heregex tokens one index earlier
2017-02-17 18:21:08 +01:00
Alan Pierce
fbc77f7445 Properly update location data when setting a call to use new
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/24

In a case like `new A().b(c)`, the jison structure ends up being different from
the resulting AST. To the jison parser, this is the `new` unary operator applied
to the expression `A().b(c)`. When the unary operator is applied, the
`Call.prototype.newInstance` function traverses into the leftmost function call
and sets the `isNew` flag to true, and the `Op` constructor returns the `Call`
node so that the call is used in place of the unary operator. However, the code
wasn't updating the node location data, so this commit fixes that.

It's sort of hard to get the location data in `newInstance`, so we set a flag on
every affected node in `newInstance` and override `updateLocationDataIfMissing`
(which is called with the location data after the fact) so that it updates just
the starting position.
2017-02-16 20:43:19 -08:00
Alan Pierce
f757614334 Place ending heregex tokens one index earlier
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/17

The lexer generates fake tokens for interpolated heregexes, and the ending
tokens were being placed where the start (inclusive) and end (inclusive) index
were one past the end of the heregex. This meant that in a case like
`[a ///#{b}///]`, the end tokens of the heregex and also the implicit function
call end were all being placed at the `]`, so the AST location data would say
that the function call ends at the end of the `]`.

To fix, I can just subtract 1 from the position of those ending heregex tokens
so that their end lines up with the end of the heregex itself. This is similar
to previous fixes that changed `OUTDENT` and `CALL_END` tokens so that the end
of the token lines up with the end of the AST node.
2017-02-16 20:32:41 -08:00
Geoffrey Booth
94023d88ca Updated compiled output for 1.12.4 2017-02-14 23:30:32 -08:00
Geoffrey Booth
4547cbac3a Bump version to 1.12.4 and update changelog 2017-02-14 23:30:10 -08:00
Geoffrey Booth
856bf5e68c cake build:watch, based on https://github.com/GeoffreyBooth/coffeescript-gulp 2017-02-14 19:13:41 -08:00
Geoffrey
f4a1172b6f Cake task to cut a new release 2017-02-13 21:58:23 -08:00
Geoffrey
9866224dba Abstract out testing built code, to prepare for watching the build task 2017-02-13 21:49:04 -08:00
Geoffrey
8a271995c7 Refactor the build tasks to be more foolproof, including the parser unless it’s explicitly excluded 2017-02-13 21:05:12 -08:00
Geoffrey
c06a0584ff The cake documentation tasks should each have build and watch modes following the same form 2017-02-13 21:04:14 -08:00
Geoffrey
37e6513c02 Node comes with NPM nowadays, so there’s not really a reason to install CoffeeScript the non-NPM way 2017-02-13 20:31:58 -08:00
Ruben Rodriguez
3d0d04efe2 getSourceMap needs to pass literate flag to compile() (#4435) 2017-02-04 19:33:09 -08:00
Simon Lydell
87e537c917 Merge pull request #4432 from connec/fix-export-declarations
Fix "export" squashing variable declarations
2017-01-26 16:58:43 +01:00
Chris Connelly
b61324058d Fix "export" squashing variable declarations
Exports that referenced variables assigned in the module would prevent
the referenced variables from being declared, resulting in
ReferenceErrors at run time.

Fixes #4394.
2017-01-26 15:27:41 +00:00
Simon Lydell
635e207f3f Update release date for 1.12.3 2017-01-24 18:53:18 +01:00
Simon Lydell
e87d5749bd Merge pull request #4429 from GeoffreyBooth/1.12.3
1.12.3
2017-01-24 18:50:29 +01:00
Geoffrey Booth
b89dd043d3 Add other 1.12.3 updates to changelog 2017-01-22 16:13:53 -08:00
Geoffrey Booth
8ce7c30c49 Update generated docs for 1.12.3 2017-01-22 13:30:38 -08:00
Geoffrey Booth
45d0a7d01f Update browser compiler for 1.12.3 2017-01-22 13:30:04 -08:00
Geoffrey Booth
729127735b Bump version 2017-01-22 13:28:08 -08:00
Geoffrey Booth
6d27277ef6 Update documentation for 1.12.3. 2017-01-22 13:27:22 -08:00
Geoffrey Booth
3108244c20 Fix stack trace (#4428)
* Revert aee27fbff0

* Patch Jison’s output so that it requires `fs` only if we’re truly in a CommonJS/Node environment, not a browser environment that may happen to have globals named `require` and `exports` (as would be the case if require.js is being used). Fixes #4391.

* Temporary fix for exceptions getting thrown when trying to generate a stack trace for a file that has been deleted since compilation; fixes #3890, but not well. A better solution would not try to recompile the file when trying to retrieve its stack trace.

* Save the test REPL history in the system temp folder, not in the CoffeeScript project folder

* Rewrite `getSourceMap` to never read a file from disk, and therefore not throw IO-related exceptions; source maps are either retrieved from memory, or the related source code is retrieved from memory to generate a new source map. Fixes #3890 the proper way.

* Add test to verify that stack traces reference the correct line number. Closes #4418.

* Get the parser working in the browser compiler again; rather than detecting a CommonJS environment generally, just check for `fs` before trying to use it

* Follow Node’s standard of 4-space indentation of stack trace data

* Better .gitignore

* Fix caching of compiled code and source maps; add more tests to verify correct line numbers in stack traces

* Better fallback value for the parser source

* Fix the stack traces and tests when running in a browser

* Update the browser compiler so that @murrayju doesn’t have any extra work to do to test this branch
2017-01-22 13:20:18 -08:00
Jeremy Ashkenas
d0ed2dee60 Merge pull request #4420 from GeoffreyBooth/backport-2-doc-changes
Backport documentation edits
2017-01-13 09:54:58 -05:00
Geoffrey Booth
a61429c947 Updated output 2017-01-12 22:24:14 -08:00
Geoffrey Booth
fbdfa65734 Apply SVG fill color through CSS 2017-01-12 22:24:06 -08:00
Geoffrey Booth
02198eb967 Fix link to Try CoffeeScript 2017-01-12 22:21:05 -08:00
Geoffrey Booth
cd8be896c4 Trim the installation and usage sections; can backport to v1 2017-01-12 22:11:20 -08:00
Geoffrey Booth
b398c8809a Fix releaseHeader for the initial release; should backport to v1 2017-01-12 22:11:08 -08:00
Jeremy Ashkenas
f4353fa797 Merge pull request #4417 from BrianRossmajer/patch-1
Show a simple object extraction before complex one
2017-01-04 16:24:54 -05:00
Brian Rossmajer
e6f5b930bc Show a simple object extraction before complex one 2017-01-04 16:06:25 -05:00
Jeremy Ashkenas
87e70ee78b Merge pull request #4416 from isabellatea/copyright-year
Update copyright range to 2017
2017-01-04 11:05:04 -05:00
Bella
fc1d4edbfd Update copyright range to 2017 2017-01-04 00:34:28 -08:00
Jeremy Ashkenas
5f00ccc362 Merge pull request #4415 from connec/@indices-in-loops
Allow `@` values as indices in `for` expressions
2016-12-29 14:24:36 -05:00
Chris Connelly
1143ac0268 Allow @ values as indices in for expressions
This loosens the compilation of `for` expressions to allow the index
variable to be an `@` value, e.g.

    do @visit for @node, @index in nodes

Within `@visit`, the index of the current node (`@node`) would be
available as `@index`.

Fixes #4411.
2016-12-29 19:00:00 +00:00
Valentine Valyaeff
0a6aeef0c9 Fix //= operator (#4410) 2016-12-23 14:37:11 +01:00
Jeremy Ashkenas
ebb56e08ca Merge pull request #4407 from connec/improve-test-with-whitespace
Trivial: Remove trailing whitespace in test/error_messages.coffee
2016-12-21 12:49:48 -05:00
Chris Connelly
27e0914a0d Remove trailing whitespace in test/error_messages.coffee
Trailing whitespace is generally considered 'bad style' and is often
linted against or even simply removed by text editors.

One of the tests in test/error_messages.coffee depended on trailing
whitespace, making the file tricky to work with for people whose
editor is configured to remove trailing whitespace. The alternative is
to use a literal "\n" and escape the line break.
2016-12-21 08:24:05 +00:00
49 changed files with 1820 additions and 926 deletions

6
.gitignore vendored
View File

@@ -1,8 +1,10 @@
raw
presentation
test.coffee
test*.coffee
test.litcoffee
parser.output
test*.litcoffee
test/*.js
parser.output
/node_modules
npm-debug.log
npm-debug.log*

190
Cakefile
View File

@@ -24,72 +24,99 @@ header = """
*/
"""
# Used in folder names like docs/v1
# Used in folder names like `docs/v1`.
majorVersion = parseInt CoffeeScript.VERSION.split('.')[0], 10
# Build the CoffeeScript language from source.
build = (cb) ->
files = fs.readdirSync 'src'
files = ('src/' + file for file in files when file.match(/\.(lit)?coffee$/))
run ['-c', '-o', 'lib/coffee-script'].concat(files), cb
# Run a CoffeeScript through our node/coffee interpreter.
run = (args, cb) ->
proc = spawn 'node', ['bin/coffee'].concat(args)
proc.stderr.on 'data', (buffer) -> console.log buffer.toString()
proc.on 'exit', (status) ->
process.exit(1) if status isnt 0
cb() if typeof cb is 'function'
# Log a message with a color.
log = (message, color, explanation) ->
console.log color + message + reset + ' ' + (explanation or '')
option '-p', '--prefix [DIR]', 'set the installation prefix for `cake install`'
task 'install', 'install CoffeeScript into /usr/local (or --prefix)', (options) ->
base = options.prefix or '/usr/local'
lib = "#{base}/lib/coffee-script"
bin = "#{base}/bin"
node = "~/.node_libraries/coffee-script"
console.log "Installing CoffeeScript to #{lib}"
console.log "Linking to #{node}"
console.log "Linking 'coffee' to #{bin}/coffee"
exec([
"mkdir -p #{lib} #{bin}"
"cp -rf bin lib LICENSE README.md package.json src #{lib}"
"ln -sfn #{lib}/bin/coffee #{bin}/coffee"
"ln -sfn #{lib}/bin/cake #{bin}/cake"
"mkdir -p ~/.node_libraries"
"ln -sfn #{lib}/lib/coffee-script #{node}"
].join(' && '), (err, stdout, stderr) ->
if err then console.log stderr.trim() else log 'done', green
)
spawnNodeProcess = (args, output = 'stderr', callback) ->
relayOutput = (buffer) -> console.log buffer.toString()
proc = spawn 'node', args
proc.stdout.on 'data', relayOutput if output is 'both' or output is 'stdout'
proc.stderr.on 'data', relayOutput if output is 'both' or output is 'stderr'
proc.on 'exit', (status) -> callback(status) if typeof callback is 'function'
# Run a CoffeeScript through our node/coffee interpreter.
run = (args, callback) ->
spawnNodeProcess ['bin/coffee'].concat(args), 'stderr', (status) ->
process.exit(1) if status isnt 0
callback() if typeof callback is 'function'
task 'build', 'build the CoffeeScript language from source', build
task 'build:full', 'rebuild the source twice, and run the tests', ->
build ->
build ->
csPath = './lib/coffee-script'
csDir = path.dirname require.resolve csPath
for mod of require.cache when csDir is mod[0 ... csDir.length]
delete require.cache[mod]
unless runTests require csPath
process.exit 1
task 'build:parser', 'rebuild the Jison parser (run build first)', ->
# Build the CoffeeScript language from source.
buildParser = ->
helpers.extend global, require 'util'
require 'jison'
parser = require('./lib/coffee-script/grammar').parser
fs.writeFileSync 'lib/coffee-script/parser.js', parser.generate()
parser = require('./lib/coffee-script/grammar').parser.generate()
# Patch Jisons output, until https://github.com/zaach/jison/pull/339 is accepted,
# to ensure that require('fs') is only called where it exists.
parser = parser.replace "var source = require('fs')", """
var source = '';
var fs = require('fs');
if (typeof fs !== 'undefined' && fs !== null)
source = fs"""
fs.writeFileSync 'lib/coffee-script/parser.js', parser
buildExceptParser = (callback) ->
files = fs.readdirSync 'src'
files = ('src/' + file for file in files when file.match(/\.(lit)?coffee$/))
run ['-c', '-o', 'lib/coffee-script'].concat(files), callback
build = (callback) ->
buildParser()
buildExceptParser callback
testBuiltCode = (watch = no) ->
csPath = './lib/coffee-script'
csDir = path.dirname require.resolve csPath
for mod of require.cache when csDir is mod[0 ... csDir.length]
delete require.cache[mod]
testResults = runTests require csPath
unless watch
process.exit 1 unless testResults
buildAndTest = (includingParser = yes, harmony = no) ->
process.stdout.write '\x1Bc' # Clear terminal screen.
execSync 'git checkout lib/*', stdio: [0,1,2] # Reset the generated compiler.
buildArgs = ['bin/cake']
buildArgs.push if includingParser then 'build' else 'build:except-parser'
log "building#{if includingParser then ', including parser' else ''}...", green
spawnNodeProcess buildArgs, 'both', ->
log 'testing...', green
testArgs = if harmony then ['--harmony'] else []
testArgs = testArgs.concat ['bin/cake', 'test']
spawnNodeProcess testArgs, 'both'
watchAndBuildAndTest = (harmony = no) ->
buildAndTest yes, harmony
fs.watch 'src/', interval: 200, (eventType, filename) ->
if eventType is 'change'
log "src/#{filename} changed, rebuilding..."
buildAndTest (filename is 'grammar.coffee'), harmony
fs.watch 'test/', {interval: 200, recursive: yes}, (eventType, filename) ->
if eventType is 'change'
log "test/#{filename} changed, rebuilding..."
buildAndTest no, harmony
task 'build:browser', 'rebuild the merged script for inclusion in the browser', ->
task 'build', 'build the CoffeeScript compiler from source', build
task 'build:parser', 'build the Jison parser only', buildParser
task 'build:except-parser', 'build the CoffeeScript compiler, except for the Jison parser', buildExceptParser
task 'build:full', 'build the CoffeeScript compiler from source twice, and run the tests', ->
build ->
build testBuiltCode
task 'build:browser', 'build the merged script for inclusion in the browser', ->
code = """
require['../../package.json'] = (function() {
return #{fs.readFileSync "./package.json"};
@@ -130,8 +157,14 @@ task 'build:browser', 'rebuild the merged script for inclusion in the browser',
console.log "built ... running browser tests:"
invoke 'test:browser'
task 'build:watch', 'watch and continually rebuild the CoffeeScript compiler, running tests on each build', ->
watchAndBuildAndTest()
task 'doc:site', 'watch and continually rebuild the documentation for the website', ->
task 'build:watch:harmony', 'watch and continually rebuild the CoffeeScript compiler, running harmony tests on each build', ->
watchAndBuildAndTest yes
buildDocs = (watch = no) ->
# Constants
indexFile = 'documentation/index.html'
versionedSourceFolder = "documentation/v#{majorVersion}"
@@ -204,12 +237,19 @@ task 'doc:site', 'watch and continually rebuild the documentation for the websit
fs.symlinkSync "v#{majorVersion}/index.html", 'docs/index.html'
catch exception
for target in [indexFile, versionedSourceFolder, examplesSourceFolder, sectionsSourceFolder]
fs.watch target, interval: 200, renderIndex
log 'watching...' , green
if watch
for target in [indexFile, versionedSourceFolder, examplesSourceFolder, sectionsSourceFolder]
fs.watch target, interval: 200, renderIndex
log 'watching...', green
task 'doc:site', 'build the documentation for the website', ->
buildDocs()
task 'doc:site:watch', 'watch and continually rebuild the documentation for the website', ->
buildDocs yes
task 'doc:test', 'watch and continually rebuild the browser-based tests', ->
buildDocTests = (watch = no) ->
# Constants
testFile = 'documentation/test.html'
testsSourceFolder = 'test'
@@ -247,14 +287,40 @@ task 'doc:test', 'watch and continually rebuild the browser-based tests', ->
fs.writeFileSync "#{outputFolder}/test.html", output
log 'compiled', green, "#{testFile} → #{outputFolder}/test.html"
for target in [testFile, testsSourceFolder]
fs.watch target, interval: 200, renderTest
log 'watching...' , green
if watch
for target in [testFile, testsSourceFolder]
fs.watch target, interval: 200, renderTest
log 'watching...', green
task 'doc:test', 'build the browser-based tests', ->
buildDocTests()
task 'doc:test:watch', 'watch and continually rebuild the browser-based tests', ->
buildDocTests yes
task 'doc:source', 'rebuild the annotated source documentation', ->
exec "node_modules/docco/bin/docco src/*.*coffee --output docs/v#{majorVersion}/annotated-source", (err) -> throw err if err
buildAnnotatedSource = (watch = no) ->
do generateAnnotatedSource = ->
exec "node_modules/docco/bin/docco src/*.*coffee --output docs/v#{majorVersion}/annotated-source", (err) -> throw err if err
log 'generated', green, "annotated source in docs/v#{majorVersion}/annotated-source/"
if watch
fs.watch 'src/', interval: 200, generateAnnotatedSource
log 'watching...', green
task 'doc:source', 'build the annotated source documentation', ->
buildAnnotatedSource()
task 'doc:source:watch', 'watch and continually rebuild the annotated source documentation', ->
buildAnnotatedSource yes
task 'release', 'build and test the CoffeeScript source, and build the documentation', ->
invoke 'build:full'
invoke 'build:browser'
invoke 'doc:site'
invoke 'doc:test'
invoke 'doc:source'
task 'bench', 'quick benchmark of compilation time', ->
{Rewriter} = require './lib/coffee-script/rewriter'

View File

@@ -1,4 +1,4 @@
Copyright (c) 2009-2015 Jeremy Ashkenas
Copyright (c) 2009-2017 Jeremy Ashkenas
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation

View File

@@ -25,15 +25,10 @@ CoffeeScript is a little language that compiles into JavaScript.
If you have the node package manager, npm, installed:
```shell
npm install -g coffee-script
npm install --global coffee-script
```
Leave off the `-g` if you don't wish to install globally. If you don't wish to use npm:
```shell
git clone https://github.com/jashkenas/coffeescript.git
sudo coffeescript/bin/cake install
```
Leave off the `--global` if you dont wish to install globally.
## Getting Started
@@ -53,7 +48,7 @@ For documentation, usage, and examples, see: http://coffeescript.org/
To suggest a feature or report a bug: http://github.com/jashkenas/coffeescript/issues
If you'd like to chat, drop by #coffeescript on Freenode IRC.
If youd like to chat, drop by #coffeescript on Freenode IRC.
The source repository: https://github.com/jashkenas/coffeescript.git

View File

@@ -249,25 +249,17 @@ lexer/parser/compiler.</p>
<div class="pilwrap ">
<a class="pilcrow" href="#section-8">&#182;</a>
</div>
<p>Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler.</p>
<p>If <code>options.sourceMap</code> is specified, then <code>options.filename</code> must also be specified. All
options that can be passed to <code>SourceMap#generate</code> may also be passed here.</p>
<p>This returns a javascript string, unless <code>options.sourceMap</code> is passed,
in which case this returns a <code>{js, v3SourceMap, sourceMap}</code>
object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for doing programatic
lookups.</p>
<p>For each compiled file, save its source in memory in case we need to
recompile it later. We might need to recompile if the first compilation
didnt create a source map (faster) but something went wrong and we need
a stack trace. Assuming that most of the time, code isnt throwing
exceptions, its probably more efficient to compile twice only when we
need a stack trace, rather than always generating a source map even when
its not likely to be used. Save in form of <code>filename</code>: <code>(source)</code></p>
</div>
<div class="content"><div class='highlight'><pre>exports.compile = compile = withPrettyErrors (code, options) -&gt;
{merge, extend} = helpers
options = extend {}, options
generateSourceMap = options.sourceMap <span class="hljs-keyword">or</span> options.inlineMap
<span class="hljs-keyword">if</span> generateSourceMap
map = <span class="hljs-keyword">new</span> SourceMap
tokens = lexer.tokenize code, options</pre></div></div>
<div class="content"><div class='highlight'><pre>sources = {}</pre></div></div>
</li>
@@ -278,6 +270,68 @@ lookups.</p>
<div class="pilwrap ">
<a class="pilcrow" href="#section-9">&#182;</a>
</div>
<p>Also save source maps if generated, in form of <code>filename</code>: <code>(source map)</code>.</p>
</div>
<div class="content"><div class='highlight'><pre>sourceMaps = {}</pre></div></div>
</li>
<li id="section-10">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-10">&#182;</a>
</div>
<p>Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler.</p>
<p>If <code>options.sourceMap</code> is specified, then <code>options.filename</code> must also be
specified. All options that can be passed to <code>SourceMap#generate</code> may also
be passed here.</p>
<p>This returns a javascript string, unless <code>options.sourceMap</code> is passed,
in which case this returns a <code>{js, v3SourceMap, sourceMap}</code>
object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for
doing programmatic lookups.</p>
</div>
<div class="content"><div class='highlight'><pre>exports.compile = compile = withPrettyErrors (code, options) -&gt;
{merge, extend} = helpers
options = extend {}, options</pre></div></div>
</li>
<li id="section-11">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-11">&#182;</a>
</div>
<p>Always generate a source map if no filename is passed in, since without a
a filename we have no way to retrieve this source later in the event that
we need to recompile it to get a source map for <code>prepareStackTrace</code>.</p>
</div>
<div class="content"><div class='highlight'><pre> generateSourceMap = options.sourceMap <span class="hljs-keyword">or</span> options.inlineMap <span class="hljs-keyword">or</span> <span class="hljs-keyword">not</span> options.filename?
filename = options.filename <span class="hljs-keyword">or</span> <span class="hljs-string">'&lt;anonymous&gt;'</span>
sources[filename] = code
map = <span class="hljs-keyword">new</span> SourceMap <span class="hljs-keyword">if</span> generateSourceMap
tokens = lexer.tokenize code, options</pre></div></div>
</li>
<li id="section-12">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-12">&#182;</a>
</div>
<p>Pass a list of referenced variables, so that generated variables wont get
the same name.</p>
@@ -290,13 +344,13 @@ the same name.</p>
</li>
<li id="section-10">
<li id="section-13">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-10">&#182;</a>
<a class="pilcrow" href="#section-13">&#182;</a>
</div>
<p>Check for import or export; if found, force bare mode</p>
<p>Check for import or export; if found, force bare mode.</p>
</div>
@@ -318,13 +372,13 @@ the same name.</p>
</li>
<li id="section-11">
<li id="section-14">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-11">&#182;</a>
<a class="pilcrow" href="#section-14">&#182;</a>
</div>
<p>Update the sourcemap with data from each fragment</p>
<p>Update the sourcemap with data from each fragment.</p>
</div>
@@ -333,11 +387,11 @@ the same name.</p>
</li>
<li id="section-12">
<li id="section-15">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-12">&#182;</a>
<a class="pilcrow" href="#section-15">&#182;</a>
</div>
<p>Do not include empty, whitespace, or semicolon-only fragments.</p>
@@ -358,11 +412,11 @@ the same name.</p>
</li>
<li id="section-13">
<li id="section-16">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-13">&#182;</a>
<a class="pilcrow" href="#section-16">&#182;</a>
</div>
<p>Copy the code from each fragment into the final JavaScript.</p>
@@ -376,6 +430,7 @@ the same name.</p>
<span class="hljs-keyword">if</span> generateSourceMap
v3SourceMap = map.generate(options, code)
sourceMaps[filename] = map
<span class="hljs-keyword">if</span> options.inlineMap
encoded = base64encode JSON.stringify v3SourceMap
@@ -395,11 +450,11 @@ the same name.</p>
</li>
<li id="section-14">
<li id="section-17">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-14">&#182;</a>
<a class="pilcrow" href="#section-17">&#182;</a>
</div>
<p>Tokenize a string of CoffeeScript code, and return the array of tokens.</p>
@@ -411,11 +466,11 @@ the same name.</p>
</li>
<li id="section-15">
<li id="section-18">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-15">&#182;</a>
<a class="pilcrow" href="#section-18">&#182;</a>
</div>
<p>Parse a string of CoffeeScript code or an array of lexed tokens, and
return the AST. You can then compile it by calling <code>.compile()</code> on the root,
@@ -432,11 +487,11 @@ or traverse it by using <code>.traverseChildren()</code> with a callback.</p>
</li>
<li id="section-16">
<li id="section-19">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-16">&#182;</a>
<a class="pilcrow" href="#section-19">&#182;</a>
</div>
<p>Compile and execute a string of CoffeeScript (on the server), correctly
setting <code>__filename</code>, <code>__dirname</code>, and relative <code>require()</code>.</p>
@@ -449,27 +504,27 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-17">
<li id="section-20">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-17">&#182;</a>
<a class="pilcrow" href="#section-20">&#182;</a>
</div>
<p>Set the filename.</p>
</div>
<div class="content"><div class='highlight'><pre> mainModule.filename = process.argv[<span class="hljs-number">1</span>] =
<span class="hljs-keyword">if</span> options.filename <span class="hljs-keyword">then</span> fs.realpathSync(options.filename) <span class="hljs-keyword">else</span> <span class="hljs-string">'.'</span></pre></div></div>
<span class="hljs-keyword">if</span> options.filename <span class="hljs-keyword">then</span> fs.realpathSync(options.filename) <span class="hljs-keyword">else</span> <span class="hljs-string">'&lt;anonymous&gt;'</span></pre></div></div>
</li>
<li id="section-18">
<li id="section-21">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-18">&#182;</a>
<a class="pilcrow" href="#section-21">&#182;</a>
</div>
<p>Clear the module cache.</p>
@@ -480,17 +535,17 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-19">
<li id="section-22">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-19">&#182;</a>
<a class="pilcrow" href="#section-22">&#182;</a>
</div>
<p>Assign paths for node_modules loading</p>
</div>
<div class="content"><div class='highlight'><pre> dir = <span class="hljs-keyword">if</span> options.filename
<div class="content"><div class='highlight'><pre> dir = <span class="hljs-keyword">if</span> options.filename?
path.dirname fs.realpathSync options.filename
<span class="hljs-keyword">else</span>
fs.realpathSync <span class="hljs-string">'.'</span>
@@ -499,11 +554,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-20">
<li id="section-23">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-20">&#182;</a>
<a class="pilcrow" href="#section-23">&#182;</a>
</div>
<p>Compile.</p>
@@ -518,11 +573,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-21">
<li id="section-24">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-21">&#182;</a>
<a class="pilcrow" href="#section-24">&#182;</a>
</div>
<p>Compile and evaluate a string of CoffeeScript (in a Node.js-like environment).
The CoffeeScript REPL uses this to run the input.</p>
@@ -552,11 +607,11 @@ The CoffeeScript REPL uses this to run the input.</p>
</li>
<li id="section-22">
<li id="section-25">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-22">&#182;</a>
<a class="pilcrow" href="#section-25">&#182;</a>
</div>
<p>define module/require only if they chose not to specify their own</p>
@@ -573,11 +628,11 @@ The CoffeeScript REPL uses this to run the input.</p>
</li>
<li id="section-23">
<li id="section-26">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-23">&#182;</a>
<a class="pilcrow" href="#section-26">&#182;</a>
</div>
<p>use the same hack node currently uses for their own REPL</p>
@@ -599,11 +654,11 @@ exports.register = <span class="hljs-function">-&gt;</span> <span class="hljs-bu
</li>
<li id="section-24">
<li id="section-27">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-24">&#182;</a>
<a class="pilcrow" href="#section-27">&#182;</a>
</div>
<p>Throw error with deprecation warning when depending upon implicit <code>require.extensions</code> registration</p>
@@ -617,8 +672,22 @@ exports.register = <span class="hljs-function">-&gt;</span> <span class="hljs-bu
"""</span>
exports._compileFile = <span class="hljs-function"><span class="hljs-params">(filename, sourceMap = <span class="hljs-literal">no</span>, inlineMap = <span class="hljs-literal">no</span>)</span> -&gt;</span>
raw = fs.readFileSync filename, <span class="hljs-string">'utf8'</span>
stripped = <span class="hljs-keyword">if</span> raw.charCodeAt(<span class="hljs-number">0</span>) <span class="hljs-keyword">is</span> <span class="hljs-number">0xFEFF</span> <span class="hljs-keyword">then</span> raw.substring <span class="hljs-number">1</span> <span class="hljs-keyword">else</span> raw
raw = fs.readFileSync filename, <span class="hljs-string">'utf8'</span></pre></div></div>
</li>
<li id="section-28">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-28">&#182;</a>
</div>
<p>Strip the Unicode byte order mark, if this file begins with one.</p>
</div>
<div class="content"><div class='highlight'><pre> stripped = <span class="hljs-keyword">if</span> raw.charCodeAt(<span class="hljs-number">0</span>) <span class="hljs-keyword">is</span> <span class="hljs-number">0xFEFF</span> <span class="hljs-keyword">then</span> raw.substring <span class="hljs-number">1</span> <span class="hljs-keyword">else</span> raw
<span class="hljs-keyword">try</span>
answer = compile stripped, {
@@ -631,11 +700,11 @@ exports._compileFile = <span class="hljs-function"><span class="hljs-params">(fi
</li>
<li id="section-25">
<li id="section-29">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-25">&#182;</a>
<a class="pilcrow" href="#section-29">&#182;</a>
</div>
<p>As the filename and code of a dynamically loaded file will be different
from the original file compiled with CoffeeScript.run, add that
@@ -650,11 +719,11 @@ information to error so it can be pretty-printed later.</p>
</li>
<li id="section-26">
<li id="section-30">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-26">&#182;</a>
<a class="pilcrow" href="#section-30">&#182;</a>
</div>
<p>Instantiate a Lexer for our use here.</p>
@@ -665,11 +734,11 @@ information to error so it can be pretty-printed later.</p>
</li>
<li id="section-27">
<li id="section-31">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-27">&#182;</a>
<a class="pilcrow" href="#section-31">&#182;</a>
</div>
<p>The real Lexer produces a generic stream of tokens. This object provides a
thin wrapper around it, compatible with the Jison API. We can then pass it
@@ -697,11 +766,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-28">
<li id="section-32">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-28">&#182;</a>
<a class="pilcrow" href="#section-32">&#182;</a>
</div>
<p>Make all the AST nodes visible to the parser.</p>
@@ -712,11 +781,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-29">
<li id="section-33">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-29">&#182;</a>
<a class="pilcrow" href="#section-33">&#182;</a>
</div>
<p>Override Jisons default error handling function.</p>
@@ -727,11 +796,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-30">
<li id="section-34">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-30">&#182;</a>
<a class="pilcrow" href="#section-34">&#182;</a>
</div>
<p>Disregard Jisons message, it contains redundant line number information.
Disregard the token, we take its value directly from the lexer in case
@@ -755,11 +824,11 @@ the error is caused by a generated token which might refer to its origin.</p>
</li>
<li id="section-31">
<li id="section-35">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-31">&#182;</a>
<a class="pilcrow" href="#section-35">&#182;</a>
</div>
<p>The second argument has a <code>loc</code> property, which should have the location
data for this token. Unfortunately, Jison seems to send an outdated <code>loc</code>
@@ -772,6 +841,141 @@ from the lexer.</p>
</li>
<li id="section-36">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-36">&#182;</a>
</div>
<p>Based on <a href="http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js">http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js</a>
Modified to handle sourceMap</p>
</div>
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-title">formatSourcePosition</span> = <span class="hljs-params">(frame, getSourceMapping)</span> -&gt;</span>
filename = <span class="hljs-literal">undefined</span>
fileLocation = <span class="hljs-string">''</span>
<span class="hljs-keyword">if</span> frame.isNative()
fileLocation = <span class="hljs-string">"native"</span>
<span class="hljs-keyword">else</span>
<span class="hljs-keyword">if</span> frame.isEval()
filename = frame.getScriptNameOrSourceURL()
fileLocation = <span class="hljs-string">"<span class="hljs-subst">#{frame.getEvalOrigin()}</span>, "</span> <span class="hljs-keyword">unless</span> filename
<span class="hljs-keyword">else</span>
filename = frame.getFileName()
filename <span class="hljs-keyword">or</span>= <span class="hljs-string">"&lt;anonymous&gt;"</span>
line = frame.getLineNumber()
column = frame.getColumnNumber()</pre></div></div>
</li>
<li id="section-37">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-37">&#182;</a>
</div>
<p>Check for a sourceMap position</p>
</div>
<div class="content"><div class='highlight'><pre> source = getSourceMapping filename, line, column
fileLocation =
<span class="hljs-keyword">if</span> source
<span class="hljs-string">"<span class="hljs-subst">#{filename}</span>:<span class="hljs-subst">#{source[<span class="hljs-number">0</span>]}</span>:<span class="hljs-subst">#{source[<span class="hljs-number">1</span>]}</span>"</span>
<span class="hljs-keyword">else</span>
<span class="hljs-string">"<span class="hljs-subst">#{filename}</span>:<span class="hljs-subst">#{line}</span>:<span class="hljs-subst">#{column}</span>"</span>
functionName = frame.getFunctionName()
isConstructor = frame.isConstructor()
isMethodCall = <span class="hljs-keyword">not</span> (frame.isToplevel() <span class="hljs-keyword">or</span> isConstructor)
<span class="hljs-keyword">if</span> isMethodCall
methodName = frame.getMethodName()
typeName = frame.getTypeName()
<span class="hljs-keyword">if</span> functionName
tp = <span class="hljs-keyword">as</span> = <span class="hljs-string">''</span>
<span class="hljs-keyword">if</span> typeName <span class="hljs-keyword">and</span> functionName.indexOf typeName
tp = <span class="hljs-string">"<span class="hljs-subst">#{typeName}</span>."</span>
<span class="hljs-keyword">if</span> methodName <span class="hljs-keyword">and</span> functionName.indexOf(<span class="hljs-string">".<span class="hljs-subst">#{methodName}</span>"</span>) <span class="hljs-keyword">isnt</span> functionName.length - methodName.length - <span class="hljs-number">1</span>
<span class="hljs-keyword">as</span> = <span class="hljs-string">" [as <span class="hljs-subst">#{methodName}</span>]"</span>
<span class="hljs-string">"<span class="hljs-subst">#{tp}</span><span class="hljs-subst">#{functionName}</span><span class="hljs-subst">#{<span class="hljs-keyword">as</span>}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span>
<span class="hljs-string">"<span class="hljs-subst">#{typeName}</span>.<span class="hljs-subst">#{methodName <span class="hljs-keyword">or</span> <span class="hljs-string">'&lt;anonymous&gt;'</span>}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> isConstructor
<span class="hljs-string">"new <span class="hljs-subst">#{functionName <span class="hljs-keyword">or</span> <span class="hljs-string">'&lt;anonymous&gt;'</span>}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> functionName
<span class="hljs-string">"<span class="hljs-subst">#{functionName}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span>
fileLocation
<span class="hljs-function">
<span class="hljs-title">getSourceMap</span> = <span class="hljs-params">(filename)</span> -&gt;</span>
<span class="hljs-keyword">if</span> sourceMaps[filename]?
sourceMaps[filename]</pre></div></div>
</li>
<li id="section-38">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-38">&#182;</a>
</div>
<p>CoffeeScript compiled in a browser may get compiled with <code>options.filename</code>
of <code>&lt;anonymous&gt;</code>, but the browser may request the stack trace with the
filename of the script file.</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> sourceMaps[<span class="hljs-string">'&lt;anonymous&gt;'</span>]?
sourceMaps[<span class="hljs-string">'&lt;anonymous&gt;'</span>]
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> sources[filename]?
answer = compile sources[filename],
filename: filename
sourceMap: <span class="hljs-literal">yes</span>
literate: helpers.isLiterate filename
answer.sourceMap
<span class="hljs-keyword">else</span>
<span class="hljs-literal">null</span></pre></div></div>
</li>
<li id="section-39">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-39">&#182;</a>
</div>
<p>Based on <a href="http://goo.gl/ZTx1p">michaelficarra/CoffeeScriptRedux</a>
NodeJS / V8 have no support for transforming positions in stack traces using
sourceMap, so we must monkey-patch Error to display CoffeeScript source
positions.</p>
</div>
<div class="content"><div class='highlight'><pre>Error.prepareStackTrace = <span class="hljs-function"><span class="hljs-params">(err, stack)</span> -&gt;</span>
<span class="hljs-function"> <span class="hljs-title">getSourceMapping</span> = <span class="hljs-params">(filename, line, column)</span> -&gt;</span>
sourceMap = getSourceMap filename
answer = sourceMap.sourceLocation [line - <span class="hljs-number">1</span>, column - <span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> sourceMap?
<span class="hljs-keyword">if</span> answer? <span class="hljs-keyword">then</span> [answer[<span class="hljs-number">0</span>] + <span class="hljs-number">1</span>, answer[<span class="hljs-number">1</span>] + <span class="hljs-number">1</span>] <span class="hljs-keyword">else</span> <span class="hljs-literal">null</span>
frames = <span class="hljs-keyword">for</span> frame <span class="hljs-keyword">in</span> stack
<span class="hljs-keyword">break</span> <span class="hljs-keyword">if</span> frame.getFunction() <span class="hljs-keyword">is</span> exports.run
<span class="hljs-string">" at <span class="hljs-subst">#{formatSourcePosition frame, getSourceMapping}</span>"</span>
<span class="hljs-string">"<span class="hljs-subst">#{err.toString()}</span>\n<span class="hljs-subst">#{frames.join <span class="hljs-string">'\n'</span>}</span>\n"</span></pre></div></div>
</li>
</ul>
</div>
</body>

View File

@@ -710,10 +710,10 @@ borrow some basic heuristics from JavaScript and Ruby.</p>
@token <span class="hljs-string">'CALL_START'</span>, <span class="hljs-string">'('</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>
@mergeInterpolationTokens tokens, {delimiter: <span class="hljs-string">'"'</span>, double: <span class="hljs-literal">yes</span>}, @formatHeregex
<span class="hljs-keyword">if</span> flags
@token <span class="hljs-string">','</span>, <span class="hljs-string">','</span>, index, <span class="hljs-number">0</span>
@token <span class="hljs-string">'STRING'</span>, <span class="hljs-string">'"'</span> + flags + <span class="hljs-string">'"'</span>, index, flags.length
@token <span class="hljs-string">')'</span>, <span class="hljs-string">')'</span>, end, <span class="hljs-number">0</span>
@token <span class="hljs-string">'REGEX_END'</span>, <span class="hljs-string">')'</span>, end, <span class="hljs-number">0</span>
@token <span class="hljs-string">','</span>, <span class="hljs-string">','</span>, index - <span class="hljs-number">1</span>, <span class="hljs-number">0</span>
@token <span class="hljs-string">'STRING'</span>, <span class="hljs-string">'"'</span> + flags + <span class="hljs-string">'"'</span>, index - <span class="hljs-number">1</span>, flags.length
@token <span class="hljs-string">')'</span>, <span class="hljs-string">')'</span>, end - <span class="hljs-number">1</span>, <span class="hljs-number">0</span>
@token <span class="hljs-string">'REGEX_END'</span>, <span class="hljs-string">')'</span>, end - <span class="hljs-number">1</span>, <span class="hljs-number">0</span>
end</pre></div></div>

File diff suppressed because it is too large Load Diff

View File

@@ -218,9 +218,9 @@ already exist.</p>
</div>
<div class="content"><div class='highlight'><pre> find: <span class="hljs-function"><span class="hljs-params">(name)</span> -&gt;</span>
<div class="content"><div class='highlight'><pre> find: <span class="hljs-function"><span class="hljs-params">(name, type = <span class="hljs-string">'var'</span>)</span> -&gt;</span>
<span class="hljs-keyword">return</span> <span class="hljs-literal">yes</span> <span class="hljs-keyword">if</span> @check name
@add name, <span class="hljs-string">'var'</span>
@add name, type
<span class="hljs-literal">no</span></pre></div></div>
</li>

View File

@@ -1,87 +1,87 @@
/**
* CoffeeScript Compiler v1.12.2
* CoffeeScript Compiler v1.12.4
* http://coffeescript.org
*
* Copyright 2011, Jeremy Ashkenas
* Released under the MIT License
*/
var $jscomp={scope:{},checkStringArgs:function(t,ya,qa){if(null==t)throw new TypeError("The 'this' value for String.prototype."+qa+" must not be null or undefined");if(ya instanceof RegExp)throw new TypeError("First argument to String.prototype."+qa+" must not be a regular expression");return t+""}};
$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,ya,qa){if(qa.get||qa.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[ya]=qa.value)};$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(t,ya,qa,g){if(ya){qa=$jscomp.global;t=t.split(".");for(g=0;g<t.length-1;g++){var va=t[g];va in qa||(qa[va]={});qa=qa[va]}t=t[t.length-1];g=qa[t];ya=ya(g);ya!=g&&null!=ya&&$jscomp.defineProperty(qa,t,{configurable:!0,writable:!0,value:ya})}};
$jscomp.polyfill("String.prototype.repeat",function(t){return t?t:function(t){var qa=$jscomp.checkStringArgs(this,null,"repeat");if(0>t||1342177279<t)throw new RangeError("Invalid count value");t|=0;for(var g="";t;)if(t&1&&(g+=qa),t>>>=1)qa+=qa;return g}},"es6-impl","es3");$jscomp.findInternal=function(t,ya,qa){t instanceof String&&(t=String(t));for(var g=t.length,va=0;va<g;va++){var xa=t[va];if(ya.call(qa,xa,va,t))return{i:va,v:xa}}return{i:-1,v:void 0}};
$jscomp.polyfill("Array.prototype.find",function(t){return t?t:function(t,qa){return $jscomp.findInternal(this,t,qa).v}},"es6-impl","es3");$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(t){return $jscomp.SYMBOL_PREFIX+(t||"")+$jscomp.symbolCounter_++};
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var t=$jscomp.global.Symbol.iterator;t||(t=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[t]&&$jscomp.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};
$jscomp.arrayIterator=function(t){var ya=0;return $jscomp.iteratorPrototype(function(){return ya<t.length?{done:!1,value:t[ya++]}:{done:!0}})};$jscomp.iteratorPrototype=function(t){$jscomp.initSymbolIterator();t={next:t};t[$jscomp.global.Symbol.iterator]=function(){return this};return t};$jscomp.array=$jscomp.array||{};
$jscomp.iteratorFromArray=function(t,ya){$jscomp.initSymbolIterator();t instanceof String&&(t+="");var qa=0,g={next:function(){if(qa<t.length){var va=qa++;return{value:ya(va,t[va]),done:!1}}g.next=function(){return{done:!0,value:void 0}};return g.next()}};g[Symbol.iterator]=function(){return g};return g};$jscomp.polyfill("Array.prototype.keys",function(t){return t?t:function(){return $jscomp.iteratorFromArray(this,function(t){return t})}},"es6-impl","es3");
(function(t){var ya=function(){function t(g){return t[g]}t["../../package.json"]={name:"coffee-script",description:"Unfancy JavaScript",keywords:["javascript","language","coffeescript","compiler"],author:"Jeremy Ashkenas",version:"1.12.2",license:"MIT",engines:{node:"\x3e\x3d0.8.0"},directories:{lib:"./lib/coffee-script"},main:"./lib/coffee-script/coffee-script",bin:{coffee:"./bin/coffee",cake:"./bin/cake"},files:["bin","lib","register.js","repl.js"],preferGlobal:!0,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":"^20161201.0.0","highlight.js":"~9.9.0",jison:"\x3e\x3d0.4.17",marked:"^0.3.6",underscore:"~1.8.3"}};t["./helpers"]=function(){var g={};(function(){var t,xa,D,a,c,Ca;g.starts=function(a,c,m){return c===a.substr(m,c.length)};g.ends=
function(a,c,m){var f;f=c.length;return c===a.substr(a.length-f-(m||0),f)};g.repeat=c=function(a,c){var f;for(f="";0<c;)c&1&&(f+=a),c>>>=1,a+=a;return f};g.compact=function(a){var f,c,g,D;D=[];f=0;for(g=a.length;f<g;f++)(c=a[f])&&D.push(c);return D};g.count=function(a,c){var f,p;f=p=0;if(!c.length)return 1/0;for(;p=1+a.indexOf(c,p);)f++;return f};g.merge=function(a,c){return xa(xa({},a),c)};xa=g.extend=function(a,c){var f,p;for(f in c)p=c[f],a[f]=p;return a};g.flatten=D=function(a){var f,c,g,F;c=
[];g=0;for(F=a.length;g<F;g++)f=a[g],"[object Array]"===Object.prototype.toString.call(f)?c=c.concat(D(f)):c.push(f);return c};g.del=function(a,c){var f;f=a[c];delete a[c];return f};g.some=null!=(a=Array.prototype.some)?a:function(a){var f,c,g;c=0;for(g=this.length;c<g;c++)if(f=this[c],a(f))return!0;return!1};g.invertLiterate=function(a){var f;f=!0;var c,g,D,x;D=a.split("\n");x=[];c=0;for(g=D.length;c<g;c++)a=D[c],f&&/^([ ]{4}|[ ]{0,3}\t)/.test(a)?x.push(a):(f=/^\s*$/.test(a))?x.push(a):x.push("# "+
a);return x.join("\n")};t=function(a,c){return c?{first_line:a.first_line,first_column:a.first_column,last_line:c.last_line,last_column:c.last_column}:a};g.addLocationDataFn=function(a,c){return function(f){"object"===typeof f&&f.updateLocationDataIfMissing&&f.updateLocationDataIfMissing(t(a,c));return f}};g.locationDataToString=function(a){var f;"2"in a&&"first_line"in a[2]?f=a[2]:"first_line"in a&&(f=a);return f?f.first_line+1+":"+(f.first_column+1)+"-"+(f.last_line+1+":"+(f.last_column+1)):"No location data"};
var $jscomp={scope:{},checkStringArgs:function(u,ya,qa){if(null==u)throw new TypeError("The 'this' value for String.prototype."+qa+" must not be null or undefined");if(ya instanceof RegExp)throw new TypeError("First argument to String.prototype."+qa+" must not be a regular expression");return u+""}};
$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(u,ya,qa){if(qa.get||qa.set)throw new TypeError("ES3 does not support getters and setters.");u!=Array.prototype&&u!=Object.prototype&&(u[ya]=qa.value)};$jscomp.getGlobal=function(u){return"undefined"!=typeof window&&window===u?u:"undefined"!=typeof global&&null!=global?global:u};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(u,ya,qa,g){if(ya){qa=$jscomp.global;u=u.split(".");for(g=0;g<u.length-1;g++){var ua=u[g];ua in qa||(qa[ua]={});qa=qa[ua]}u=u[u.length-1];g=qa[u];ya=ya(g);ya!=g&&null!=ya&&$jscomp.defineProperty(qa,u,{configurable:!0,writable:!0,value:ya})}};
$jscomp.polyfill("String.prototype.repeat",function(u){return u?u:function(u){var qa=$jscomp.checkStringArgs(this,null,"repeat");if(0>u||1342177279<u)throw new RangeError("Invalid count value");u|=0;for(var g="";u;)if(u&1&&(g+=qa),u>>>=1)qa+=qa;return g}},"es6-impl","es3");$jscomp.findInternal=function(u,ya,qa){u instanceof String&&(u=String(u));for(var g=u.length,ua=0;ua<g;ua++){var xa=u[ua];if(ya.call(qa,xa,ua,u))return{i:ua,v:xa}}return{i:-1,v:void 0}};
$jscomp.polyfill("Array.prototype.find",function(u){return u?u:function(u,qa){return $jscomp.findInternal(this,u,qa).v}},"es6-impl","es3");$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(u){return $jscomp.SYMBOL_PREFIX+(u||"")+$jscomp.symbolCounter_++};
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var u=$jscomp.global.Symbol.iterator;u||(u=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[u]&&$jscomp.defineProperty(Array.prototype,u,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};
$jscomp.arrayIterator=function(u){var ya=0;return $jscomp.iteratorPrototype(function(){return ya<u.length?{done:!1,value:u[ya++]}:{done:!0}})};$jscomp.iteratorPrototype=function(u){$jscomp.initSymbolIterator();u={next:u};u[$jscomp.global.Symbol.iterator]=function(){return this};return u};$jscomp.array=$jscomp.array||{};
$jscomp.iteratorFromArray=function(u,ya){$jscomp.initSymbolIterator();u instanceof String&&(u+="");var qa=0,g={next:function(){if(qa<u.length){var ua=qa++;return{value:ya(ua,u[ua]),done:!1}}g.next=function(){return{done:!0,value:void 0}};return g.next()}};g[Symbol.iterator]=function(){return g};return g};$jscomp.polyfill("Array.prototype.keys",function(u){return u?u:function(){return $jscomp.iteratorFromArray(this,function(u){return u})}},"es6-impl","es3");
(function(u){var ya=function(){function u(g){return u[g]}u["../../package.json"]={name:"coffee-script",description:"Unfancy JavaScript",keywords:["javascript","language","coffeescript","compiler"],author:"Jeremy Ashkenas",version:"1.12.4",license:"MIT",engines:{node:"\x3e\x3d0.8.0"},directories:{lib:"./lib/coffee-script"},main:"./lib/coffee-script/coffee-script",bin:{coffee:"./bin/coffee",cake:"./bin/cake"},files:["bin","lib","register.js","repl.js"],preferGlobal:!0,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":"^20170124.0.0","highlight.js":"~9.9.0",jison:"\x3e\x3d0.4.17",marked:"^0.3.6",underscore:"~1.8.3"}};u["./helpers"]=function(){var g={};(function(){var u,xa,q,a,c,Ca;g.starts=function(a,c,l){return c===a.substr(l,c.length)};g.ends=
function(a,c,l){var f;f=c.length;return c===a.substr(a.length-f-(l||0),f)};g.repeat=c=function(a,c){var f;for(f="";0<c;)c&1&&(f+=a),c>>>=1,a+=a;return f};g.compact=function(a){var f,c,g,q;q=[];f=0;for(g=a.length;f<g;f++)(c=a[f])&&q.push(c);return q};g.count=function(a,c){var f,D;f=D=0;if(!c.length)return 1/0;for(;D=1+a.indexOf(c,D);)f++;return f};g.merge=function(a,c){return xa(xa({},a),c)};xa=g.extend=function(a,c){var f,D;for(f in c)D=c[f],a[f]=D;return a};g.flatten=q=function(a){var f,c,g,G;c=
[];g=0;for(G=a.length;g<G;g++)f=a[g],"[object Array]"===Object.prototype.toString.call(f)?c=c.concat(q(f)):c.push(f);return c};g.del=function(a,c){var f;f=a[c];delete a[c];return f};g.some=null!=(a=Array.prototype.some)?a:function(a){var f,c,g;c=0;for(g=this.length;c<g;c++)if(f=this[c],a(f))return!0;return!1};g.invertLiterate=function(a){var f;f=!0;var c,g,q,F;q=a.split("\n");F=[];c=0;for(g=q.length;c<g;c++)a=q[c],f&&/^([ ]{4}|[ ]{0,3}\t)/.test(a)?F.push(a):(f=/^\s*$/.test(a))?F.push(a):F.push("# "+
a);return F.join("\n")};u=function(a,c){return c?{first_line:a.first_line,first_column:a.first_column,last_line:c.last_line,last_column:c.last_column}:a};g.addLocationDataFn=function(a,c){return function(f){"object"===typeof f&&f.updateLocationDataIfMissing&&f.updateLocationDataIfMissing(u(a,c));return f}};g.locationDataToString=function(a){var f;"2"in a&&"first_line"in a[2]?f=a[2]:"first_line"in a&&(f=a);return f?f.first_line+1+":"+(f.first_column+1)+"-"+(f.last_line+1+":"+(f.last_column+1)):"No location data"};
g.baseFileName=function(a,c,g){null==c&&(c=!1);null==g&&(g=!1);a=a.split(g?/\\|\//:/\//);a=a[a.length-1];if(!(c&&0<=a.indexOf(".")))return a;a=a.split(".");a.pop();"coffee"===a[a.length-1]&&1<a.length&&a.pop();return a.join(".")};g.isCoffee=function(a){return/\.((lit)?coffee|coffee\.md)$/.test(a)};g.isLiterate=function(a){return/\.(litcoffee|coffee\.md)$/.test(a)};g.throwSyntaxError=function(a,c){a=new SyntaxError(a);a.location=c;a.toString=Ca;a.stack=a.toString();throw a;};g.updateSyntaxError=function(a,
c,g){a.toString===Ca&&(a.code||(a.code=c),a.filename||(a.filename=g),a.stack=a.toString());return a};Ca=function(){var a,g,m,D,F,x,y,v,E,t;if(!this.code||!this.location)return Error.prototype.toString.call(this);a=this.location;x=a.first_line;F=a.first_column;m=a.last_line;y=a.last_column;null==m&&(m=x);null==y&&(y=F);D=this.filename||"[stdin]";a=this.code.split("\n")[x];m=x===m?y+1:a.length;y=a.slice(0,F).replace(/[^\s]/g," ")+c("^",m-F);"undefined"!==typeof process&&null!==process&&(g=(null!=(v=
process.stdout)?v.isTTY:void 0)&&!(null!=(E=process.env)&&E.NODE_DISABLE_COLORS));if(null!=(t=this.colorful)?t:g)g=function(a){return"\u001b[1;31m"+a+"\u001b[0m"},a=a.slice(0,F)+g(a.slice(F,m))+a.slice(m),y=g(y);return D+":"+(x+1)+":"+(F+1)+": error: "+this.message+"\n"+a+"\n"+y};g.nameWhitespaceCharacter=function(a){switch(a){case " ":return"space";case "\n":return"newline";case "\r":return"carriage return";case "\t":return"tab";default:return a}}}).call(this);return g}();t["./rewriter"]=function(){var g=
{};(function(){var t,xa,D,a,c,Ca,f,p,m,H,F,x,y,v,E,N,l,h,u=[].indexOf||function(a){for(var c=0,f=this.length;c<f;c++)if(c in this&&this[c]===a)return c;return-1},w=[].slice;v=function(a,c,f){a=[a,c];a.generated=!0;f&&(a.origin=f);return a};g.Rewriter=function(){function h(){}h.prototype.rewrite=function(a){this.tokens=a;this.removeLeadingNewlines();this.closeOpenCalls();this.closeOpenIndexes();this.normalizeLines();this.tagPostfixConditionals();this.addImplicitBracesAndParens();this.addLocationDataToGeneratedTokens();
this.fixOutdentLocationData();return this.tokens};h.prototype.scanTokens=function(a){var c,f,k;k=this.tokens;for(c=0;f=k[c];)c+=a.call(this,f,c,k);return!0};h.prototype.detectEnd=function(f,h,g){var k,L,I,n,z;z=this.tokens;for(k=0;n=z[f];){if(0===k&&h.call(this,n,f))return g.call(this,n,f);if(!n||0>k)return g.call(this,n,f-1);(L=n[0],0<=u.call(c,L))?k+=1:(I=n[0],0<=u.call(a,I))&&--k;f+=1}return f-1};h.prototype.removeLeadingNewlines=function(){var a,c,f,k,h;k=this.tokens;a=c=0;for(f=k.length;c<f&&
(h=k[a][0],"TERMINATOR"===h);a=++c);if(a)return this.tokens.splice(0,a)};h.prototype.closeOpenCalls=function(){var a,c;c=function(a,c){var f;return")"===(f=a[0])||"CALL_END"===f||"OUTDENT"===a[0]&&")"===this.tag(c-1)};a=function(a,c){return this.tokens["OUTDENT"===a[0]?c-1:c][0]="CALL_END"};return this.scanTokens(function(f,k){"CALL_START"===f[0]&&this.detectEnd(k+1,c,a);return 1})};h.prototype.closeOpenIndexes=function(){var a,c;c=function(a,c){var f;return"]"===(f=a[0])||"INDEX_END"===f};a=function(a,
c){return a[0]="INDEX_END"};return this.scanTokens(function(f,k){"INDEX_START"===f[0]&&this.detectEnd(k+1,c,a);return 1})};h.prototype.indexOfTag=function(){var a,c,f,k,h,g,n;c=arguments[0];h=2<=arguments.length?w.call(arguments,1):[];f=k=a=0;for(g=h.length;0<=g?k<g:k>g;f=0<=g?++k:--k){for(;"HERECOMMENT"===this.tag(c+f+a);)a+=2;if(null!=h[f]&&("string"===typeof h[f]&&(h[f]=[h[f]]),n=this.tag(c+f+a),0>u.call(h[f],n)))return-1}return c+f+a-1};h.prototype.looksObjectish=function(f){var h;if(-1<this.indexOfTag(f,
"@",null,":")||-1<this.indexOfTag(f,null,":"))return!0;f=this.indexOfTag(f,c);return-1<f&&(h=null,this.detectEnd(f+1,function(c){var f;return f=c[0],0<=u.call(a,f)},function(a,c){return h=c}),":"===this.tag(h+1))?!0:!1};h.prototype.findTagsBackwards=function(f,h){var g,k,L,z,n,l,m;for(g=[];0<=f&&(g.length||(z=this.tag(f),0>u.call(h,z))&&((n=this.tag(f),0>u.call(c,n))||this.tokens[f].generated)&&(l=this.tag(f),0>u.call(F,l)));)(k=this.tag(f),0<=u.call(a,k))&&g.push(this.tag(f)),(L=this.tag(f),0<=u.call(c,
L))&&g.length&&g.pop(),--f;return m=this.tag(f),0<=u.call(h,m)};h.prototype.addImplicitBracesAndParens=function(){var h,g;h=[];g=null;return this.scanTokens(function(l,k,z){var L,n,r,D,I,M,w,G,B,A,x,C,y,E,t,H,N,J;J=l[0];A=(x=0<k?z[k-1]:[])[0];B=(k<z.length-1?z[k+1]:[])[0];t=function(){return h[h.length-1]};H=k;r=function(a){return k-H+a};D=function(){var a,c;return null!=(a=t())?null!=(c=a[2])?c.ours:void 0:void 0};I=function(){var a;return D()&&"("===(null!=(a=t())?a[0]:void 0)};w=function(){var a;
return D()&&"{"===(null!=(a=t())?a[0]:void 0)};M=function(){var a;return D&&"CONTROL"===(null!=(a=t())?a[0]:void 0)};N=function(a){var c;c=null!=a?a:k;h.push(["(",c,{ours:!0}]);z.splice(c,0,v("CALL_START","("));if(null==a)return k+=1};L=function(){h.pop();z.splice(k,0,v("CALL_END",")",["","end of input",l[2]]));return k+=1};G=function(a,c){var f;null==c&&(c=!0);f=null!=a?a:k;h.push(["{",f,{sameLine:!0,startsLine:c,ours:!0}]);c=new String("{");c.generated=!0;z.splice(f,0,v("{",c,l));if(null==a)return k+=
1};n=function(a){a=null!=a?a:k;h.pop();z.splice(a,0,v("}","}",l));return k+=1};if(I()&&("IF"===J||"TRY"===J||"FINALLY"===J||"CATCH"===J||"CLASS"===J||"SWITCH"===J))return h.push(["CONTROL",k,{ours:!0}]),r(1);if("INDENT"===J&&D()){if("\x3d\x3e"!==A&&"-\x3e"!==A&&"["!==A&&"("!==A&&","!==A&&"{"!==A&&"TRY"!==A&&"ELSE"!==A&&"\x3d"!==A)for(;I();)L();M()&&h.pop();h.push([J,k]);return r(1)}if(0<=u.call(c,J))return h.push([J,k]),r(1);if(0<=u.call(a,J)){for(;D();)I()?L():w()?n():h.pop();g=h.pop()}if((0<=u.call(p,
J)&&l.spaced||"?"===J&&0<k&&!z[k-1].spaced)&&(0<=u.call(Ca,B)||0<=u.call(m,B)&&(null==(C=z[k+1])||!C.spaced)&&(null==(y=z[k+1])||!y.newLine)))return"?"===J&&(J=l[0]="FUNC_EXIST"),N(k+1),r(2);if(0<=u.call(p,J)&&-1<this.indexOfTag(k+1,"INDENT")&&this.looksObjectish(k+2)&&!this.findTagsBackwards(k,"CLASS EXTENDS IF CATCH SWITCH LEADING_WHEN FOR WHILE UNTIL".split(" ")))return N(k+1),h.push(["INDENT",k+2]),r(3);if(":"===J){for(n=function(){var c;switch(!1){case c=this.tag(k-1),0>u.call(a,c):return g[1];
case "@"!==this.tag(k-2):return k-2;default:return k-1}}.call(this);"HERECOMMENT"===this.tag(n-2);)n-=2;this.insideForDeclaration="FOR"===B;M=0===n||(E=this.tag(n-1),0<=u.call(F,E))||z[n-1].newLine;if(t()&&(w=t(),E=w[0],x=w[1],("{"===E||"INDENT"===E&&"{"===this.tag(x-1))&&(M||","===this.tag(n-1)||"{"===this.tag(n-1))))return r(1);G(n,!!M);return r(2)}w()&&0<=u.call(F,J)&&(t()[2].sameLine=!1);G="OUTDENT"===A||x.newLine;if(0<=u.call(f,J)||0<=u.call(xa,J)&&G)for(;D();)if(G=t(),E=G[0],x=G[1],E=G[2],G=
E.sameLine,M=E.startsLine,I()&&","!==A)L();else if(w()&&!this.insideForDeclaration&&G&&"TERMINATOR"!==J&&":"!==A)n();else if(!w()||"TERMINATOR"!==J||","===A||M&&this.looksObjectish(k+1))break;else{if("HERECOMMENT"===B)return r(1);n()}if(!(","!==J||this.looksObjectish(k+1)||!w()||this.insideForDeclaration||"TERMINATOR"===B&&this.looksObjectish(k+2)))for(B="OUTDENT"===B?1:0;w();)n(k+B);return r(1)})};h.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,f){var h,
g,u;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(u=f[c+1])?u[2]:void 0)?(g=h.first_line,h=h.first_column):(h=null!=(g=f[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})};h.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,f){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===a[0]||a.generated&&"}"===a[0]))return 1;c=f[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})};h.prototype.normalizeLines=function(){var a,c,f,h,g;g=f=h=null;c=function(a,c){var f,h,k,n;return";"!==a[1]&&(f=a[0],0<=u.call(x,f))&&!("TERMINATOR"===a[0]&&(h=this.tag(c+1),0<=u.call(D,h)))&&!("ELSE"===a[0]&&"THEN"!==g)&&!!("CATCH"!==(k=a[0])&&"FINALLY"!==k||"-\x3e"!==g&&"\x3d\x3e"!==g)||(n=a[0],0<=u.call(xa,n))&&this.tokens[c-1].newLine};a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,h)};return this.scanTokens(function(k,
n,l){var z,m,p;k=k[0];if("TERMINATOR"===k){if("ELSE"===this.tag(n+1)&&"OUTDENT"!==this.tag(n-1))return l.splice.apply(l,[n,1].concat(w.call(this.indentation()))),1;if(z=this.tag(n+1),0<=u.call(D,z))return l.splice(n,1),0}if("CATCH"===k)for(z=m=1;2>=m;z=++m)if("OUTDENT"===(p=this.tag(n+z))||"TERMINATOR"===p||"FINALLY"===p)return l.splice.apply(l,[n+z,0].concat(w.call(this.indentation()))),2+z;0<=u.call(y,k)&&"INDENT"!==this.tag(n+1)&&("ELSE"!==k||"IF"!==this.tag(n+1))&&(g=k,p=this.indentation(l[n]),
f=p[0],h=p[1],"THEN"===g&&(f.fromThen=!0),l.splice(n+1,0,f),this.detectEnd(n+2,c,a),"THEN"===k&&l.splice(n,1));return 1})};h.prototype.tagPostfixConditionals=function(){var a,c,f;f=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>u.call(y,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return f[0]="POST_"+f[0]};return this.scanTokens(function(h,g){if("IF"!==h[0])return 1;f=h;this.detectEnd(g+1,c,a);return 1})};h.prototype.indentation=function(a){var c,
f;c=["INDENT",2];f=["OUTDENT",2];a?(c.generated=f.generated=!0,c.origin=f.origin=a):c.explicit=f.explicit=!0;return[c,f]};h.prototype.generate=v;h.prototype.tag=function(a){var c;return null!=(c=this.tokens[a])?c[0]:void 0};return h}();t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]];g.INVERSES=H={};c=[];a=[];E=0;for(l=t.length;E<l;E++)h=t[E],N=h[0],h=h[1],
c.push(H[h]=N),a.push(H[N]=h);D=["CATCH","THEN","ELSE","FINALLY"].concat(a);p="IDENTIFIER PROPERTY SUPER ) CALL_END ] INDEX_END @ THIS".split(" ");Ca="IDENTIFIER PROPERTY NUMBER INFINITY NAN STRING STRING_START REGEX REGEX_START JS NEW PARAM_START CLASS IF TRY SWITCH THIS UNDEFINED NULL BOOL UNARY YIELD UNARY_MATH SUPER THROW @ -\x3e \x3d\x3e [ ( { -- ++".split(" ");m=["+","-"];f="POST_IF FOR WHILE UNTIL WHEN BY LOOP TERMINATOR".split(" ");y="ELSE -\x3e \x3d\x3e TRY FINALLY THEN".split(" ");x="TERMINATOR CATCH FINALLY ELSE OUTDENT LEADING_WHEN".split(" ");
F=["TERMINATOR","INDENT","OUTDENT"];xa=[".","?.","::","?::"]}).call(this);return g}();t["./lexer"]=function(){var g={};(function(){var va,xa,D,a,c,Ca,f,p,m,H,F,x,y,v,E,N,l,h,u,w,G,L,z,I,k,M,P,n,r,V,U,Q,ba,S,B,A,X,C,O,Y,Z,W,aa,J,ca,R,qa,ya,Wa,ka,da,fa,ha,ia,la,oa,K,ja,ra,ea=[].indexOf||function(a){for(var c=0,f=this.length;c<f;c++)if(c in this&&this[c]===a)return c;return-1},ma=[].slice;K=t("./rewriter");C=K.Rewriter;G=K.INVERSES;K=t("./helpers");fa=K.count;ja=K.repeat;ha=K.invertLiterate;ra=K.throwSyntaxError;
g.Lexer=function(){function g(){}g.prototype.tokenize=function(a,c){var f,h,T,g;null==c&&(c={});this.literate=c.literate;this.outdebt=this.indebt=this.baseIndent=this.indent=0;this.indents=[];this.ends=[];this.tokens=[];this.exportSpecifierList=this.seenExport=this.seenImport=this.seenFor=!1;this.chunkLine=c.line||0;this.chunkColumn=c.column||0;a=this.clean(a);for(T=0;this.chunk=a.slice(T);)if(f=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||
this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),g=this.getLineAndColumnFromChunk(f),this.chunkLine=g[0],this.chunkColumn=g[1],T+=f,c.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:T};this.closeIndentation();(h=this.ends.pop())&&this.error("missing "+h.tag,h.origin[2]);return!1===c.rewrite?this.tokens:(new C).rewrite(this.tokens)};g.prototype.clean=function(a){a.charCodeAt(0)===va&&(a=a.slice(1));a=a.replace(/\r/g,"").replace(qa,"");da.test(a)&&(a="\n"+
a,this.chunkLine--);this.literate&&(a=ha(a));return a};g.prototype.identifierToken=function(){var f,h,g,n,u,m,D,p,w,G,r;if(!(h=l.exec(this.chunk)))return 0;u=h[0];g=h[1];h=h[2];n=g.length;m=void 0;if("own"===g&&"FOR"===this.tag())return this.token("OWN",g),g.length;if("from"===g&&"YIELD"===this.tag())return this.token("FROM",g),g.length;if("as"===g&&this.seenImport){if("*"===this.value())this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(D=this.value(),0<=ea.call(Ca,D))this.tokens[this.tokens.length-
1][0]="IDENTIFIER";if("DEFAULT"===(p=this.tag())||"IMPORT_ALL"===p||"IDENTIFIER"===p)return this.token("AS",g),g.length}if("as"===g&&this.seenExport&&"IDENTIFIER"===this.tag())return this.token("AS",g),g.length;if("default"===g&&this.seenExport)return this.token("DEFAULT",g),g.length;D=this.tokens;D=D[D.length-1];r=h||null!=D&&("."===(w=D[0])||"?."===w||"::"===w||"?::"===w||!D.spaced&&"@"===D[0])?"PROPERTY":"IDENTIFIER";"IDENTIFIER"!==r||!(0<=ea.call(z,g)||0<=ea.call(Ca,g))||this.exportSpecifierList&&
0<=ea.call(Ca,g)?"IDENTIFIER"===r&&this.seenFor&&"from"===g&&ia(D)&&(r="FORFROM",this.seenFor=!1):(r=g.toUpperCase(),"WHEN"===r&&(G=this.tag(),0<=ea.call(k,G))?r="LEADING_WHEN":"FOR"===r?this.seenFor=!0:"UNLESS"===r?r="IF":"IMPORT"===r?this.seenImport=!0:"EXPORT"===r?this.seenExport=!0:0<=ea.call(ya,r)?r="UNARY":0<=ea.call(A,r)&&("INSTANCEOF"!==r&&this.seenFor?(r="FOR"+r,this.seenFor=!1):(r="RELATION","!"===this.value()&&(m=this.tokens.pop(),g="!"+g))));"IDENTIFIER"===r&&0<=ea.call(X,g)&&this.error("reserved word '"+
g+"'",{length:g.length});"PROPERTY"!==r&&(0<=ea.call(a,g)&&(f=g,g=c[g]),r=function(){switch(g){case "!":return"UNARY";case "\x3d\x3d":case "!\x3d":return"COMPARE";case "true":case "false":return"BOOL";case "break":case "continue":case "debugger":return"STATEMENT";case "\x26\x26":case "||":return g;default:return r}}());w=this.token(r,g,0,n);f&&(w.origin=[r,f,w[2]]);m&&(f=[m[2].first_line,m[2].first_column],w[2].first_line=f[0],w[2].first_column=f[1]);h&&(f=u.lastIndexOf(":"),this.token(":",":",f,
h.length));return u.length};g.prototype.numberToken=function(){var a,c,f,g;if(!(c=V.exec(this.chunk)))return 0;f=c[0];c=f.length;switch(!1){case !/^0[BOX]/.test(f):this.error("radix prefix in '"+f+"' must be lowercase",{offset:1});break;case !/^(?!0x).*E/.test(f):this.error("exponential notation in '"+f+"' must be indicated with a lowercase 'e'",{offset:f.indexOf("E")});break;case !/^0\d*[89]/.test(f):this.error("decimal literal '"+f+"' must not be prefixed with '0'",{length:c});break;case !/^0\d+/.test(f):this.error("octal literal '"+
f+"' must be prefixed with '0o'",{length:c})}a=function(){switch(f.charAt(1)){case "b":return 2;case "o":return 8;case "x":return 16;default:return null}}();a=null!=a?parseInt(f.slice(2),a):parseFloat(f);if("b"===(g=f.charAt(1))||"o"===g)f="0x"+a.toString(16);this.token(Infinity===a?"INFINITY":"NUMBER",f,0,c);return c};g.prototype.stringToken=function(){var a,c,f,g,h,k,n,u,l,r,D,m;l=(ca.exec(this.chunk)||[])[0];if(!l)return 0;this.tokens.length&&"from"===this.value()&&(this.seenImport||this.seenExport)&&
(this.tokens[this.tokens.length-1][0]="FROM");f=function(){switch(l){case "'":return J;case '"':return W;case "'''":return y;case '"""':return F}}();g=3===l.length;f=this.matchWithInterpolations(f,l);m=f.tokens;h=f.index;a=m.length-1;f=l.charAt(0);if(g){n=null;for(g=function(){var a,c,f;f=[];k=a=0;for(c=m.length;a<c;k=++a)D=m[k],"NEOSTRING"===D[0]&&f.push(D[1]);return f}().join("#{}");c=x.exec(g);)if(c=c[1],null===n||0<(r=c.length)&&r<n.length)n=c;n&&(u=RegExp("\\n"+n,"g"));this.mergeInterpolationTokens(m,
{delimiter:f},function(c){return function(f,g){f=c.formatString(f);u&&(f=f.replace(u,"\n"));0===g&&(f=f.replace(I,""));g===a&&(f=f.replace(R,""));return f}}(this))}else this.mergeInterpolationTokens(m,{delimiter:f},function(c){return function(f,g){f=c.formatString(f);return f=f.replace(Y,function(c,h){return 0===g&&0===h||g===a&&h+c.length===f.length?"":" "})}}(this));return h};g.prototype.commentToken=function(){var a,c,g;if(!(g=this.chunk.match(f)))return 0;a=g[0];if(c=g[1])(g=H.exec(a))&&this.error("block comments cannot contain "+
g[0],{offset:g.index,length:g[0].length}),0<=c.indexOf("\n")&&(c=c.replace(RegExp("\\n"+ja(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",c,0,a.length);return a.length};g.prototype.jsToken=function(){var a,c;if("`"!==this.chunk.charAt(0)||!(a=N.exec(this.chunk)||L.exec(this.chunk)))return 0;c=a[1].replace(/\\+(`|$)/g,function(a){return a.slice(-Math.ceil(a.length/2))});this.token("JS",c,0,a[0].length);return a[0].length};g.prototype.regexToken=function(){var a,c,f,g,h,k,n,l;switch(!1){case !(c=
B.exec(this.chunk)):this.error("regular expressions cannot begin with "+c[2],{offset:c.index+c[1].length});break;case !(c=this.matchWithInterpolations(v,"///")):l=c.tokens;h=c.index;break;case !(c=ba.exec(this.chunk)):n=c[0];a=c[1];c=c[2];this.validateEscapes(a,{isRegex:!0,offsetInChunk:1});h=n.length;k=this.tokens;if(k=k[k.length-1])if(k.spaced&&(f=k[0],0<=ea.call(xa,f))){if(!c||Q.test(n))return 0}else if(g=k[0],0<=ea.call(r,g))return 0;c||this.error("missing / (unclosed regex)");break;default:return 0}g=
S.exec(this.chunk.slice(h))[0];f=h+g.length;c=this.makeToken("REGEX",null,0,f);switch(!1){case !!ka.test(g):this.error("invalid regular expression flags "+g,{offset:h,length:g.length});break;case !(n||1===l.length):null==a&&(a=this.formatHeregex(l[0][1]));this.token("REGEX",""+this.makeDelimitedLiteral(a,{delimiter:"/"})+g,0,f,c);break;default:this.token("REGEX_START","(",0,0,c),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(l,{delimiter:'"',double:!0},
this.formatHeregex),g&&(this.token(",",",",h,0),this.token("STRING",'"'+g+'"',h,g.length)),this.token(")",")",f,0),this.token("REGEX_END",")",f,0)}return f};g.prototype.lineToken=function(){var a,c,f;if(!(c=n.exec(this.chunk)))return 0;c=c[0];this.seenFor=!1;f=c.length-1-c.lastIndexOf("\n");a=this.unfinished();if(f-this.indebt===this.indent)return a?this.suppressNewlines():this.newlineToken(0),c.length;if(f>this.indent){if(a)return this.indebt=f-this.indent,this.suppressNewlines(),c.length;if(!this.tokens.length)return this.baseIndent=
this.indent=f,c.length;a=f-this.indent+this.outdebt;this.token("INDENT",a,c.length-f,f);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=f}else f<this.baseIndent?this.error("missing indentation",{offset:c.length}):(this.indebt=0,this.outdentToken(this.indent-f,a,c.length));return c.length};g.prototype.outdentToken=function(a,c,f){var g,k,T,n;for(g=this.indent-a;0<a;)(T=this.indents[this.indents.length-1])?T===this.outdebt?(a-=this.outdebt,this.outdebt=0):
T<this.outdebt?(this.outdebt-=T,a-=T):(k=this.indents.pop()+this.outdebt,f&&(n=this.chunk[f],0<=ea.call(h,n))&&(g-=k-a,a=k),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",a,0,f),a-=k):a=0;k&&(this.outdebt-=a);for(;";"===this.value();)this.tokens.pop();"TERMINATOR"===this.tag()||c||this.token("TERMINATOR","\n",f,0);this.indent=g;return this};g.prototype.whitespaceToken=function(){var a,c;if(!(a=da.exec(this.chunk))&&"\n"!==this.chunk.charAt(0))return 0;c=this.tokens;(c=c[c.length-1])&&(c[a?
"spaced":"newLine"]=!0);return a?a[0].length:0};g.prototype.newlineToken=function(a){for(;";"===this.value();)this.tokens.pop();"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",a,0);return this};g.prototype.suppressNewlines=function(){"\\"===this.value()&&this.tokens.pop();return this};g.prototype.literalToken=function(){var a,c,f,g,h,k,n,l;(a=U.exec(this.chunk))?(a=a[0],D.test(a)&&this.tagParameters()):a=this.chunk.charAt(0);l=a;g=this.tokens;if((g=g[g.length-1])&&0<=ea.call(["\x3d"].concat(ma.call(m)),
a)&&(n=!1,"\x3d"!==a||"||"!==(f=g[1])&&"\x26\x26"!==f||g.spaced||(g[0]="COMPOUND_ASSIGN",g[1]+="\x3d",g=this.tokens[this.tokens.length-2],n=!0),g&&"PROPERTY"!==g[0]&&(f=null!=(c=g.origin)?c:g,(c=la(g[1],f[1]))&&this.error(c,f[2])),n))return a.length;"{"===a&&"EXPORT"===(null!=g?g[0]:void 0)?this.exportSpecifierList=!0:this.exportSpecifierList&&"}"===a&&(this.exportSpecifierList=!1);if(";"===a)this.seenFor=this.seenImport=this.seenExport=!1,l="TERMINATOR";else if("*"===a&&"EXPORT"===g[0])l="EXPORT_ALL";
else if(0<=ea.call(P,a))l="MATH";else if(0<=ea.call(p,a))l="COMPARE";else if(0<=ea.call(m,a))l="COMPOUND_ASSIGN";else if(0<=ea.call(ya,a))l="UNARY";else if(0<=ea.call(Wa,a))l="UNARY_MATH";else if(0<=ea.call(O,a))l="SHIFT";else if("?"===a&&null!=g&&g.spaced)l="BIN?";else if(g&&!g.spaced)if("("===a&&(h=g[0],0<=ea.call(xa,h)))"?"===g[0]&&(g[0]="FUNC_EXIST"),l="CALL_START";else if("["===a&&(k=g[0],0<=ea.call(u,k)))switch(l="INDEX_START",g[0]){case "?":g[0]="INDEX_SOAK"}h=this.makeToken(l,a);switch(a){case "(":case "{":case "[":this.ends.push({tag:G[a],
origin:h});break;case ")":case "}":case "]":this.pair(a)}this.tokens.push(h);return a.length};g.prototype.tagParameters=function(){var a,c,f,g;if(")"!==this.tag())return this;c=[];g=this.tokens;a=g.length;for(g[--a][0]="PARAM_END";f=g[--a];)switch(f[0]){case ")":c.push(f);break;case "(":case "CALL_START":if(c.length)c.pop();else return"("===f[0]&&(f[0]="PARAM_START"),this}return this};g.prototype.closeIndentation=function(){return this.outdentToken(this.indent)};g.prototype.matchWithInterpolations=
function(a,c){var f,h,k,n,l,u,m,T;T=[];l=c.length;if(this.chunk.slice(0,l)!==c)return null;for(m=this.chunk.slice(l);;){n=a.exec(m)[0];this.validateEscapes(n,{isRegex:"/"===c.charAt(0),offsetInChunk:l});T.push(this.makeToken("NEOSTRING",n,l));m=m.slice(n.length);l+=n.length;if("#{"!==m.slice(0,2))break;f=this.getLineAndColumnFromChunk(l+1);n=f[0];f=f[1];f=(new g).tokenize(m.slice(1),{line:n,column:f,untilBalanced:!0});n=f.tokens;h=f.index;h+=1;u=n[0];f=n[n.length-1];u[0]=u[1]="(";f[0]=f[1]=")";f.origin=
["","end of interpolation",f[2]];"TERMINATOR"===(null!=(k=n[1])?k[0]:void 0)&&n.splice(1,1);T.push(["TOKENS",n]);m=m.slice(h);l+=h}m.slice(0,c.length)!==c&&this.error("missing "+c,{length:c.length});a=T[0];k=T[T.length-1];a[2].first_column-=c.length;"\n"===k[1].substr(-1)?(k[2].last_line+=1,k[2].last_column=c.length-1):k[2].last_column+=c.length;0===k[1].length&&--k[2].last_column;return{tokens:T,index:l+c.length}};g.prototype.mergeInterpolationTokens=function(a,c,f){var g,h,k,n,l,u,m,D,r,T,w,p;1<
a.length&&(D=this.token("STRING_START","(",0,0));k=this.tokens.length;n=l=0;for(u=a.length;l<u;n=++l){T=a[n];g=T[0];p=T[1];switch(g){case "TOKENS":if(2===p.length)continue;m=p[0];w=p;break;case "NEOSTRING":g=f(T[1],n);if(0===g.length)if(0===n)h=this.tokens.length;else continue;2===n&&null!=h&&this.tokens.splice(h,2);T[0]="STRING";T[1]=this.makeDelimitedLiteral(g,c);m=T;w=[T]}this.tokens.length>k&&(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});(r=this.tokens).push.apply(r,w)}if(D)return a=a[a.length-1],D.origin=["STRING",null,{first_line:D[2].first_line,first_column:D[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],D=this.token("STRING_END",")"),D[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}};g.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()};g.prototype.getLineAndColumnFromChunk=function(a){var c,f;if(0===a)return[this.chunkLine,this.chunkColumn];f=a>=this.chunk.length?this.chunk:this.chunk.slice(0,+(a-1)+1||9E9);a=fa(f,"\n");c=this.chunkColumn;0<a?(c=f.split("\n"),c=c[c.length-1],c=c.length):c+=f.length;return[this.chunkLine+a,c]};g.prototype.makeToken=function(a,c,f,g){var h,k;null==f&&(f=0);null==g&&(g=c.length);h={};k=this.getLineAndColumnFromChunk(f);
h.first_line=k[0];h.first_column=k[1];f=this.getLineAndColumnFromChunk(f+(0<g?g-1:0));h.last_line=f[0];h.last_column=f[1];return[a,c,h]};g.prototype.token=function(a,c,f,g,h){a=this.makeToken(a,c,f,g);h&&(a.origin=h);this.tokens.push(a);return a};g.prototype.tag=function(){var a;a=this.tokens;a=a[a.length-1];return null!=a?a[0]:void 0};g.prototype.value=function(){var a;a=this.tokens;a=a[a.length-1];return null!=a?a[1]:void 0};g.prototype.unfinished=function(){var a;return M.test(this.chunk)||"\\"===
(a=this.tag())||"."===a||"?."===a||"?::"===a||"UNARY"===a||"MATH"===a||"UNARY_MATH"===a||"+"===a||"-"===a||"**"===a||"SHIFT"===a||"RELATION"===a||"COMPARE"===a||"\x26"===a||"^"===a||"|"===a||"\x26\x26"===a||"||"===a||"BIN?"===a||"THROW"===a||"EXTENDS"===a};g.prototype.formatString=function(a){return a.replace(aa,"$1")};g.prototype.formatHeregex=function(a){return a.replace(E,"$1$2")};g.prototype.validateEscapes=function(a,c){var f,g,h,k,n;null==c&&(c={});if(g=w.exec(a))if(g[0],a=g[1],h=g[2],f=g[3],
n=g[4],!c.isRegex||!h||"0"===h.charAt(0))return f="\\"+(h||f||n),this.error((h?"octal escape sequences are not allowed":"invalid escape sequence")+" "+f,{offset:(null!=(k=c.offsetInChunk)?k:0)+g.index+a.length,length:f.length})};g.prototype.makeDelimitedLiteral=function(a,c){null==c&&(c={});""===a&&"/"===c.delimiter&&(a="(?:)");a=a.replace(RegExp("(\\\\\\\\)|(\\\\0(?\x3d[1-7]))|\\\\?("+c.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),function(a,f,g,h,k,n,l,m,u){switch(!1){case !f:return c.double?
f+f:f;case !g:return"\\x00";case !h:return"\\"+h;case !k:return"\\n";case !n:return"\\r";case !l:return"\\u2028";case !m:return"\\u2029";case !u:return c.double?"\\"+u:u}});return""+c.delimiter+a+c.delimiter};g.prototype.error=function(a,c){var f,g,h,k,n;null==c&&(c={});c="first_line"in c?c:(k=this.getLineAndColumnFromChunk(null!=(h=c.offset)?h:0),g=k[0],f=k[1],k,{first_line:g,first_column:f,last_column:f+(null!=(n=c.length)?n:1)-1});return ra(a,c)};return g}();la=function(a,c){null==c&&(c=a);switch(!1){case 0>
ea.call(ma.call(z).concat(ma.call(Ca)),a):return"keyword '"+c+"' can't be assigned";case 0>ea.call(Z,a):return"'"+c+"' can't be assigned";case 0>ea.call(X,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};g.isUnassignable=la;ia=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};z="true false null this new delete typeof in instanceof return throw break continue debugger yield if else switch for while do try catch finally class extends super import export default".split(" ");
Ca="undefined Infinity NaN then unless until loop of by when".split(" ");c={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 c)a.push(oa);return a}();Ca=Ca.concat(a);X="case function var void with const let enum native implements interface package private protected public static".split(" ");Z=["arguments","eval"];g.JS_FORBIDDEN=z.concat(X).concat(Z);va=65279;l=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/;
V=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;U=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;da=/^[^\n\S]+/;f=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;D=/^[-=]>/;n=/^(?:\n[^\n\S]*)+/;L=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;N=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;ca=/^(?:'''|"""|'|")/;J=/^(?:[^\\']|\\[\s\S])*/;W=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;y=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;F=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;aa=
/((?:\\\\)+)|\\[^\S\n]*\n\s*/g;Y=/\s*\n\s*/g;x=/\n+([^\n\S]*)(?=\S)/g;ba=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;S=/^\w*/;ka=/^(?!.*(.).*\1)[imgy]*$/;v=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/;E=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;B=/^(\/|\/{3}\s*)(\*)/;Q=/^\/=?\s/;H=/\*\//;M=/^\s*(?:,|\??\.(?![.\d])|::)/;w=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;I=/^[^\n\S]*\n/;R=/\n[^\n\S]*$/;qa=/\s+$/;m="-\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(" ");
ya=["NEW","TYPEOF","DELETE","DO"];Wa=["!","~"];O=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];p="\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");P=["*","/","%","//","%%"];A=["IN","OF","INSTANCEOF"];xa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");u=xa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));r=u.concat(["++","--"]);k=["INDENT","OUTDENT","TERMINATOR"];h=[")","}","]"]}).call(this);return g}();t["./parser"]=function(){var g={},va={exports:g},
xa=function(){function g(){this.yy={}}var a=function(a,q,pa,b){pa=pa||{};for(b=a.length;b--;pa[a[b]]=q);return pa},c=[1,22],t=[1,25],f=[1,83],p=[1,79],m=[1,84],H=[1,85],F=[1,81],x=[1,82],y=[1,56],v=[1,58],E=[1,59],N=[1,60],l=[1,61],h=[1,62],u=[1,49],w=[1,50],G=[1,32],L=[1,68],z=[1,69],I=[1,78],k=[1,47],M=[1,51],P=[1,52],n=[1,67],r=[1,65],V=[1,66],U=[1,64],Q=[1,42],ba=[1,48],S=[1,63],B=[1,73],A=[1,74],X=[1,75],C=[1,76],O=[1,46],Y=[1,72],Z=[1,34],W=[1,35],aa=[1,36],J=[1,37],ca=[1,38],R=[1,39],xa=[1,
86],va=[1,6,32,42,131],qa=[1,101],ka=[1,89],da=[1,88],fa=[1,87],ha=[1,90],ia=[1,91],la=[1,92],oa=[1,93],K=[1,94],ja=[1,95],ra=[1,96],ea=[1,97],ma=[1,98],sa=[1,99],T=[1,100],ya=[1,104],ta=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ia=[2,165],Sa=[1,110],Ga=[1,111],Ta=[1,112],Fa=[1,113],Oa=[1,115],Pa=[1,116],La=[1,109],za=[1,6,32,42,131,133,135,139,156],na=[2,27],ga=[1,123],Ha=[1,121],Aa=[1,6,31,32,40,41,42,65,70,73,82,
83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Xa=[2,94],b=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],q=[2,73],pa=[1,128],e=[1,133],d=[1,134],wa=[1,136],Ma=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,
174],ua=[2,91],Gb=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ab=[2,63],Hb=[1,166],bb=[1,178],Va=[1,180],Ib=[1,175],Na=[1,182],ub=[1,184],Ja=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],Jb=[2,110],Kb=[1,6,31,32,40,41,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,
139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Lb=[1,6,31,32,40,41,42,46,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Mb=[40,41,114],Nb=[1,241],vb=[1,240],Ka=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156],Ea=[2,71],Ob=[1,250],Ua=[6,31,32,65,70],hb=[6,31,32,55,65,70,73],cb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,166,167,
168,169,170,171,172,173,174],Pb=[40,41,82,83,84,85,87,90,113,114],ib=[1,269],db=[2,62],jb=[1,279],Ya=[1,281],wb=[1,286],eb=[1,288],Qb=[2,186],xb=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],kb=[1,297],Qa=[6,31,32,70,115,120],Rb=[1,6,31,32,40,41,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,
165,166,167,168,169,170,171,172,173,174,175],Sb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,156],Za=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,156],lb=[146,147,148],mb=[70,146,147,148],nb=[6,31,94],Tb=[1,311],Ba=[6,31,32,70,94],Ub=[6,31,32,58,70,94],yb=[6,31,32,55,58,70,94],Vb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,166,167,168,169,170,171,172,173,174],Wb=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,105,112,117,118,119,125,
129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb=[2,175],Ra=[6,31,32],fb=[2,72],Yb=[1,323],Zb=[1,324],$b=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,151,153,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ob=[32,151,153],ac=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,156],pb=[1,350],zb=[1,356],Ab=[1,6,32,42,131,156],gb=[2,86],qb=[1,366],rb=[1,367],bc=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,151,156,159,160,163,164,
165,166,167,168,169,170,171,172,173,174],Bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,156],cc=[1,380],dc=[1,381],Cb=[6,31,32,94],ec=[6,31,32,70],Db=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],fc=[31,70],sb=[1,407],tb=[1,408],Eb=[1,414],Fb=[1,415],gc={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12,
c,g){a.toString===Ca&&(a.code||(a.code=c),a.filename||(a.filename=g),a.stack=a.toString());return a};Ca=function(){var a,g,l,q,G,F,x,v,M,u;if(!this.code||!this.location)return Error.prototype.toString.call(this);a=this.location;F=a.first_line;G=a.first_column;l=a.last_line;x=a.last_column;null==l&&(l=F);null==x&&(x=G);q=this.filename||"[stdin]";a=this.code.split("\n")[F];l=F===l?x+1:a.length;x=a.slice(0,G).replace(/[^\s]/g," ")+c("^",l-G);"undefined"!==typeof process&&null!==process&&(g=(null!=(v=
process.stdout)?v.isTTY:void 0)&&!(null!=(M=process.env)&&M.NODE_DISABLE_COLORS));if(null!=(u=this.colorful)?u:g)g=function(a){return"\u001b[1;31m"+a+"\u001b[0m"},a=a.slice(0,G)+g(a.slice(G,l))+a.slice(l),x=g(x);return q+":"+(F+1)+":"+(G+1)+": error: "+this.message+"\n"+a+"\n"+x};g.nameWhitespaceCharacter=function(a){switch(a){case " ":return"space";case "\n":return"newline";case "\r":return"carriage return";case "\t":return"tab";default:return a}}}).call(this);return g}();u["./rewriter"]=function(){var g=
{};(function(){var u,xa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E=[].indexOf||function(a){for(var c=0,f=this.length;c<f;c++)if(c in this&&this[c]===a)return c;return-1},O=[].slice;v=function(a,c,f){a=[a,c];a.generated=!0;f&&(a.origin=f);return a};g.Rewriter=function(){function m(){}m.prototype.rewrite=function(a){this.tokens=a;this.removeLeadingNewlines();this.closeOpenCalls();this.closeOpenIndexes();this.normalizeLines();this.tagPostfixConditionals();this.addImplicitBracesAndParens();this.addLocationDataToGeneratedTokens();
this.fixOutdentLocationData();return this.tokens};m.prototype.scanTokens=function(a){var c,k,h;h=this.tokens;for(c=0;k=h[c];)c+=a.call(this,k,c,h);return!0};m.prototype.detectEnd=function(k,f,p){var h,t,m,g,H;H=this.tokens;for(h=0;g=H[k];){if(0===h&&f.call(this,g,k))return p.call(this,g,k);if(!g||0>h)return p.call(this,g,k-1);(t=g[0],0<=E.call(c,t))?h+=1:(m=g[0],0<=E.call(a,m))&&--h;k+=1}return k-1};m.prototype.removeLeadingNewlines=function(){var a,c,f,h,y;h=this.tokens;a=c=0;for(f=h.length;c<f&&
(y=h[a][0],"TERMINATOR"===y);a=++c);if(a)return this.tokens.splice(0,a)};m.prototype.closeOpenCalls=function(){var a,c;c=function(a,c){var h;return")"===(h=a[0])||"CALL_END"===h||"OUTDENT"===a[0]&&")"===this.tag(c-1)};a=function(a,c){return this.tokens["OUTDENT"===a[0]?c-1:c][0]="CALL_END"};return this.scanTokens(function(f,h){"CALL_START"===f[0]&&this.detectEnd(h+1,c,a);return 1})};m.prototype.closeOpenIndexes=function(){var a,c;c=function(a,c){var h;return"]"===(h=a[0])||"INDEX_END"===h};a=function(a,
c){return a[0]="INDEX_END"};return this.scanTokens(function(f,h){"INDEX_START"===f[0]&&this.detectEnd(h+1,c,a);return 1})};m.prototype.indexOfTag=function(){var a,c,f,h,g,m,A;c=arguments[0];g=2<=arguments.length?O.call(arguments,1):[];f=h=a=0;for(m=g.length;0<=m?h<m:h>m;f=0<=m?++h:--h){for(;"HERECOMMENT"===this.tag(c+f+a);)a+=2;if(null!=g[f]&&("string"===typeof g[f]&&(g[f]=[g[f]]),A=this.tag(c+f+a),0>E.call(g[f],A)))return-1}return c+f+a-1};m.prototype.looksObjectish=function(f){var k;if(-1<this.indexOfTag(f,
"@",null,":")||-1<this.indexOfTag(f,null,":"))return!0;f=this.indexOfTag(f,c);return-1<f&&(k=null,this.detectEnd(f+1,function(c){var h;return h=c[0],0<=E.call(a,h)},function(a,c){return k=c}),":"===this.tag(k+1))?!0:!1};m.prototype.findTagsBackwards=function(f,g){var k,h,m,t,A,H,l;for(k=[];0<=f&&(k.length||(t=this.tag(f),0>E.call(g,t))&&((A=this.tag(f),0>E.call(c,A))||this.tokens[f].generated)&&(H=this.tag(f),0>E.call(G,H)));)(h=this.tag(f),0<=E.call(a,h))&&k.push(this.tag(f)),(m=this.tag(f),0<=E.call(c,
m))&&k.length&&k.pop(),--f;return l=this.tag(f),0<=E.call(g,l)};m.prototype.addImplicitBracesAndParens=function(){var k,g;k=[];g=null;return this.scanTokens(function(m,h,t){var p,A,y,q,r,I,w,x,z,B,u,C,M,F,J,N,O,K;K=m[0];B=(u=0<h?t[h-1]:[])[0];z=(h<t.length-1?t[h+1]:[])[0];J=function(){return k[k.length-1]};N=h;y=function(a){return h-N+a};q=function(){var a,c;return null!=(a=J())?null!=(c=a[2])?c.ours:void 0:void 0};r=function(){var a;return q()&&"("===(null!=(a=J())?a[0]:void 0)};w=function(){var a;
return q()&&"{"===(null!=(a=J())?a[0]:void 0)};I=function(){var a;return q&&"CONTROL"===(null!=(a=J())?a[0]:void 0)};O=function(a){var c;c=null!=a?a:h;k.push(["(",c,{ours:!0}]);t.splice(c,0,v("CALL_START","("));if(null==a)return h+=1};p=function(){k.pop();t.splice(h,0,v("CALL_END",")",["","end of input",m[2]]));return h+=1};x=function(a,c){var f;null==c&&(c=!0);f=null!=a?a:h;k.push(["{",f,{sameLine:!0,startsLine:c,ours:!0}]);c=new String("{");c.generated=!0;t.splice(f,0,v("{",c,m));if(null==a)return h+=
1};A=function(a){a=null!=a?a:h;k.pop();t.splice(a,0,v("}","}",m));return h+=1};if(r()&&("IF"===K||"TRY"===K||"FINALLY"===K||"CATCH"===K||"CLASS"===K||"SWITCH"===K))return k.push(["CONTROL",h,{ours:!0}]),y(1);if("INDENT"===K&&q()){if("\x3d\x3e"!==B&&"-\x3e"!==B&&"["!==B&&"("!==B&&","!==B&&"{"!==B&&"TRY"!==B&&"ELSE"!==B&&"\x3d"!==B)for(;r();)p();I()&&k.pop();k.push([K,h]);return y(1)}if(0<=E.call(c,K))return k.push([K,h]),y(1);if(0<=E.call(a,K)){for(;q();)r()?p():w()?A():k.pop();g=k.pop()}if((0<=E.call(D,
K)&&m.spaced||"?"===K&&0<h&&!t[h-1].spaced)&&(0<=E.call(Ca,z)||0<=E.call(l,z)&&(null==(C=t[h+1])||!C.spaced)&&(null==(M=t[h+1])||!M.newLine)))return"?"===K&&(K=m[0]="FUNC_EXIST"),O(h+1),y(2);if(0<=E.call(D,K)&&-1<this.indexOfTag(h+1,"INDENT")&&this.looksObjectish(h+2)&&!this.findTagsBackwards(h,"CLASS EXTENDS IF CATCH SWITCH LEADING_WHEN FOR WHILE UNTIL".split(" ")))return O(h+1),k.push(["INDENT",h+2]),y(3);if(":"===K){for(A=function(){var c;switch(!1){case c=this.tag(h-1),0>E.call(a,c):return g[1];
case "@"!==this.tag(h-2):return h-2;default:return h-1}}.call(this);"HERECOMMENT"===this.tag(A-2);)A-=2;this.insideForDeclaration="FOR"===z;I=0===A||(F=this.tag(A-1),0<=E.call(G,F))||t[A-1].newLine;if(J()&&(w=J(),F=w[0],u=w[1],("{"===F||"INDENT"===F&&"{"===this.tag(u-1))&&(I||","===this.tag(A-1)||"{"===this.tag(A-1))))return y(1);x(A,!!I);return y(2)}w()&&0<=E.call(G,K)&&(J()[2].sameLine=!1);x="OUTDENT"===B||u.newLine;if(0<=E.call(f,K)||0<=E.call(xa,K)&&x)for(;q();)if(x=J(),F=x[0],u=x[1],F=x[2],x=
F.sameLine,I=F.startsLine,r()&&","!==B)p();else if(w()&&!this.insideForDeclaration&&x&&"TERMINATOR"!==K&&":"!==B)A();else if(!w()||"TERMINATOR"!==K||","===B||I&&this.looksObjectish(h+1))break;else{if("HERECOMMENT"===z)return y(1);A()}if(!(","!==K||this.looksObjectish(h+1)||!w()||this.insideForDeclaration||"TERMINATOR"===z&&this.looksObjectish(h+2)))for(z="OUTDENT"===z?1:0;w();)A(h+z);return y(1)})};m.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,f){var h,
k,m;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(m=f[c+1])?m[2]:void 0)?(k=h.first_line,h=h.first_column):(h=null!=(k=f[c-1])?k[2]:void 0)?(k=h.last_line,h=h.last_column):k=h=0;a[2]={first_line:k,first_column:h,last_line:k,last_column:h};return 1})};m.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,f){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===a[0]||a.generated&&"}"===a[0]))return 1;c=f[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})};m.prototype.normalizeLines=function(){var a,c,f,h,m;m=f=h=null;c=function(a,c){var f,h,k,g;return";"!==a[1]&&(f=a[0],0<=E.call(F,f))&&!("TERMINATOR"===a[0]&&(h=this.tag(c+1),0<=E.call(q,h)))&&!("ELSE"===a[0]&&"THEN"!==m)&&!!("CATCH"!==(k=a[0])&&"FINALLY"!==k||"-\x3e"!==m&&"\x3d\x3e"!==m)||(g=a[0],0<=E.call(xa,g))&&this.tokens[c-1].newLine};a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,h)};return this.scanTokens(function(k,
g,t){var p,y,l;k=k[0];if("TERMINATOR"===k){if("ELSE"===this.tag(g+1)&&"OUTDENT"!==this.tag(g-1))return t.splice.apply(t,[g,1].concat(O.call(this.indentation()))),1;if(p=this.tag(g+1),0<=E.call(q,p))return t.splice(g,1),0}if("CATCH"===k)for(p=y=1;2>=y;p=++y)if("OUTDENT"===(l=this.tag(g+p))||"TERMINATOR"===l||"FINALLY"===l)return t.splice.apply(t,[g+p,0].concat(O.call(this.indentation()))),2+p;0<=E.call(x,k)&&"INDENT"!==this.tag(g+1)&&("ELSE"!==k||"IF"!==this.tag(g+1))&&(m=k,l=this.indentation(t[g]),
f=l[0],h=l[1],"THEN"===m&&(f.fromThen=!0),t.splice(g+1,0,f),this.detectEnd(g+2,c,a),"THEN"===k&&t.splice(g,1));return 1})};m.prototype.tagPostfixConditionals=function(){var a,c,f;f=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>E.call(x,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return f[0]="POST_"+f[0]};return this.scanTokens(function(h,k){if("IF"!==h[0])return 1;f=h;this.detectEnd(k+1,c,a);return 1})};m.prototype.indentation=function(a){var c,
f;c=["INDENT",2];f=["OUTDENT",2];a?(c.generated=f.generated=!0,c.origin=f.origin=a):c.explicit=f.explicit=!0;return[c,f]};m.prototype.generate=v;m.prototype.tag=function(a){var c;return null!=(c=this.tokens[a])?c[0]:void 0};return m}();u=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]];g.INVERSES=w={};c=[];a=[];M=0;for(J=u.length;M<J;M++)r=u[M],N=r[0],r=r[1],
c.push(w[r]=N),a.push(w[N]=r);q=["CATCH","THEN","ELSE","FINALLY"].concat(a);D="IDENTIFIER PROPERTY SUPER ) CALL_END ] INDEX_END @ THIS".split(" ");Ca="IDENTIFIER PROPERTY NUMBER INFINITY NAN STRING STRING_START REGEX REGEX_START JS NEW PARAM_START CLASS IF TRY SWITCH THIS UNDEFINED NULL BOOL UNARY YIELD UNARY_MATH SUPER THROW @ -\x3e \x3d\x3e [ ( { -- ++".split(" ");l=["+","-"];f="POST_IF FOR WHILE UNTIL WHEN BY LOOP TERMINATOR".split(" ");x="ELSE -\x3e \x3d\x3e TRY FINALLY THEN".split(" ");F="TERMINATOR CATCH FINALLY ELSE OUTDENT LEADING_WHEN".split(" ");
G=["TERMINATOR","INDENT","OUTDENT"];xa=[".","?.","::","?::"]}).call(this);return g}();u["./lexer"]=function(){var g={};(function(){var ua,xa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E,O,m,k,t,p,h,y,P,A,H,U,T,I,aa,S,z,B,W,C,Q,X,Y,V,Z,K,ba,R,qa,ya,Xa,ka,ca,ea,ga,ha,la,oa,L,ja,ra,da=[].indexOf||function(a){for(var c=0,f=this.length;c<f;c++)if(c in this&&this[c]===a)return c;return-1},ma=[].slice;L=u("./rewriter");C=L.Rewriter;m=L.INVERSES;L=u("./helpers");ea=L.count;ja=L.repeat;ga=L.invertLiterate;ra=L.throwSyntaxError;
g.Lexer=function(){function g(){}g.prototype.tokenize=function(a,c){var f,ia,h,g;null==c&&(c={});this.literate=c.literate;this.outdebt=this.indebt=this.baseIndent=this.indent=0;this.indents=[];this.ends=[];this.tokens=[];this.exportSpecifierList=this.seenExport=this.seenImport=this.seenFor=!1;this.chunkLine=c.line||0;this.chunkColumn=c.column||0;a=this.clean(a);for(h=0;this.chunk=a.slice(h);)if(f=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||
this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),g=this.getLineAndColumnFromChunk(f),this.chunkLine=g[0],this.chunkColumn=g[1],h+=f,c.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:h};this.closeIndentation();(ia=this.ends.pop())&&this.error("missing "+ia.tag,ia.origin[2]);return!1===c.rewrite?this.tokens:(new C).rewrite(this.tokens)};g.prototype.clean=function(a){a.charCodeAt(0)===ua&&(a=a.slice(1));a=a.replace(/\r/g,"").replace(qa,"");ca.test(a)&&(a=
"\n"+a,this.chunkLine--);this.literate&&(a=ga(a));return a};g.prototype.identifierToken=function(){var f,g,k,m,p,y,l,A,q,v,r;if(!(g=J.exec(this.chunk)))return 0;p=g[0];k=g[1];g=g[2];m=k.length;y=void 0;if("own"===k&&"FOR"===this.tag())return this.token("OWN",k),k.length;if("from"===k&&"YIELD"===this.tag())return this.token("FROM",k),k.length;if("as"===k&&this.seenImport){if("*"===this.value())this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(l=this.value(),0<=da.call(Ca,l))this.tokens[this.tokens.length-
1][0]="IDENTIFIER";if("DEFAULT"===(A=this.tag())||"IMPORT_ALL"===A||"IDENTIFIER"===A)return this.token("AS",k),k.length}if("as"===k&&this.seenExport&&"IDENTIFIER"===this.tag())return this.token("AS",k),k.length;if("default"===k&&this.seenExport)return this.token("DEFAULT",k),k.length;l=this.tokens;l=l[l.length-1];r=g||null!=l&&("."===(q=l[0])||"?."===q||"::"===q||"?::"===q||!l.spaced&&"@"===l[0])?"PROPERTY":"IDENTIFIER";"IDENTIFIER"!==r||!(0<=da.call(t,k)||0<=da.call(Ca,k))||this.exportSpecifierList&&
0<=da.call(Ca,k)?"IDENTIFIER"===r&&this.seenFor&&"from"===k&&ha(l)&&(r="FORFROM",this.seenFor=!1):(r=k.toUpperCase(),"WHEN"===r&&(v=this.tag(),0<=da.call(h,v))?r="LEADING_WHEN":"FOR"===r?this.seenFor=!0:"UNLESS"===r?r="IF":"IMPORT"===r?this.seenImport=!0:"EXPORT"===r?this.seenExport=!0:0<=da.call(ya,r)?r="UNARY":0<=da.call(B,r)&&("INSTANCEOF"!==r&&this.seenFor?(r="FOR"+r,this.seenFor=!1):(r="RELATION","!"===this.value()&&(y=this.tokens.pop(),k="!"+k))));"IDENTIFIER"===r&&0<=da.call(W,k)&&this.error("reserved word '"+
k+"'",{length:k.length});"PROPERTY"!==r&&(0<=da.call(a,k)&&(f=k,k=c[k]),r=function(){switch(k){case "!":return"UNARY";case "\x3d\x3d":case "!\x3d":return"COMPARE";case "true":case "false":return"BOOL";case "break":case "continue":case "debugger":return"STATEMENT";case "\x26\x26":case "||":return k;default:return r}}());q=this.token(r,k,0,m);f&&(q.origin=[r,f,q[2]]);y&&(f=[y[2].first_line,y[2].first_column],q[2].first_line=f[0],q[2].first_column=f[1]);g&&(f=p.lastIndexOf(":"),this.token(":",":",f,
g.length));return p.length};g.prototype.numberToken=function(){var a,c,f,g;if(!(c=U.exec(this.chunk)))return 0;f=c[0];c=f.length;switch(!1){case !/^0[BOX]/.test(f):this.error("radix prefix in '"+f+"' must be lowercase",{offset:1});break;case !/^(?!0x).*E/.test(f):this.error("exponential notation in '"+f+"' must be indicated with a lowercase 'e'",{offset:f.indexOf("E")});break;case !/^0\d*[89]/.test(f):this.error("decimal literal '"+f+"' must not be prefixed with '0'",{length:c});break;case !/^0\d+/.test(f):this.error("octal literal '"+
f+"' must be prefixed with '0o'",{length:c})}a=function(){switch(f.charAt(1)){case "b":return 2;case "o":return 8;case "x":return 16;default:return null}}();a=null!=a?parseInt(f.slice(2),a):parseFloat(f);if("b"===(g=f.charAt(1))||"o"===g)f="0x"+a.toString(16);this.token(Infinity===a?"INFINITY":"NUMBER",f,0,c);return c};g.prototype.stringToken=function(){var a,c,f,g,h,k,m,t,l,r,y,q;l=(ba.exec(this.chunk)||[])[0];if(!l)return 0;this.tokens.length&&"from"===this.value()&&(this.seenImport||this.seenExport)&&
(this.tokens[this.tokens.length-1][0]="FROM");f=function(){switch(l){case "'":return K;case '"':return V;case "'''":return x;case '"""':return G}}();g=3===l.length;f=this.matchWithInterpolations(f,l);q=f.tokens;h=f.index;a=q.length-1;f=l.charAt(0);if(g){m=null;for(g=function(){var a,c,f;f=[];k=a=0;for(c=q.length;a<c;k=++a)y=q[k],"NEOSTRING"===y[0]&&f.push(y[1]);return f}().join("#{}");c=F.exec(g);)if(c=c[1],null===m||0<(r=c.length)&&r<m.length)m=c;m&&(t=RegExp("\\n"+m,"g"));this.mergeInterpolationTokens(q,
{delimiter:f},function(c){return function(f,g){f=c.formatString(f);t&&(f=f.replace(t,"\n"));0===g&&(f=f.replace(p,""));g===a&&(f=f.replace(R,""));return f}}(this))}else this.mergeInterpolationTokens(q,{delimiter:f},function(c){return function(f,g){f=c.formatString(f);return f=f.replace(X,function(c,h){return 0===g&&0===h||g===a&&h+c.length===f.length?"":" "})}}(this));return h};g.prototype.commentToken=function(){var a,c,g;if(!(g=this.chunk.match(f)))return 0;a=g[0];if(c=g[1])(g=w.exec(a))&&this.error("block comments cannot contain "+
g[0],{offset:g.index,length:g[0].length}),0<=c.indexOf("\n")&&(c=c.replace(RegExp("\\n"+ja(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",c,0,a.length);return a.length};g.prototype.jsToken=function(){var a,c;if("`"!==this.chunk.charAt(0)||!(a=N.exec(this.chunk)||k.exec(this.chunk)))return 0;c=a[1].replace(/\\+(`|$)/g,function(a){return a.slice(-Math.ceil(a.length/2))});this.token("JS",c,0,a[0].length);return a[0].length};g.prototype.regexToken=function(){var a,c,f,g,h,k,m,t;switch(!1){case !(c=
z.exec(this.chunk)):this.error("regular expressions cannot begin with "+c[2],{offset:c.index+c[1].length});break;case !(c=this.matchWithInterpolations(v,"///")):t=c.tokens;h=c.index;break;case !(c=aa.exec(this.chunk)):m=c[0];a=c[1];c=c[2];this.validateEscapes(a,{isRegex:!0,offsetInChunk:1});h=m.length;k=this.tokens;if(k=k[k.length-1])if(k.spaced&&(f=k[0],0<=da.call(xa,f))){if(!c||I.test(m))return 0}else if(g=k[0],0<=da.call(H,g))return 0;c||this.error("missing / (unclosed regex)");break;default:return 0}g=
S.exec(this.chunk.slice(h))[0];f=h+g.length;c=this.makeToken("REGEX",null,0,f);switch(!1){case !!ka.test(g):this.error("invalid regular expression flags "+g,{offset:h,length:g.length});break;case !(m||1===t.length):null==a&&(a=this.formatHeregex(t[0][1]));this.token("REGEX",""+this.makeDelimitedLiteral(a,{delimiter:"/"})+g,0,f,c);break;default:this.token("REGEX_START","(",0,0,c),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(t,{delimiter:'"',double:!0},
this.formatHeregex),g&&(this.token(",",",",h-1,0),this.token("STRING",'"'+g+'"',h-1,g.length)),this.token(")",")",f-1,0),this.token("REGEX_END",")",f-1,0)}return f};g.prototype.lineToken=function(){var a,c,f;if(!(c=A.exec(this.chunk)))return 0;c=c[0];this.seenFor=!1;f=c.length-1-c.lastIndexOf("\n");a=this.unfinished();if(f-this.indebt===this.indent)return a?this.suppressNewlines():this.newlineToken(0),c.length;if(f>this.indent){if(a)return this.indebt=f-this.indent,this.suppressNewlines(),c.length;
if(!this.tokens.length)return this.baseIndent=this.indent=f,c.length;a=f-this.indent+this.outdebt;this.token("INDENT",a,c.length-f,f);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=f}else f<this.baseIndent?this.error("missing indentation",{offset:c.length}):(this.indebt=0,this.outdentToken(this.indent-f,a,c.length));return c.length};g.prototype.outdentToken=function(a,c,f){var g,h,k,m;for(g=this.indent-a;0<a;)(k=this.indents[this.indents.length-1])?k===
this.outdebt?(a-=this.outdebt,this.outdebt=0):k<this.outdebt?(this.outdebt-=k,a-=k):(h=this.indents.pop()+this.outdebt,f&&(m=this.chunk[f],0<=da.call(r,m))&&(g-=h-a,a=h),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",a,0,f),a-=h):a=0;h&&(this.outdebt-=a);for(;";"===this.value();)this.tokens.pop();"TERMINATOR"===this.tag()||c||this.token("TERMINATOR","\n",f,0);this.indent=g;return this};g.prototype.whitespaceToken=function(){var a,c;if(!(a=ca.exec(this.chunk))&&"\n"!==this.chunk.charAt(0))return 0;
c=this.tokens;(c=c[c.length-1])&&(c[a?"spaced":"newLine"]=!0);return a?a[0].length:0};g.prototype.newlineToken=function(a){for(;";"===this.value();)this.tokens.pop();"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",a,0);return this};g.prototype.suppressNewlines=function(){"\\"===this.value()&&this.tokens.pop();return this};g.prototype.literalToken=function(){var a,c,f,g,h,k,t,p;(a=T.exec(this.chunk))?(a=a[0],q.test(a)&&this.tagParameters()):a=this.chunk.charAt(0);p=a;g=this.tokens;if((g=g[g.length-
1])&&0<=da.call(["\x3d"].concat(ma.call(l)),a)&&(t=!1,"\x3d"!==a||"||"!==(f=g[1])&&"\x26\x26"!==f||g.spaced||(g[0]="COMPOUND_ASSIGN",g[1]+="\x3d",g=this.tokens[this.tokens.length-2],t=!0),g&&"PROPERTY"!==g[0]&&(f=null!=(c=g.origin)?c:g,(c=la(g[1],f[1]))&&this.error(c,f[2])),t))return a.length;"{"===a&&"EXPORT"===(null!=g?g[0]:void 0)?this.exportSpecifierList=!0:this.exportSpecifierList&&"}"===a&&(this.exportSpecifierList=!1);if(";"===a)this.seenFor=this.seenImport=this.seenExport=!1,p="TERMINATOR";
else if("*"===a&&"EXPORT"===g[0])p="EXPORT_ALL";else if(0<=da.call(P,a))p="MATH";else if(0<=da.call(D,a))p="COMPARE";else if(0<=da.call(l,a))p="COMPOUND_ASSIGN";else if(0<=da.call(ya,a))p="UNARY";else if(0<=da.call(Xa,a))p="UNARY_MATH";else if(0<=da.call(Q,a))p="SHIFT";else if("?"===a&&null!=g&&g.spaced)p="BIN?";else if(g&&!g.spaced)if("("===a&&(h=g[0],0<=da.call(xa,h)))"?"===g[0]&&(g[0]="FUNC_EXIST"),p="CALL_START";else if("["===a&&(k=g[0],0<=da.call(E,k)))switch(p="INDEX_START",g[0]){case "?":g[0]=
"INDEX_SOAK"}h=this.makeToken(p,a);switch(a){case "(":case "{":case "[":this.ends.push({tag:m[a],origin:h});break;case ")":case "}":case "]":this.pair(a)}this.tokens.push(h);return a.length};g.prototype.tagParameters=function(){var a,c,f,g;if(")"!==this.tag())return this;c=[];g=this.tokens;a=g.length;for(g[--a][0]="PARAM_END";f=g[--a];)switch(f[0]){case ")":c.push(f);break;case "(":case "CALL_START":if(c.length)c.pop();else return"("===f[0]&&(f[0]="PARAM_START"),this}return this};g.prototype.closeIndentation=
function(){return this.outdentToken(this.indent)};g.prototype.matchWithInterpolations=function(a,c){var f,h,k,m,t,p,l,r;r=[];t=c.length;if(this.chunk.slice(0,t)!==c)return null;for(l=this.chunk.slice(t);;){m=a.exec(l)[0];this.validateEscapes(m,{isRegex:"/"===c.charAt(0),offsetInChunk:t});r.push(this.makeToken("NEOSTRING",m,t));l=l.slice(m.length);t+=m.length;if("#{"!==l.slice(0,2))break;f=this.getLineAndColumnFromChunk(t+1);m=f[0];f=f[1];f=(new g).tokenize(l.slice(1),{line:m,column:f,untilBalanced:!0});
m=f.tokens;h=f.index;h+=1;p=m[0];f=m[m.length-1];p[0]=p[1]="(";f[0]=f[1]=")";f.origin=["","end of interpolation",f[2]];"TERMINATOR"===(null!=(k=m[1])?k[0]:void 0)&&m.splice(1,1);r.push(["TOKENS",m]);l=l.slice(h);t+=h}l.slice(0,c.length)!==c&&this.error("missing "+c,{length:c.length});a=r[0];k=r[r.length-1];a[2].first_column-=c.length;"\n"===k[1].substr(-1)?(k[2].last_line+=1,k[2].last_column=c.length-1):k[2].last_column+=c.length;0===k[1].length&&--k[2].last_column;return{tokens:r,index:t+c.length}};
g.prototype.mergeInterpolationTokens=function(a,c,f){var g,h,k,m,t,p,l,r,y,q,A,ia;1<a.length&&(r=this.token("STRING_START","(",0,0));k=this.tokens.length;m=t=0;for(p=a.length;t<p;m=++t){q=a[m];g=q[0];ia=q[1];switch(g){case "TOKENS":if(2===ia.length)continue;l=ia[0];A=ia;break;case "NEOSTRING":g=f(q[1],m);if(0===g.length)if(0===m)h=this.tokens.length;else continue;2===m&&null!=h&&this.tokens.splice(h,2);q[0]="STRING";q[1]=this.makeDelimitedLiteral(g,c);l=q;A=[q]}this.tokens.length>k&&(m=this.token("+",
"+"),m[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column});(y=this.tokens).push.apply(y,A)}if(r)return a=a[a.length-1],r.origin=["STRING",null,{first_line:r[2].first_line,first_column:r[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],r=this.token("STRING_END",")"),r[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}};g.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()};g.prototype.getLineAndColumnFromChunk=function(a){var c,f;if(0===a)return[this.chunkLine,this.chunkColumn];f=a>=this.chunk.length?this.chunk:this.chunk.slice(0,+(a-1)+1||9E9);a=ea(f,"\n");c=this.chunkColumn;0<a?(c=f.split("\n"),c=c[c.length-1],c=c.length):c+=f.length;return[this.chunkLine+a,c]};g.prototype.makeToken=
function(a,c,f,g){var h,k;null==f&&(f=0);null==g&&(g=c.length);h={};k=this.getLineAndColumnFromChunk(f);h.first_line=k[0];h.first_column=k[1];f=this.getLineAndColumnFromChunk(f+(0<g?g-1:0));h.last_line=f[0];h.last_column=f[1];return[a,c,h]};g.prototype.token=function(a,c,f,g,h){a=this.makeToken(a,c,f,g);h&&(a.origin=h);this.tokens.push(a);return a};g.prototype.tag=function(){var a;a=this.tokens;a=a[a.length-1];return null!=a?a[0]:void 0};g.prototype.value=function(){var a;a=this.tokens;a=a[a.length-
1];return null!=a?a[1]:void 0};g.prototype.unfinished=function(){var a;return y.test(this.chunk)||"\\"===(a=this.tag())||"."===a||"?."===a||"?::"===a||"UNARY"===a||"MATH"===a||"UNARY_MATH"===a||"+"===a||"-"===a||"**"===a||"SHIFT"===a||"RELATION"===a||"COMPARE"===a||"\x26"===a||"^"===a||"|"===a||"\x26\x26"===a||"||"===a||"BIN?"===a||"THROW"===a||"EXTENDS"===a};g.prototype.formatString=function(a){return a.replace(Z,"$1")};g.prototype.formatHeregex=function(a){return a.replace(M,"$1$2")};g.prototype.validateEscapes=
function(a,c){var f,g,h,k,m;null==c&&(c={});if(g=O.exec(a))if(g[0],a=g[1],h=g[2],f=g[3],m=g[4],!c.isRegex||!h||"0"===h.charAt(0))return f="\\"+(h||f||m),this.error((h?"octal escape sequences are not allowed":"invalid escape sequence")+" "+f,{offset:(null!=(k=c.offsetInChunk)?k:0)+g.index+a.length,length:f.length})};g.prototype.makeDelimitedLiteral=function(a,c){null==c&&(c={});""===a&&"/"===c.delimiter&&(a="(?:)");a=a.replace(RegExp("(\\\\\\\\)|(\\\\0(?\x3d[1-7]))|\\\\?("+c.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)",
"g"),function(a,f,g,h,k,m,t,p,l){switch(!1){case !f:return c.double?f+f:f;case !g:return"\\x00";case !h:return"\\"+h;case !k:return"\\n";case !m:return"\\r";case !t:return"\\u2028";case !p:return"\\u2029";case !l:return c.double?"\\"+l:l}});return""+c.delimiter+a+c.delimiter};g.prototype.error=function(a,c){var f,g,h,k,m;null==c&&(c={});c="first_line"in c?c:(k=this.getLineAndColumnFromChunk(null!=(h=c.offset)?h:0),g=k[0],f=k[1],k,{first_line:g,first_column:f,last_column:f+(null!=(m=c.length)?m:1)-
1});return ra(a,c)};return g}();la=function(a,c){null==c&&(c=a);switch(!1){case 0>da.call(ma.call(t).concat(ma.call(Ca)),a):return"keyword '"+c+"' can't be assigned";case 0>da.call(Y,a):return"'"+c+"' can't be assigned";case 0>da.call(W,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};g.isUnassignable=la;ha=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};t="true false null this new delete typeof in instanceof return throw break continue debugger yield if else switch for while do try catch finally class extends super import export default".split(" ");
Ca="undefined Infinity NaN then unless until loop of by when".split(" ");c={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 c)a.push(oa);return a}();Ca=Ca.concat(a);W="case function var void with const let enum native implements interface package private protected public static".split(" ");Y=["arguments","eval"];g.JS_FORBIDDEN=t.concat(W).concat(Y);ua=65279;J=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/;
U=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;T=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;ca=/^[^\n\S]+/;f=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;q=/^[-=]>/;A=/^(?:\n[^\n\S]*)+/;k=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;N=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;ba=/^(?:'''|"""|'|")/;K=/^(?:[^\\']|\\[\s\S])*/;V=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;x=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;G=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;Z=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g;
X=/\s*\n\s*/g;F=/\n+([^\n\S]*)(?=\S)/g;aa=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;S=/^\w*/;ka=/^(?!.*(.).*\1)[imgy]*$/;v=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/;M=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;z=/^(\/|\/{3}\s*)(\*)/;I=/^\/=?\s/;w=/\*\//;y=/^\s*(?:,|\??\.(?![.\d])|::)/;O=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;p=/^[^\n\S]*\n/;R=/\n[^\n\S]*$/;qa=/\s+$/;l="-\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(" ");
ya=["NEW","TYPEOF","DELETE","DO"];Xa=["!","~"];Q=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];D="\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");P=["*","/","%","//","%%"];B=["IN","OF","INSTANCEOF"];xa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");E=xa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));H=E.concat(["++","--"]);h=["INDENT","OUTDENT","TERMINATOR"];r=[")","}","]"]}).call(this);return g}();u["./parser"]=function(){var g={},ua={exports:g},
xa=function(){function g(){this.yy={}}var a=function(a,n,pa,b){pa=pa||{};for(b=a.length;b--;pa[a[b]]=n);return pa},c=[1,22],u=[1,25],f=[1,83],D=[1,79],l=[1,84],w=[1,85],G=[1,81],F=[1,82],x=[1,56],v=[1,58],M=[1,59],N=[1,60],J=[1,61],r=[1,62],E=[1,49],O=[1,50],m=[1,32],k=[1,68],t=[1,69],p=[1,78],h=[1,47],y=[1,51],P=[1,52],A=[1,67],H=[1,65],U=[1,66],T=[1,64],I=[1,42],aa=[1,48],S=[1,63],z=[1,73],B=[1,74],W=[1,75],C=[1,76],Q=[1,46],X=[1,72],Y=[1,34],V=[1,35],Z=[1,36],K=[1,37],ba=[1,38],R=[1,39],xa=[1,
86],ua=[1,6,32,42,131],qa=[1,101],ka=[1,89],ca=[1,88],ea=[1,87],ga=[1,90],ha=[1,91],la=[1,92],oa=[1,93],L=[1,94],ja=[1,95],ra=[1,96],da=[1,97],ma=[1,98],sa=[1,99],ia=[1,100],ya=[1,104],ta=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ja=[2,165],Ta=[1,110],Ga=[1,111],Ua=[1,112],Fa=[1,113],Pa=[1,115],Qa=[1,116],Na=[1,109],za=[1,6,32,42,131,133,135,139,156],na=[2,27],fa=[1,123],Ha=[1,121],Aa=[1,6,31,32,40,41,42,65,70,73,
82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ia=[2,94],b=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],n=[2,73],pa=[1,128],e=[1,133],d=[1,134],va=[1,136],Ka=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,
173,174],wa=[2,91],Gb=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ab=[2,63],Hb=[1,166],bb=[1,178],Wa=[1,180],Ib=[1,175],Oa=[1,182],ub=[1,184],La=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],Jb=[2,110],Kb=[1,6,31,32,40,41,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,
135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Lb=[1,6,31,32,40,41,42,46,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Mb=[40,41,114],Nb=[1,241],vb=[1,240],Ma=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156],Ea=[2,71],Ob=[1,250],Va=[6,31,32,65,70],hb=[6,31,32,55,65,70,73],cb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,166,
167,168,169,170,171,172,173,174],Pb=[40,41,82,83,84,85,87,90,113,114],ib=[1,269],db=[2,62],jb=[1,279],Ya=[1,281],wb=[1,286],eb=[1,288],Qb=[2,186],xb=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],kb=[1,297],Ra=[6,31,32,70,115,120],Rb=[1,6,31,32,40,41,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,
164,165,166,167,168,169,170,171,172,173,174,175],Sb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,156],Za=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,156],lb=[146,147,148],mb=[70,146,147,148],nb=[6,31,94],Tb=[1,311],Ba=[6,31,32,70,94],Ub=[6,31,32,58,70,94],yb=[6,31,32,55,58,70,94],Vb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,166,167,168,169,170,171,172,173,174],Wb=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,105,112,117,118,119,
125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb=[2,175],Sa=[6,31,32],fb=[2,72],Yb=[1,323],Zb=[1,324],$b=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,151,153,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ob=[32,151,153],ac=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,156],pb=[1,350],zb=[1,356],Ab=[1,6,32,42,131,156],gb=[2,86],qb=[1,366],rb=[1,367],bc=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,151,156,159,160,163,
164,165,166,167,168,169,170,171,172,173,174],Bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,156],cc=[1,380],dc=[1,381],Cb=[6,31,32,94],ec=[6,31,32,70],Db=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],fc=[31,70],sb=[1,407],tb=[1,408],Eb=[1,414],Fb=[1,415],gc={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12,
Import:13,Export:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"\x3d":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59,
ThisProperty:60,RETURN:61,HERECOMMENT:62,PARAM_START:63,ParamList:64,PARAM_END:65,FuncGlyph:66,"-\x3e":67,"\x3d\x3e":68,OptComma:69,",":70,Param:71,ParamVar:72,"...":73,Array:74,Object:75,Splat:76,SimpleAssignable:77,Accessor:78,Parenthetical:79,Range:80,This:81,".":82,"?.":83,"::":84,"?::":85,Index:86,INDEX_START:87,IndexValue:88,INDEX_END:89,INDEX_SOAK:90,Slice:91,"{":92,AssignList:93,"}":94,CLASS:95,EXTENDS:96,IMPORT:97,ImportDefaultSpecifier:98,ImportNamespaceSpecifier:99,ImportSpecifierList:100,
ImportSpecifier:101,AS:102,DEFAULT:103,IMPORT_ALL:104,EXPORT:105,ExportSpecifierList:106,EXPORT_ALL:107,ExportSpecifier:108,OptFuncExist:109,Arguments:110,Super:111,SUPER:112,FUNC_EXIST:113,CALL_START:114,CALL_END:115,ArgList:116,THIS:117,"@":118,"[":119,"]":120,RangeDots:121,"..":122,Arg:123,SimpleArgs:124,TRY:125,Catch:126,FINALLY:127,CATCH:128,THROW:129,"(":130,")":131,WhileSource:132,WHILE:133,WHEN:134,UNTIL:135,Loop:136,LOOP:137,ForBody:138,FOR:139,BY:140,ForStart:141,ForSource:142,ForVariables:143,
@@ -91,7 +91,7 @@ OWN:144,ForValue:145,FORIN:146,FOROF:147,FORFROM:148,SWITCH:149,Whens:150,ELSE:1
productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[10,2],[10,1],[9,3],[9,2],[11,1],[17,5],[17,2],[66,1],[66,1],[69,0],[69,1],[64,0],[64,
1],[64,3],[64,4],[64,6],[71,1],[71,2],[71,3],[71,1],[72,1],[72,1],[72,1],[72,1],[76,2],[77,1],[77,2],[77,2],[77,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[78,2],[78,2],[78,2],[78,2],[78,1],[78,1],[86,3],[86,2],[88,1],[88,1],[75,4],[93,0],[93,1],[93,3],[93,4],[93,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[13,2],[13,4],[13,4],[13,5],[13,7],[13,6],[13,9],[100,1],[100,3],[100,4],[100,4],[100,6],[101,1],[101,3],[101,1],[101,3],[98,1],[99,3],[14,3],[14,5],[14,2],[14,4],
[14,5],[14,6],[14,3],[14,4],[14,7],[106,1],[106,3],[106,4],[106,4],[106,6],[108,1],[108,3],[108,3],[108,1],[16,3],[16,3],[16,3],[16,1],[111,1],[111,2],[109,0],[109,1],[110,2],[110,4],[81,1],[81,1],[60,2],[74,2],[74,4],[121,1],[121,1],[80,5],[91,3],[91,2],[91,2],[91,1],[116,1],[116,3],[116,4],[116,4],[116,6],[123,1],[123,1],[123,1],[124,1],[124,3],[21,2],[21,3],[21,4],[21,5],[126,3],[126,3],[126,2],[26,2],[79,3],[79,5],[132,2],[132,4],[132,2],[132,4],[22,2],[22,2],[22,2],[22,1],[136,2],[136,2],[23,
2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[142,2],[142,4],[24,5],[24,7],[24,4],[24,6],[150,1],[150,2],[152,3],[152,4],[154,3],[154,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(a,q,pa,b,c,e,d){a=
2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[142,2],[142,4],[24,5],[24,7],[24,4],[24,6],[150,1],[150,2],[152,3],[152,4],[154,3],[154,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(a,n,pa,b,c,e,d){a=
e.length-1;switch(c){case 1:return this.$=b.addLocationDataFn(d[a],d[a])(new b.Block);case 2:return this.$=e[a];case 3:this.$=b.addLocationDataFn(d[a],d[a])(b.Block.wrap([e[a]]));break;case 4:this.$=b.addLocationDataFn(d[a-2],d[a])(e[a-2].push(e[a]));break;case 5:this.$=e[a-1];break;case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 71:case 72:case 82:case 83:case 84:case 85:case 90:case 91:case 94:case 98:case 104:case 162:case 186:case 187:case 189:case 219:case 220:case 238:case 244:this.$=
e[a];break;case 11:this.$=b.addLocationDataFn(d[a],d[a])(new b.StatementLiteral(e[a]));break;case 27:this.$=b.addLocationDataFn(d[a],d[a])(new b.Op(e[a],new b.Value(new b.Literal(""))));break;case 28:case 248:case 249:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op(e[a-1],e[a]));break;case 29:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op(e[a-2].concat(e[a-1]),e[a]));break;case 30:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Block);break;case 31:case 105:this.$=b.addLocationDataFn(d[a-2],d[a])(e[a-
1]);break;case 32:this.$=b.addLocationDataFn(d[a],d[a])(new b.IdentifierLiteral(e[a]));break;case 33:this.$=b.addLocationDataFn(d[a],d[a])(new b.PropertyName(e[a]));break;case 34:this.$=b.addLocationDataFn(d[a],d[a])(new b.NumberLiteral(e[a]));break;case 36:this.$=b.addLocationDataFn(d[a],d[a])(new b.StringLiteral(e[a]));break;case 37:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.StringWithInterpolations(e[a-1]));break;case 38:this.$=b.addLocationDataFn(d[a],d[a])(new b.RegexLiteral(e[a]));break;
@@ -125,272 +125,275 @@ break;case 232:this.$=b.addLocationDataFn(d[a-1],d[a])({source:e[a],from:!0});br
2],d[a])(e[a-2].addElse(e[a]));break;case 246:case 247:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.If(e[a],b.addLocationDataFn(d[a-2])(b.Block.wrap([e[a-2]])),{type:e[a-1],statement:!0}));break;case 250:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("-",e[a]));break;case 251:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("+",e[a]));break;case 252:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("--",e[a]));break;case 253:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("++",e[a]));break;case 254:this.$=
b.addLocationDataFn(d[a-1],d[a])(new b.Op("--",e[a-1],null,!0));break;case 255:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("++",e[a-1],null,!0));break;case 256:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Existence(e[a-1]));break;case 257:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op("+",e[a-2],e[a]));break;case 258:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op("-",e[a-2],e[a]));break;case 259:case 260:case 261:case 262:case 263:case 264:case 265:case 266:case 267:case 268:this.$=b.addLocationDataFn(d[a-
2],d[a])(new b.Op(e[a-1],e[a-2],e[a]));break;case 269:d=b.addLocationDataFn(d[a-2],d[a]);e="!"===e[a-1].charAt(0)?(new b.Op(e[a-1].slice(1),e[a-2],e[a])).invert():new b.Op(e[a-1],e[a-2],e[a]);this.$=d(e);break;case 270:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Assign(e[a-2],e[a],e[a-1]));break;case 271:this.$=b.addLocationDataFn(d[a-4],d[a])(new b.Assign(e[a-4],e[a-1],e[a-3]));break;case 272:this.$=b.addLocationDataFn(d[a-3],d[a])(new b.Assign(e[a-3],e[a],e[a-2]));break;case 273:this.$=b.addLocationDataFn(d[a-
2],d[a])(new b.Extends(e[a-2],e[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,
158:W,159:aa,160:J,161:ca,162:R},{1:[3]},{1:[2,2],6:xa},a(va,[2,3]),a(va,[2,6],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(va,[2,7],{141:77,132:105,138:106,133:B,135:A,139:C,156:ya}),a(va,[2,8]),a(ta,[2,14],{109:107,78:108,86:114,40:Ia,41:Ia,114:Ia,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La}),a(ta,[2,15],{86:114,109:117,78:118,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La,114:Ia}),a(ta,[2,16]),a(ta,
2],d[a])(new b.Extends(e[a-2],e[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:u,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,
158:V,159:Z,160:K,161:ba,162:R},{1:[3]},{1:[2,2],6:xa},a(ua,[2,3]),a(ua,[2,6],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(ua,[2,7],{141:77,132:105,138:106,133:z,135:B,139:C,156:ya}),a(ua,[2,8]),a(ta,[2,14],{109:107,78:108,86:114,40:Ja,41:Ja,114:Ja,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na}),a(ta,[2,15],{86:114,109:117,78:118,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na,114:Ja}),a(ta,[2,16]),a(ta,
[2,17]),a(ta,[2,18]),a(ta,[2,19]),a(ta,[2,20]),a(ta,[2,21]),a(ta,[2,22]),a(ta,[2,23]),a(ta,[2,24]),a(ta,[2,25]),a(ta,[2,26]),a(za,[2,9]),a(za,[2,10]),a(za,[2,11]),a(za,[2,12]),a(za,[2,13]),a([1,6,32,42,131,133,135,139,156,163,164,165,166,167,168,169,170,171,172,173,174],na,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,
8:122,12:c,28:ga,29:Ha,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:[1,119],62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Aa,Xa,{55:[1,124]}),a(Aa,[2,95]),a(Aa,[2,96]),a(Aa,[2,97]),a(Aa,[2,98]),a(b,[2,162]),a([6,31,65,70],q,{64:125,71:126,72:127,33:129,60:130,74:131,75:132,34:f,73:pa,92:I,118:e,119:d}),{30:135,31:wa},{7:137,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,
20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:138,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,
25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:139,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,
34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:140,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,
43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{15:142,16:143,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:141,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U,
130:S},{15:142,16:143,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:145,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U,130:S},a(Ma,ua,{96:[1,149],161:[1,146],162:[1,147],175:[1,148]}),a(ta,[2,244],{151:[1,150]}),{30:151,31:wa},{30:152,31:wa},a(ta,[2,208]),{30:153,31:wa},{7:154,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,155],33:70,34:f,37:55,
38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Gb,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:142,16:143,54:144,30:156,77:158,31:wa,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,
50:E,51:N,52:l,53:h,92:I,96:[1,157],112:n,117:r,118:V,119:U,130:S}),{7:159,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,
157:Z,158:W,159:aa,160:J,161:ca,162:R},a(za,ab,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:160,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),
a([1,6,31,32,42,70,94,131,133,135,139,156],[2,66]),{33:165,34:f,39:161,40:m,41:H,92:[1,164],98:162,99:163,104:Hb},{25:168,33:169,34:f,92:[1,167],95:k,103:[1,170],107:[1,171]},a(Ma,[2,92]),a(Ma,[2,93]),a(Aa,[2,40]),a(Aa,[2,41]),a(Aa,[2,42]),a(Aa,[2,43]),a(Aa,[2,44]),a(Aa,[2,45]),a(Aa,[2,46]),a(Aa,[2,47]),{4:172,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,31:[1,173],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,
47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:174,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,
52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:176,117:r,118:V,119:U,120:Ib,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Aa,[2,169]),a(Aa,[2,170],{35:181,36:Na}),a([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],
[2,163],{110:183,114:ub}),{31:[2,69]},{31:[2,70]},a(Ja,[2,87]),a(Ja,[2,90]),{7:185,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,
155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:186,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,
161:ca,162:R},{7:187,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:189,8:122,10:20,
11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,30:188,31:wa,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{33:194,34:f,60:195,74:196,75:197,
80:190,92:I,118:e,119:U,143:191,144:[1,192],145:193},{142:198,146:[1,199],147:[1,200],148:[1,201]},a([6,31,70,94],Jb,{39:80,93:202,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),a(Kb,[2,34]),a(Kb,[2,35]),a(Aa,[2,38]),{15:142,16:211,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:212,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U,130:S},a([1,6,29,31,32,40,41,42,55,58,65,70,73,
82,83,84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[2,32]),a(Lb,[2,36]),{4:213,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,
111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(va,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:214,12:c,28:t,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,
68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:B,135:A,137:X,139:C,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(ta,[2,256]),{7:215,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,
125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:216,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,
135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:217,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,
141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:218,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,
158:W,159:aa,160:J,161:ca,162:R},{7:219,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},
{7:220,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:221,8:122,10:20,11:21,12:c,
13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:222,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,
19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:223,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,
24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:224,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,
33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:225,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,
40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:226,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,
48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:227,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,
54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:228,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,
67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,207]),a(ta,[2,212]),{7:229,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,
67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,206]),a(ta,[2,211]),{39:230,40:m,41:H,110:231,114:ub},a(Ja,[2,88]),a(Mb,[2,166]),{35:232,36:Na},{35:233,36:Na},a(Ja,[2,103],{35:234,36:Na}),{35:235,36:Na},a(Ja,[2,104]),{7:237,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,
25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Nb,74:53,75:54,77:40,79:28,80:29,81:30,88:236,91:238,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,121:239,122:vb,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{86:242,87:Oa,90:Pa},{110:243,114:ub},a(Ja,[2,89]),a(va,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,
21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:244,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:ab,135:ab,139:ab,156:ab,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Ka,[2,28],{141:77,132:102,138:103,159:ka,160:da,163:fa,
164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:245,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,
155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{132:105,133:B,135:A,138:106,139:C,141:77,156:ya},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,163,164,165,166,167,168,169,170,171,172,173,174],na,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,8:122,12:c,28:ga,29:Ha,34:f,38:p,40:m,41:H,44:F,45:x,
48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),{6:[1,247],7:246,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,248],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,
105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([6,31],Ea,{69:251,65:[1,249],70:Ob}),a(Ua,[2,74]),a(Ua,[2,78],{55:[1,253],73:[1,252]}),a(Ua,[2,81]),a(hb,[2,82]),a(hb,[2,83]),a(hb,[2,84]),a(hb,[2,85]),{35:181,36:Na},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,
43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:176,117:r,118:V,119:U,120:Ib,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,68]),{4:256,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,32:[1,255],
33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,165,166,167,168,169,170,171,172,173,174],[2,248],{141:77,132:102,138:103,
163:fa}),a(cb,[2,249],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,250],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,251],{141:77,132:102,138:103,163:fa,165:ia}),a(ta,[2,252],{40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua}),a(Mb,Ia,{109:107,78:108,86:114,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La}),{78:118,82:Sa,83:Ga,84:Ta,85:Fa,86:114,87:Oa,90:Pa,109:117,113:La,114:Ia},a(Pb,Xa),a(ta,[2,253],{40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua}),a(ta,[2,254]),a(ta,
[2,255]),{6:[1,259],7:257,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,258],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},
{7:260,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{30:261,31:wa,155:[1,262]},a(ta,
[2,191],{126:263,127:[1,264],128:[1,265]}),a(ta,[2,205]),a(ta,[2,213]),{31:[1,266],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{150:267,152:268,153:ib},a(ta,[2,116]),{7:270,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,
63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Gb,[2,119],{30:271,31:wa,40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua,96:[1,272]}),a(Ka,[2,198],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,db,{141:77,132:102,138:103,
159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2,123]),{29:[1,273],70:[1,274]},{29:[1,275]},{31:jb,33:280,34:f,94:[1,276],100:277,101:278,103:Ya},a([29,70],[2,139]),{102:[1,282]},{31:wb,33:287,34:f,94:[1,283],103:eb,106:284,108:285},a(za,[2,143]),{55:[1,289]},{7:290,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,
49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{29:[1,291]},{6:xa,131:[1,292]},{4:293,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,
47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([6,31,70,120],Qb,{141:77,132:102,138:103,121:294,73:[1,295],122:vb,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(xb,[2,172]),
a([6,31,120],Ea,{69:296,70:kb}),a(Qa,[2,181]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:298,117:r,118:V,119:U,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,
154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,[2,187]),a(Qa,[2,188]),a(Rb,[2,171]),a(Rb,[2,33]),a(b,[2,164]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,115:[1,299],116:300,117:r,118:V,119:U,
123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{30:301,31:wa,132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Sb,[2,201],{141:77,132:102,138:103,133:B,134:[1,302],135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Sb,[2,203],{141:77,132:102,138:103,133:B,
134:[1,303],135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,209]),a(Za,[2,210],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],[2,214],{140:[1,304]}),a(lb,[2,217]),{33:194,34:f,60:195,74:196,75:197,92:I,118:e,119:d,
143:305,145:193},a(lb,[2,223],{70:[1,306]}),a(mb,[2,219]),a(mb,[2,220]),a(mb,[2,221]),a(mb,[2,222]),a(ta,[2,216]),{7:307,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,
137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:308,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,
154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:309,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,
160:J,161:ca,162:R},a(nb,Ea,{69:310,70:Tb}),a(Ba,[2,111]),a(Ba,[2,51],{58:[1,312]}),a(Ub,[2,60],{55:[1,313]}),a(Ba,[2,56]),a(Ub,[2,61]),a(yb,[2,57]),a(yb,[2,58]),a(yb,[2,59]),{46:[1,314],78:118,82:Sa,83:Ga,84:Ta,85:Fa,86:114,87:Oa,90:Pa,109:117,113:La,114:Ia},a(Pb,ua),{6:xa,42:[1,315]},a(va,[2,4]),a(Vb,[2,257],{141:77,132:102,138:103,163:fa,164:ha,165:ia}),a(Vb,[2,258],{141:77,132:102,138:103,163:fa,164:ha,165:ia}),a(cb,[2,259],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,260],{141:77,132:102,
138:103,163:fa,165:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,166,167,168,169,170,171,172,173,174],[2,261],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173],[2,262],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,168,169,170,171,172,173],[2,263],{141:77,132:102,
138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,169,170,171,172,173],[2,264],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,170,171,172,173],[2,265],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,
139,140,156,171,172,173],[2,266],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,172,173],[2,267],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,173],[2,268],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,
171:ea,172:ma,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173,174],[2,269],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la}),a(Za,[2,247],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2,246],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),
a(b,[2,159]),a(b,[2,160]),a(Ja,[2,99]),a(Ja,[2,100]),a(Ja,[2,101]),a(Ja,[2,102]),{89:[1,316]},{73:Nb,89:[2,107],121:317,122:vb,132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{89:[2,108]},{7:318,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,
60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,180],92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Wb,[2,174]),a(Wb,Xb),a(Ja,[2,106]),a(b,[2,161]),a(va,[2,64],{141:77,132:102,138:103,133:db,135:db,139:db,156:db,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,29],{141:77,132:102,
138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,48],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:319,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,
75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:320,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,
92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{66:321,67:L,68:z},a(Ra,fb,{72:127,33:129,60:130,74:131,75:132,71:322,34:f,73:pa,92:I,118:e,119:d}),{6:Yb,31:Zb},a(Ua,[2,79]),{7:325,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,
51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,Qb,{141:77,132:102,138:103,73:[1,326],133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a($b,[2,30]),{6:xa,32:[1,327]},a(Ka,[2,270],{141:77,132:102,
138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:328,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,
138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:329,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,
155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ka,[2,273],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,245]),{7:330,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,
105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,192],{127:[1,331]}),{30:332,31:wa},{30:335,31:wa,33:333,34:f,75:334,92:I},{150:336,152:268,153:ib},{32:[1,337],151:[1,338],152:339,153:ib},a(ob,[2,238]),{7:341,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,
47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,124:340,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ac,[2,117],{141:77,132:102,138:103,30:342,31:wa,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,120]),{7:343,8:122,10:20,
11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{39:344,40:m,41:H},{92:[1,346],99:345,104:Hb},{39:347,
40:m,41:H},{29:[1,348]},a(nb,Ea,{69:349,70:pb}),a(Ba,[2,130]),{31:jb,33:280,34:f,100:351,101:278,103:Ya},a(Ba,[2,135],{102:[1,352]}),a(Ba,[2,137],{102:[1,353]}),{33:354,34:f},a(za,[2,141]),a(nb,Ea,{69:355,70:zb}),a(Ba,[2,150]),{31:wb,33:287,34:f,103:eb,106:357,108:285},a(Ba,[2,155],{102:[1,358]}),a(Ba,[2,158]),{6:[1,360],7:359,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,361],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,
45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ab,[2,147],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{39:362,40:m,41:H},a(Aa,[2,199]),{6:xa,32:[1,363]},
{7:364,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([12,28,34,38,40,41,44,45,48,
49,50,51,52,53,61,62,63,67,68,92,95,97,105,112,117,118,119,125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb,{6:gb,31:gb,70:gb,120:gb}),{6:qb,31:rb,120:[1,365]},a([6,31,32,115,120],fb,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,76:179,7:254,123:368,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,
50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,73:Va,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:B,135:A,137:X,139:C,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Ra,Ea,{69:369,70:kb}),a(b,[2,167]),a([6,31,115],Ea,{69:370,70:kb}),a(bc,[2,242]),{7:371,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,
62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:372,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,
75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:373,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,
92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(lb,[2,218]),{33:194,34:f,60:195,74:196,75:197,92:I,118:e,119:d,145:374},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,156],[2,225],{141:77,132:102,138:103,134:[1,375],140:[1,376],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Bb,[2,226],{141:77,132:102,
138:103,134:[1,377],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Bb,[2,232],{141:77,132:102,138:103,134:[1,378],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{6:cc,31:dc,94:[1,379]},a(Cb,fb,{39:80,57:204,59:205,11:206,37:207,33:208,35:209,60:210,56:382,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),{7:383,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,
26:18,27:19,28:ga,31:[1,384],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:385,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,
31:[1,386],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Aa,[2,39]),a(Lb,[2,37]),a(Ja,[2,105]),{7:387,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,
26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,178],92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{89:[2,179],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,
170:ra,171:ea,172:ma,173:sa,174:T},a(Ka,[2,49],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{32:[1,388],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{30:389,31:wa},a(Ua,[2,75]),{33:129,34:f,60:130,71:390,72:127,73:pa,74:131,75:132,92:I,118:e,119:d},a(ec,q,{71:126,72:127,33:129,60:130,74:131,75:132,64:391,34:f,73:pa,92:I,118:e,
119:d}),a(Ua,[2,80],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Qa,gb),a($b,[2,31]),{32:[1,392],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Ka,[2,272],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{30:393,31:wa,132:102,
133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{30:394,31:wa},a(ta,[2,193]),{30:395,31:wa},{30:396,31:wa},a(Db,[2,197]),{32:[1,397],151:[1,398],152:339,153:ib},a(ta,[2,236]),{30:399,31:wa},a(ob,[2,239]),{30:400,31:wa,70:[1,401]},a(fc,[2,189],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,118]),a(ac,[2,
121],{141:77,132:102,138:103,30:402,31:wa,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2,124]),{29:[1,403]},{31:jb,33:280,34:f,100:404,101:278,103:Ya},a(za,[2,125]),{39:405,40:m,41:H},{6:sb,31:tb,94:[1,406]},a(Cb,fb,{33:280,101:409,34:f,103:Ya}),a(Ra,Ea,{69:410,70:pb}),{33:411,34:f},{33:412,34:f},{29:[2,140]},{6:Eb,31:Fb,94:[1,413]},a(Cb,fb,{33:287,108:416,34:f,103:eb}),a(Ra,Ea,{69:417,70:zb}),{33:418,34:f,103:[1,419]},a(Ab,
[2,144],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:420,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,
130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:421,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,
137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(za,[2,148]),{131:[1,422]},{120:[1,423],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(xb,[2,173]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,
60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,123:424,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,
61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:425,117:r,118:V,119:U,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,[2,182]),{6:qb,31:rb,32:[1,426]},{6:qb,31:rb,115:[1,427]},a(Za,[2,202],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2,
204],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2,215],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(lb,[2,224]),{7:428,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,
50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:429,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,
61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:430,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,
74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:431,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,
81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(xb,[2,109]),{11:206,33:208,34:f,35:209,36:Na,37:207,38:p,39:80,40:m,41:H,56:432,57:204,59:205,60:210,62:w,118:e},a(ec,Jb,{39:80,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,93:433,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),a(Ba,[2,112]),a(Ba,[2,52],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,
160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:434,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,
149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ba,[2,54],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:435,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,
81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{89:[2,177],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(ta,[2,50]),a(ta,[2,67]),a(Ua,[2,76]),a(Ra,Ea,{69:436,70:Ob}),a(ta,[2,271]),a(bc,[2,243]),a(ta,[2,194]),a(Db,[2,195]),a(Db,[2,196]),a(ta,[2,234]),{30:437,31:wa},
{32:[1,438]},a(ob,[2,240],{6:[1,439]}),{7:440,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,
162:R},a(ta,[2,122]),{39:441,40:m,41:H},a(nb,Ea,{69:442,70:pb}),a(za,[2,126]),{29:[1,443]},{33:280,34:f,101:444,103:Ya},{31:jb,33:280,34:f,100:445,101:278,103:Ya},a(Ba,[2,131]),{6:sb,31:tb,32:[1,446]},a(Ba,[2,136]),a(Ba,[2,138]),a(za,[2,142],{29:[1,447]}),{33:287,34:f,103:eb,108:448},{31:wb,33:287,34:f,103:eb,106:449,108:285},a(Ba,[2,151]),{6:Eb,31:Fb,32:[1,450]},a(Ba,[2,156]),a(Ba,[2,157]),a(Ab,[2,145],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,
169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{32:[1,451],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Aa,[2,200]),a(Aa,[2,176]),a(Qa,[2,183]),a(Ra,Ea,{69:452,70:kb}),a(Qa,[2,184]),a(b,[2,168]),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156],[2,227],{141:77,132:102,138:103,140:[1,453],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),
a(Bb,[2,229],{141:77,132:102,138:103,134:[1,454],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,228],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,233],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ba,[2,113]),a(Ra,Ea,{69:455,70:Tb}),{32:[1,456],132:102,133:B,135:A,138:103,139:C,
141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{32:[1,457],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{6:Yb,31:Zb,32:[1,458]},{32:[1,459]},a(ta,[2,237]),a(ob,[2,241]),a(fc,[2,190],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2,
128]),{6:sb,31:tb,94:[1,460]},{39:461,40:m,41:H},a(Ba,[2,132]),a(Ra,Ea,{69:462,70:pb}),a(Ba,[2,133]),{39:463,40:m,41:H},a(Ba,[2,152]),a(Ra,Ea,{69:464,70:zb}),a(Ba,[2,153]),a(za,[2,146]),{6:qb,31:rb,32:[1,465]},{7:466,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,
92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:467,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,
112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{6:cc,31:dc,32:[1,468]},a(Ba,[2,53]),a(Ba,[2,55]),a(Ua,[2,77]),a(ta,[2,235]),{29:[1,469]},a(za,[2,127]),{6:sb,31:tb,32:[1,470]},a(za,[2,149]),{6:Eb,31:Fb,32:[1,471]},a(Qa,[2,185]),a(Ka,[2,230],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,231],{141:77,132:102,138:103,
159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ba,[2,114]),{39:472,40:m,41:H},a(Ba,[2,134]),a(Ba,[2,154]),a(za,[2,129])],defaultActions:{68:[2,69],69:[2,70],238:[2,108],354:[2,140]},parseError:function(a,b){if(b.recoverable)this.trace(a);else{var d=function(a,b){this.message=a;this.hash=b};d.prototype=Error;throw new d(a,b);}},parse:function(a){var b=[0],d=[null],e=[],q=this.table,pa="",c=0,f=0,g=0,h=e.slice.call(arguments,1),wa=Object.create(this.lexer),
Ma={},k;for(k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(Ma[k]=this.yy[k]);wa.setInput(a,Ma);Ma.lexer=wa;Ma.parser=this;"undefined"==typeof wa.yylloc&&(wa.yylloc={});k=wa.yylloc;e.push(k);var n=wa.options&&wa.options.ranges;this.parseError="function"===typeof Ma.parseError?Ma.parseError:Object.getPrototypeOf(this).parseError;for(var l,Xa,m,u,D={},r,ua;;){m=b[b.length-1];if(this.defaultActions[m])u=this.defaultActions[m];else{if(null===l||"undefined"==typeof l)l=wa.lex()||1,"number"!==
typeof l&&(l=this.symbols_[l]||l);u=q[m]&&q[m][l]}if("undefined"===typeof u||!u.length||!u[0]){var w;ua=[];for(r in q[m])this.terminals_[r]&&2<r&&ua.push("'"+this.terminals_[r]+"'");w=wa.showPosition?"Parse error on line "+(c+1)+":\n"+wa.showPosition()+"\nExpecting "+ua.join(", ")+", got '"+(this.terminals_[l]||l)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==l?"end of input":"'"+(this.terminals_[l]||l)+"'");this.parseError(w,{text:wa.match,token:this.terminals_[l]||l,line:wa.yylineno,loc:k,
expected:ua})}if(u[0]instanceof Array&&1<u.length)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+l);switch(u[0]){case 1:b.push(l);d.push(wa.yytext);e.push(wa.yylloc);b.push(u[1]);l=null;Xa?(l=Xa,Xa=null):(f=wa.yyleng,pa=wa.yytext,c=wa.yylineno,k=wa.yylloc,0<g&&g--);break;case 2:ua=this.productions_[u[1]][1];D.$=d[d.length-ua];D._$={first_line:e[e.length-(ua||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(ua||1)].first_column,last_column:e[e.length-
1].last_column};n&&(D._$.range=[e[e.length-(ua||1)].range[0],e[e.length-1].range[1]]);m=this.performAction.apply(D,[pa,f,c,Ma,u[1],d,e].concat(h));if("undefined"!==typeof m)return m;ua&&(b=b.slice(0,-2*ua),d=d.slice(0,-1*ua),e=e.slice(0,-1*ua));b.push(this.productions_[u[1]][0]);d.push(D.$);e.push(D._$);u=q[b[b.length-2]][b[b.length-1]];b.push(u);break;case 3:return!0}}}};g.prototype=gc;gc.Parser=g;return new g}();"undefined"!==typeof t&&"undefined"!==typeof g&&(g.parser=xa,g.Parser=xa.Parser,g.parse=
function(){return xa.parse.apply(xa,arguments)},g.main=function(D){D[1]||(console.log("Usage: "+D[0]+" FILE"),process.exit(1));D=t("fs").readFileSync(t("path").normalize(D[1]),"utf8");return g.parser.parse(D)},"undefined"!==typeof va&&t.main===va&&g.main(process.argv.slice(1)));return va.exports}();t["./scope"]=function(){var g={};(function(){var t=[].indexOf||function(g){for(var D=0,a=this.length;D<a;D++)if(D in this&&this[D]===g)return D;return-1};g.Scope=function(){function g(g,a,c,t){var f,D;
this.parent=g;this.expressions=a;this.method=c;this.referencedVars=t;this.variables=[{name:"arguments",type:"arguments"}];this.positions={};this.parent||(this.utilities={});this.root=null!=(f=null!=(D=this.parent)?D.root:void 0)?f:this}g.prototype.add=function(g,a,c){return this.shared&&!c?this.parent.add(g,a,c):Object.prototype.hasOwnProperty.call(this.positions,g)?this.variables[this.positions[g]].type=a:this.positions[g]=this.variables.push({name:g,type:a})-1};g.prototype.namedMethod=function(){var g;
return null!=(g=this.method)&&g.name||!this.parent?this.method:this.parent.namedMethod()};g.prototype.find=function(g){if(this.check(g))return!0;this.add(g,"var");return!1};g.prototype.parameter=function(g){if(!this.shared||!this.parent.check(g,!0))return this.add(g,"param")};g.prototype.check=function(g){var a;return!!(this.type(g)||null!=(a=this.parent)&&a.check(g))};g.prototype.temporary=function(g,a,c){null==c&&(c=!1);return c?(c=g.charCodeAt(0),g=122-c,c=String.fromCharCode(c+a%(g+1)),a=Math.floor(a/
(g+1)),""+c+(a||"")):""+g+(a||"")};g.prototype.type=function(g){var a,c,D,f;D=this.variables;a=0;for(c=D.length;a<c;a++)if(f=D[a],f.name===g)return f.type;return null};g.prototype.freeVariable=function(g,a){var c,D,f;null==a&&(a={});for(c=0;;){f=this.temporary(g,c,a.single);if(!(this.check(f)||0<=t.call(this.root.referencedVars,f)))break;c++}(null!=(D=a.reserve)?D:1)&&this.add(f,"var",!0);return f};g.prototype.assign=function(g,a){this.add(g,{value:a,assigned:!0},!0);return this.hasAssignments=!0};
g.prototype.hasDeclarations=function(){return!!this.declaredVariables().length};g.prototype.declaredVariables=function(){var g,a,c,t,f;t=this.variables;f=[];a=0;for(c=t.length;a<c;a++)g=t[a],"var"===g.type&&f.push(g.name);return f.sort()};g.prototype.assignedVariables=function(){var g,a,c,t,f;c=this.variables;t=[];g=0;for(a=c.length;g<a;g++)f=c[g],f.type.assigned&&t.push(f.name+" \x3d "+f.type.value);return t};return g}()}).call(this);return g}();t["./nodes"]=function(){var g={};(function(){var va,
qa,D,a,c,Ca,f,p,m,H,F,x,y,v,E,N,l,h,u,w,G,L,z,I,k,M,P,n,r,V,U,Q,ba,S,B,A,X,C,O,Y,Z,W,aa,J,ca,R,ya,$a,Wa,ka,da,fa,ha,ia,la,oa,K,ja,ra,ea,ma,sa,T,Da,ta,Ia,Sa,Ga,Ta,Fa,Oa,Pa,La,za,na=function(a,b){function q(){this.constructor=a}for(var pa in b)ga.call(b,pa)&&(a[pa]=b[pa]);q.prototype=b.prototype;a.prototype=new q;a.__super__=b.prototype;return a},ga={}.hasOwnProperty,Ha=[].indexOf||function(a){for(var b=0,q=this.length;b<q;b++)if(b in this&&this[b]===a)return b;return-1},Aa=[].slice;Error.stackTraceLimit=
Infinity;J=t("./scope").Scope;a=t("./lexer");Ga=a.isUnassignable;L=a.JS_FORBIDDEN;v=t("./helpers");ea=v.compact;T=v.flatten;sa=v.extend;Fa=v.merge;ma=v.del;a=v.addLocationDataFn;Ta=v.locationDataToString;Pa=v.throwSyntaxError;g.extend=sa;g.addLocationDataFn=a;ja=function(){return!0};Q=function(){return!1};fa=function(){return this};U=function(){this.negated=!this.negated;return this};g.CodeFragment=H=function(){function a(a,q){var b;this.code=""+q;this.locationData=null!=a?a.locationData:void 0;this.type=
(null!=a?null!=(b=a.constructor)?b.name:void 0:void 0)||"unknown"}a.prototype.toString=function(){return""+this.code+(this.locationData?": "+Ta(this.locationData):"")};return a}();Da=function(a){var b,q,pa,e;e=[];q=0;for(pa=a.length;q<pa;q++)b=a[q],e.push(b.code);return e.join("")};g.Base=a=function(){function a(){}a.prototype.compile=function(a,q){return Da(this.compileToFragments(a,q))};a.prototype.compileToFragments=function(a,q){a=sa({},a);q&&(a.level=q);q=this.unfoldSoak(a)||this;q.tab=a.indent;
return a.level!==n&&q.isStatement(a)?q.compileClosure(a):q.compileNode(a)};a.prototype.compileClosure=function(a){var b,pa,e,d;(e=this.jumps())&&e.error("cannot use a pure statement in an expression");a.sharedScope=!0;e=new m([],c.wrap([this]));b=[];if((pa=this.contains(Ia))||this.contains(Sa))b=[new ha],pa?(pa="apply",b.push(new h("arguments"))):pa="call",e=new K(e,[new va(new O(pa))]);a=(new f(e,b)).compileNode(a);if(e.isGenerator||null!=(d=e.base)&&d.isGenerator)a.unshift(this.makeCode("(yield* ")),
a.push(this.makeCode(")"));return a};a.prototype.cache=function(a,q,pa){var b;if(null!=pa?pa(this):this.isComplex())return pa=new h(a.scope.freeVariable("ref")),b=new D(pa,this),q?[b.compileToFragments(a,q),[this.makeCode(pa.value)]]:[b,pa];pa=q?this.compileToFragments(a,q):this;return[pa,pa]};a.prototype.cacheToCodeFragments=function(a){return[Da(a[0]),Da(a[1])]};a.prototype.makeReturn=function(a){var b;b=this.unwrapAll();return a?new f(new r(a+".push"),[b]):new W(b)};a.prototype.contains=function(a){var b;
b=void 0;this.traverseChildren(!1,function(q){if(a(q))return b=q,!1});return b};a.prototype.lastNonComment=function(a){var b;for(b=a.length;b--;)if(!(a[b]instanceof F))return a[b];return null};a.prototype.toString=function(a,q){var b;null==a&&(a="");null==q&&(q=this.constructor.name);b="\n"+a+q;this.soak&&(b+="?");this.eachChild(function(e){return b+=e.toString(a+da)});return b};a.prototype.eachChild=function(a){var b,pa,e,d,c,f,g;if(!this.children)return this;f=this.children;pa=0;for(d=f.length;pa<
d;pa++)if(b=f[pa],this[b])for(g=T([this[b]]),e=0,c=g.length;e<c;e++)if(b=g[e],!1===a(b))return this;return this};a.prototype.traverseChildren=function(a,q){return this.eachChild(function(b){if(!1!==q(b))return b.traverseChildren(a,q)})};a.prototype.invert=function(){return new A("!",this)};a.prototype.unwrapAll=function(){var a;for(a=this;a!==(a=a.unwrap()););return a};a.prototype.children=[];a.prototype.isStatement=Q;a.prototype.jumps=Q;a.prototype.isComplex=ja;a.prototype.isChainable=Q;a.prototype.isAssignable=
Q;a.prototype.isNumber=Q;a.prototype.unwrap=fa;a.prototype.unfoldSoak=Q;a.prototype.assigns=Q;a.prototype.updateLocationDataIfMissing=function(a){if(this.locationData)return this;this.locationData=a;return this.eachChild(function(b){return b.updateLocationDataIfMissing(a)})};a.prototype.error=function(a){return Pa(a,this.locationData)};a.prototype.makeCode=function(a){return new H(this,a)};a.prototype.wrapInBraces=function(a){return[].concat(this.makeCode("("),a,this.makeCode(")"))};a.prototype.joinFragmentArrays=
function(a,q){var b,e,d,c,f;b=[];d=c=0;for(f=a.length;c<f;d=++c)e=a[d],d&&b.push(this.makeCode(q)),b=b.concat(e);return b};return a}();g.Block=c=function(a){function b(a){this.expressions=ea(T(a||[]))}na(b,a);b.prototype.children=["expressions"];b.prototype.push=function(a){this.expressions.push(a);return this};b.prototype.pop=function(){return this.expressions.pop()};b.prototype.unshift=function(a){this.expressions.unshift(a);return this};b.prototype.unwrap=function(){return 1===this.expressions.length?
this.expressions[0]:this};b.prototype.isEmpty=function(){return!this.expressions.length};b.prototype.isStatement=function(a){var b,e,d,q;q=this.expressions;e=0;for(d=q.length;e<d;e++)if(b=q[e],b.isStatement(a))return!0;return!1};b.prototype.jumps=function(a){var b,e,d,q;q=this.expressions;e=0;for(d=q.length;e<d;e++)if(b=q[e],b=b.jumps(a))return b};b.prototype.makeReturn=function(a){var b,e;for(e=this.expressions.length;e--;)if(b=this.expressions[e],!(b instanceof F)){this.expressions[e]=b.makeReturn(a);
b instanceof W&&!b.expression&&this.expressions.splice(e,1);break}return this};b.prototype.compileToFragments=function(a,pa){null==a&&(a={});return a.scope?b.__super__.compileToFragments.call(this,a,pa):this.compileRoot(a)};b.prototype.compileNode=function(a){var q,e,d,c,f,g,h;this.tab=a.indent;h=a.level===n;e=[];g=this.expressions;d=q=0;for(c=g.length;q<c;d=++q)f=g[d],f=f.unwrapAll(),f=f.unfoldSoak(a)||f,f instanceof b?e.push(f.compileNode(a)):h?(f.front=!0,d=f.compileToFragments(a),f.isStatement(a)||
(d.unshift(this.makeCode(""+this.tab)),d.push(this.makeCode(";"))),e.push(d)):e.push(f.compileToFragments(a,k));if(h)return this.spaced?[].concat(this.joinFragmentArrays(e,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(e,"\n");q=e.length?this.joinFragmentArrays(e,", "):[this.makeCode("void 0")];return 1<e.length&&a.level>=k?this.wrapInBraces(q):q};b.prototype.compileRoot=function(a){var b,e,d,q,c;a.indent=a.bare?"":da;a.level=n;this.spaced=!0;a.scope=new J(null,this,null,null!=(d=a.referencedVars)?
d:[]);c=a.locals||[];d=0;for(e=c.length;d<e;d++)q=c[d],a.scope.parameter(q);d=[];if(!a.bare){var f;f=this.expressions;e=[];b=q=0;for(c=f.length;q<c;b=++q){b=f[b];if(!(b.unwrap()instanceof F))break;e.push(b)}q=this.expressions.slice(e.length);this.expressions=e;e.length&&(d=this.compileNode(Fa(a,{indent:""})),d.push(this.makeCode("\n")));this.expressions=q}e=this.compileWithDeclarations(a);return a.bare?e:[].concat(d,this.makeCode("(function() {\n"),e,this.makeCode("\n}).call(this);\n"))};b.prototype.compileWithDeclarations=
function(a){var b,e,d,q,c,f;d=[];f=this.expressions;q=c=0;for(b=f.length;c<b&&(e=f[q],e=e.unwrap(),e instanceof F||e instanceof r);q=++c);a=Fa(a,{level:n});q&&(e=this.expressions.splice(q,9E9),d=[this.spaced,!1],c=d[0],this.spaced=d[1],c=[this.compileNode(a),c],d=c[0],this.spaced=c[1],this.expressions=e);e=this.compileNode(a);c=a.scope;c.expressions===this&&(b=a.scope.hasDeclarations(),a=c.hasAssignments,b||a?(q&&d.push(this.makeCode("\n")),d.push(this.makeCode(this.tab+"var ")),b&&d.push(this.makeCode(c.declaredVariables().join(", "))),
a&&(b&&d.push(this.makeCode(",\n"+(this.tab+da))),d.push(this.makeCode(c.assignedVariables().join(",\n"+(this.tab+da))))),d.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):d.length&&e.length&&d.push(this.makeCode("\n")));return d.concat(e)};b.wrap=function(a){return 1===a.length&&a[0]instanceof b?a[0]:new b(a)};return b}(a);g.Literal=r=function(a){function b(a){this.value=a}na(b,a);b.prototype.isComplex=Q;b.prototype.assigns=function(a){return a===this.value};b.prototype.compileNode=function(a){return[this.makeCode(this.value)]};
b.prototype.toString=function(){return" "+(this.isStatement()?b.__super__.toString.apply(this,arguments):this.constructor.name)+": "+this.value};return b}(a);g.NumberLiteral=S=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.InfinityLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(){return[this.makeCode("2e308")]};return b}(S);g.NaNLiteral=function(a){function b(){b.__super__.constructor.call(this,
"NaN")}na(b,a);b.prototype.compileNode=function(a){var b;b=[this.makeCode("0/0")];return a.level>=M?this.wrapInBraces(b):b};return b}(S);g.StringLiteral=$a=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.RegexLiteral=Z=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.PassthroughLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.IdentifierLiteral=
h=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(r);g.PropertyName=O=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(r);g.StatementLiteral=ya=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=fa;b.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};b.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};return b}(r);g.ThisLiteral=ha=function(a){function b(){b.__super__.constructor.call(this,"this")}na(b,a);b.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context:this.value;return[this.makeCode(a)]};return b}(r);g.UndefinedLiteral=oa=function(a){function b(){b.__super__.constructor.call(this,"undefined")}
na(b,a);b.prototype.compileNode=function(a){return[this.makeCode(a.level>=z?"(void 0)":"void 0")]};return b}(r);g.NullLiteral=ba=function(a){function b(){b.__super__.constructor.call(this,"null")}na(b,a);return b}(r);g.BooleanLiteral=Ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.Return=W=function(a){function b(a){this.expression=a}na(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.makeReturn=fa;b.prototype.jumps=
fa;b.prototype.compileToFragments=function(a,pa){var e,d;e=null!=(d=this.expression)?d.makeReturn():void 0;return!e||e instanceof b?b.__super__.compileToFragments.call(this,a,pa):e.compileToFragments(a,pa)};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,P)));b.push(this.makeCode(";"));return b};return b}(a);g.YieldReturn=ra=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}na(b,a);b.prototype.compileNode=function(a){null==a.scope.parent&&this.error("yield can only occur inside functions");return b.__super__.compileNode.apply(this,arguments)};return b}(W);g.Value=K=function(a){function b(a,pa,e){if(!pa&&a instanceof b)return a;this.base=a;this.properties=pa||[];e&&(this[e]=!0);return this}na(b,a);b.prototype.children=["base","properties"];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(qa)};b.prototype.isRange=function(){return this.bareLiteral(Y)};b.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()};b.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(S)};b.prototype.isString=function(){return this.bareLiteral($a)};
b.prototype.isRegex=function(){return this.bareLiteral(Z)};b.prototype.isUndefined=function(){return this.bareLiteral(oa)};b.prototype.isNull=function(){return this.bareLiteral(ba)};b.prototype.isBoolean=function(){return this.bareLiteral(Ca)};b.prototype.isAtomic=function(){var a,b,e,d;d=this.properties.concat(this.base);a=0;for(b=d.length;a<b;a++)if(e=d[a],e.soak||e instanceof f)return!1;return!0};b.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||
this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||this.isBoolean()};b.prototype.isStatement=function(a){return!this.properties.length&&this.base.isStatement(a)};b.prototype.assigns=function(a){return!this.properties.length&&this.base.assigns(a)};b.prototype.jumps=function(a){return!this.properties.length&&this.base.jumps(a)};b.prototype.isObject=function(a){return this.properties.length?!1:this.base instanceof B&&(!a||this.base.generated)};b.prototype.isSplice=function(){var a;
a=this.properties;return a[a.length-1]instanceof ca};b.prototype.looksStatic=function(a){var b;return this.base.value===a&&1===this.properties.length&&"prototype"!==(null!=(b=this.properties[0].name)?b.value:void 0)};b.prototype.unwrap=function(){return this.properties.length?this:this.base};b.prototype.cacheReference=function(a){var q,e,d,c;q=this.properties;d=q[q.length-1];if(2>this.properties.length&&!this.base.isComplex()&&(null==d||!d.isComplex()))return[this,this];q=new b(this.base,this.properties.slice(0,
-1));q.isComplex()&&(e=new h(a.scope.freeVariable("base")),q=new b(new C(new D(e,q))));if(!d)return[q,e];d.isComplex()&&(c=new h(a.scope.freeVariable("name")),d=new G(new D(c,d.index)),c=new G(c));return[q.add(d),new b(e||q.base,[c||d])]};b.prototype.compileNode=function(a){var b,e,d,q,c;this.base.front=this.front;c=this.properties;b=this.base.compileToFragments(a,c.length?z:null);c.length&&aa.test(Da(b))&&b.push(this.makeCode("."));e=0;for(d=c.length;e<d;e++)q=c[e],b.push.apply(b,q.compileToFragments(a));
return b};b.prototype.unfoldSoak=function(a){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(q){return function(){var e,d,c,pa,f;if(d=q.base.unfoldSoak(a))return(e=d.body.properties).push.apply(e,q.properties),d;f=q.properties;d=e=0;for(c=f.length;e<c;d=++e)if(pa=f[d],pa.soak)return pa.soak=!1,e=new b(q.base,q.properties.slice(0,d)),c=new b(q.base,q.properties.slice(d)),e.isComplex()&&(d=new h(a.scope.freeVariable("ref")),e=new C(new D(d,e)),c.base=d),new u(new x(e),c,
{soak:!0});return!1}}(this)()};return b}(a);g.Comment=F=function(a){function b(a){this.comment=a}na(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=fa;b.prototype.compileNode=function(a,b){var e;e=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *");e="/*"+Oa(e,this.tab)+(0<=Ha.call(e,"\n")?"\n"+this.tab:"")+" */";(b||a.level)===n&&(e=a.indent+e);return[this.makeCode("\n"),this.makeCode(e)]};return b}(a);g.Call=f=function(a){function b(a,b,e){this.variable=a;this.args=null!=b?b:[];this.soak=e;this.isNew=
!1;this.variable instanceof K&&this.variable.isNotCallable()&&this.variable.error("literal is not a function")}na(b,a);b.prototype.children=["variable","args"];b.prototype.newInstance=function(){var a,c;a=(null!=(c=this.variable)?c.base:void 0)||this.variable;a instanceof b&&!a.isNew?a.newInstance():this.isNew=!0;return this};b.prototype.unfoldSoak=function(a){var q,e,d,c,f;if(this.soak){if(this instanceof ka)q=new r(this.superReference(a)),e=new K(q);else{if(e=La(a,this,"variable"))return e;e=(new K(this.variable)).cacheReference(a);
q=e[0];e=e[1]}e=new b(e,this.args);e.isNew=this.isNew;q=new r("typeof "+q.compile(a)+' \x3d\x3d\x3d "function"');return new u(q,new K(e),{soak:!0})}q=this;for(d=[];;)if(q.variable instanceof b)d.push(q),q=q.variable;else{if(!(q.variable instanceof K))break;d.push(q);if(!((q=q.variable.base)instanceof b))break}f=d.reverse();d=0;for(c=f.length;d<c;d++)q=f[d],e&&(q.variable instanceof b?q.variable=e:q.variable.base=e),e=La(a,q,"variable");return e};b.prototype.compileNode=function(a){var b,e,d,q,c,f;
null!=(d=this.variable)&&(d.front=this.front);d=R.compileSplattedArray(a,this.args,!0);if(d.length)return this.compileSplat(a,d);d=[];f=this.args;e=q=0;for(c=f.length;q<c;e=++q)b=f[e],e&&d.push(this.makeCode(", ")),d.push.apply(d,b.compileToFragments(a,k));b=[];this instanceof ka?(a=this.superReference(a)+(".call("+this.superThis(a)),d.length&&(a+=", "),b.push(this.makeCode(a))):(this.isNew&&b.push(this.makeCode("new ")),b.push.apply(b,this.variable.compileToFragments(a,z)),b.push(this.makeCode("(")));
b.push.apply(b,d);b.push(this.makeCode(")"));return b};b.prototype.compileSplat=function(a,b){var e,d,q,c;if(this instanceof ka)return[].concat(this.makeCode(this.superReference(a)+".apply("+this.superThis(a)+", "),b,this.makeCode(")"));if(this.isNew)return e=this.tab+da,[].concat(this.makeCode("(function(func, args, ctor) {\n"+e+"ctor.prototype \x3d func.prototype;\n"+e+"var child \x3d new ctor, result \x3d func.apply(child, args);\n"+e+"return Object(result) \x3d\x3d\x3d result ? result : child;\n"+
this.tab+"})("),this.variable.compileToFragments(a,k),this.makeCode(", "),b,this.makeCode(", function(){})"));e=[];d=new K(this.variable);(q=d.properties.pop())&&d.isComplex()?(c=a.scope.freeVariable("ref"),e=e.concat(this.makeCode("("+c+" \x3d "),d.compileToFragments(a,k),this.makeCode(")"),q.compileToFragments(a))):(d=d.compileToFragments(a,z),aa.test(Da(d))&&(d=this.wrapInBraces(d)),q?(c=Da(d),d.push.apply(d,q.compileToFragments(a))):c="null",e=e.concat(d));return e.concat(this.makeCode(".apply("+
c+", "),b,this.makeCode(")"))};return b}(a);g.SuperCall=ka=function(a){function b(a){b.__super__.constructor.call(this,null,null!=a?a:[new R(new h("arguments"))]);this.isBare=null!=a}na(b,a);b.prototype.superReference=function(a){var b,e,d,c,q,f,g;c=a.scope.namedMethod();if(null!=c&&c.klass){d=c.klass;q=c.name;g=c.variable;d.isComplex()&&(e=new h(a.scope.parent.freeVariable("base")),b=new K(new C(new D(e,d))),g.base=b,g.properties.splice(0,d.properties.length));if(q.isComplex()||q instanceof G&&q.index.isAssignable())f=
new h(a.scope.parent.freeVariable("name")),q=new G(new D(f,q.index)),g.properties.pop(),g.properties.push(q);b=[new va(new O("__super__"))];c["static"]&&b.push(new va(new O("constructor")));b.push(null!=f?new G(f):q);return(new K(null!=e?e:d,b)).compile(a)}return null!=c&&c.ctor?c.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")};b.prototype.superThis=function(a){return(a=a.scope.method)&&!a.klass&&a.context||"this"};return b}(f);g.RegexWithInterpolations=
function(a){function b(a){null==a&&(a=[]);b.__super__.constructor.call(this,new K(new h("RegExp")),a,!1)}na(b,a);return b}(f);g.TaggedTemplateCall=function(a){function b(a,pa,e){pa instanceof $a&&(pa=new Wa(c.wrap([new K(pa)])));b.__super__.constructor.call(this,a,[pa],e)}na(b,a);b.prototype.compileNode=function(a){a.inTaggedTemplateCall=!0;return this.variable.compileToFragments(a,z).concat(this.args[0].compileToFragments(a,k))};return b}(f);g.Extends=N=function(a){function b(a,b){this.child=a;this.parent=
b}na(b,a);b.prototype.children=["child","parent"];b.prototype.compileToFragments=function(a){return(new f(new K(new r(za("extend",a))),[this.child,this.parent])).compileToFragments(a)};return b}(a);g.Access=va=function(a){function b(a,b){this.name=a;this.soak="soak"===b}na(b,a);b.prototype.children=["name"];b.prototype.compileToFragments=function(a){var b,e;a=this.name.compileToFragments(a);b=this.name.unwrap();return b instanceof O?(e=b.value,0<=Ha.call(L,e))?[this.makeCode('["')].concat(Aa.call(a),
[this.makeCode('"]')]):[this.makeCode(".")].concat(Aa.call(a)):[this.makeCode("[")].concat(Aa.call(a),[this.makeCode("]")])};b.prototype.isComplex=Q;return b}(a);g.Index=G=function(a){function b(a){this.index=a}na(b,a);b.prototype.children=["index"];b.prototype.compileToFragments=function(a){return[].concat(this.makeCode("["),this.index.compileToFragments(a,P),this.makeCode("]"))};b.prototype.isComplex=function(){return this.index.isComplex()};return b}(a);g.Range=Y=function(a){function b(a,b,e){this.from=
a;this.to=b;this.equals=(this.exclusive="exclusive"===e)?"":"\x3d"}na(b,a);b.prototype.children=["from","to"];b.prototype.compileVariables=function(a){var b,e;a=Fa(a,{top:!0});b=ma(a,"isComplex");e=this.cacheToCodeFragments(this.from.cache(a,k,b));this.fromC=e[0];this.fromVar=e[1];e=this.cacheToCodeFragments(this.to.cache(a,k,b));this.toC=e[0];this.toVar=e[1];if(e=ma(a,"step"))a=this.cacheToCodeFragments(e.cache(a,k,b)),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!=e&&e.isNumber()?Number(this.stepVar):null};b.prototype.compileNode=function(a){var b,e,d,c,q,f,g,h,k,n;this.fromVar||this.compileVariables(a);if(!a.index)return this.compileArray(a);f=null!=this.fromNum&&null!=this.toNum;q=ma(a,"index");g=(a=ma(a,"name"))&&a!==q;n=q+" \x3d "+this.fromC;this.toC!==this.toVar&&(n+=", "+this.toC);this.step!==this.stepVar&&(n+=", "+this.step);c=[q+" \x3c"+this.equals,q+" \x3e"+this.equals];
e=c[0];c=c[1];e=null!=this.stepNum?0<this.stepNum?e+" "+this.toVar:c+" "+this.toVar:f?(h=[this.fromNum,this.toNum],d=h[0],k=h[1],h,d<=k?e+" "+k:c+" "+k):(b=this.stepVar?this.stepVar+" \x3e 0":this.fromVar+" \x3c\x3d "+this.toVar,b+" ? "+e+" "+this.toVar+" : "+c+" "+this.toVar);b=this.stepVar?q+" +\x3d "+this.stepVar:f?g?d<=k?"++"+q:"--"+q:d<=k?q+"++":q+"--":g?b+" ? ++"+q+" : --"+q:b+" ? "+q+"++ : "+q+"--";g&&(n=a+" \x3d "+n);g&&(b=a+" \x3d "+b);return[this.makeCode(n+"; "+e+"; "+b)]};b.prototype.compileArray=
function(a){var b,e,d,c,q,f,g,h,k;if((e=null!=this.fromNum&&null!=this.toNum)&&20>=Math.abs(this.fromNum-this.toNum))return b=function(){h=[];for(var a=f=this.fromNum,b=this.toNum;f<=b?a<=b:a>=b;f<=b?a++:a--)h.push(a);return h}.apply(this),this.exclusive&&b.pop(),[this.makeCode("["+b.join(", ")+"]")];c=this.tab+da;d=a.scope.freeVariable("i",{single:!0});g=a.scope.freeVariable("results");q="\n"+c+g+" \x3d [];";e?(a.index=d,e=Da(this.compileNode(a))):(k=d+" \x3d "+this.fromC+(this.toC!==this.toVar?
", "+this.toC:""),e=this.fromVar+" \x3c\x3d "+this.toVar,e="var "+k+"; "+e+" ? "+d+" \x3c"+this.equals+" "+this.toVar+" : "+d+" \x3e"+this.equals+" "+this.toVar+"; "+e+" ? "+d+"++ : "+d+"--");d="{ "+g+".push("+d+"); }\n"+c+"return "+g+";\n"+a.indent;a=function(a){return null!=a?a.contains(Ia):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+q+"\n"+c+"for ("+e+")"+d+"}).apply(this"+(null!=b?b:"")+")")]};return b}(a);g.Slice=ca=function(a){function b(a){this.range=
a;b.__super__.constructor.call(this)}na(b,a);b.prototype.children=["range"];b.prototype.compileNode=function(a){var b,e,d,c,q;b=this.range;c=b.to;d=(b=b.from)&&b.compileToFragments(a,P)||[this.makeCode("0")];c&&(b=c.compileToFragments(a,P),e=Da(b),this.range.exclusive||-1!==+e)&&(q=", "+(this.range.exclusive?e:c.isNumber()?""+(+e+1):(b=c.compileToFragments(a,z),"+"+Da(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+Da(d)+(q||"")+")")]};return b}(a);g.Obj=B=function(a){function b(a,b){this.generated=
null!=b?b:!1;this.objects=this.properties=a||[]}na(b,a);b.prototype.children=["properties"];b.prototype.compileNode=function(a){var b,e,d,c,q,f,g,k,l,u,m,r,w;w=this.properties;if(this.generated)for(e=0,b=w.length;e<b;e++)d=w[e],d instanceof K&&d.error("cannot have an implicit value in an implicit object");e=b=0;for(d=w.length;b<d&&!(r=w[e],(r.variable||r).base instanceof C);e=++b);d=e<w.length;q=a.indent+=da;l=this.lastNonComment(this.properties);b=[];d&&(m=a.scope.freeVariable("obj"),b.push(this.makeCode("(\n"+
q+m+" \x3d ")));b.push(this.makeCode("{"+(0===w.length||0===e?"}":"\n")));c=k=0;for(u=w.length;k<u;c=++k)r=w[c],c===e&&(0!==c&&b.push(this.makeCode("\n"+q+"}")),b.push(this.makeCode(",\n"))),g=c===w.length-1||c===e-1?"":r===l||r instanceof F?"\n":",\n",f=r instanceof F?"":q,d&&c<e&&(f+=da),r instanceof D&&("object"!==r.context&&r.operatorToken.error("unexpected "+r.operatorToken.value),r.variable instanceof K&&r.variable.hasProperties()&&r.variable.error("invalid object key")),r instanceof K&&r["this"]&&
(r=new D(r.properties[0].name,r,"object")),r instanceof F||(c<e?r instanceof D||(r=new D(r,r,"object")):(r instanceof D?(c=r.variable,r=r.value):(r=r.base.cache(a),c=r[0],r=r[1],c instanceof h&&(c=new O(c.value))),r=new D(new K(new h(m),[new va(c)]),r))),f&&b.push(this.makeCode(f)),b.push.apply(b,r.compileToFragments(a,n)),g&&b.push(this.makeCode(g));d?b.push(this.makeCode(",\n"+q+m+"\n"+this.tab+")")):0!==w.length&&b.push(this.makeCode("\n"+this.tab+"}"));return this.front&&!d?this.wrapInBraces(b):
b};b.prototype.assigns=function(a){var b,e,d,c;c=this.properties;b=0;for(e=c.length;b<e;b++)if(d=c[b],d.assigns(a))return!0;return!1};return b}(a);g.Arr=qa=function(a){function b(a){this.objects=a||[]}na(b,a);b.prototype.children=["objects"];b.prototype.compileNode=function(a){var b,e,d,c,q;if(!this.objects.length)return[this.makeCode("[]")];a.indent+=da;b=R.compileSplattedArray(a,this.objects);if(b.length)return b;b=[];var f;q=this.objects;f=[];d=0;for(c=q.length;d<c;d++)e=q[d],f.push(e.compileToFragments(a,
k));d=c=0;for(q=f.length;c<q;d=++c)e=f[d],d&&b.push(this.makeCode(", ")),b.push.apply(b,e);0<=Da(b).indexOf("\n")?(b.unshift(this.makeCode("[\n"+a.indent)),b.push(this.makeCode("\n"+this.tab+"]"))):(b.unshift(this.makeCode("[")),b.push(this.makeCode("]")));return b};b.prototype.assigns=function(a){var b,e,d,c;c=this.objects;b=0;for(e=c.length;b<e;b++)if(d=c[b],d.assigns(a))return!0;return!1};return b}(a);g.Class=p=function(a){function b(a,b,e){this.variable=a;this.parent=b;this.body=null!=e?e:new c;
this.boundFuncs=[];this.body.classBody=!0}na(b,a);b.prototype.children=["variable","parent","body"];b.prototype.defaultClassVariableName="_Class";b.prototype.determineName=function(){var a,b;if(!this.variable)return this.defaultClassVariableName;b=this.variable.properties;b=(a=b[b.length-1])?a instanceof va&&a.name:this.variable.base;if(!(b instanceof h||b instanceof O))return this.defaultClassVariableName;b=b.value;a||(a=Ga(b))&&this.variable.error(a);return 0<=Ha.call(L,b)?"_"+b:b};b.prototype.setContext=
function(a){return this.body.traverseChildren(!1,function(b){if(b.classBody)return!1;if(b instanceof ha)return b.value=a;if(b instanceof m&&b.bound)return b.context=a})};b.prototype.addBoundFunctions=function(a){var b,e,d,c;c=this.boundFuncs;e=0;for(d=c.length;e<d;e++)b=c[e],b=(new K(new ha,[new va(b)])).compile(a),this.ctor.body.unshift(new r(b+" \x3d "+za("bind",a)+"("+b+", this)"))};b.prototype.addProperties=function(a,b,e){var d,c,f,q;q=a.base.properties.slice(0);var g;for(g=[];d=q.shift();)d instanceof
D&&(c=d.variable.base,delete d.context,f=d.value,"constructor"===c.value?(this.ctor&&d.error("cannot define more than one constructor in a class"),f.bound&&d.error("cannot define a constructor as a bound function"),f instanceof m?d=this.ctor=f:(this.externalCtor=e.classScope.freeVariable("ctor"),d=new D(new h(this.externalCtor),f))):d.variable["this"]?f["static"]=!0:(a=c.isComplex()?new G(c):new va(c),d.variable=new K(new h(b),[new va(new O("prototype")),a]),f instanceof m&&f.bound&&(this.boundFuncs.push(c),
f.bound=!1))),g.push(d);return ea(g)};b.prototype.walkBody=function(a,f){return this.traverseChildren(!1,function(e){return function(d){var q,g,pa,h,k,n,l;q=!0;if(d instanceof b)return!1;if(d instanceof c){l=g=d.expressions;pa=h=0;for(k=l.length;h<k;pa=++h)n=l[pa],n instanceof D&&n.variable.looksStatic(a)?n.value["static"]=!0:n instanceof K&&n.isObject(!0)&&(q=!1,g[pa]=e.addProperties(n,a,f));d.expressions=T(g)}return q&&!(d instanceof b)}}(this))};b.prototype.hoistDirectivePrologue=function(){var a,
b,e;b=0;for(a=this.body.expressions;(e=a[b])&&e instanceof F||e instanceof K&&e.isString();)++b;return this.directives=a.splice(0,b)};b.prototype.ensureConstructor=function(a){this.ctor||(this.ctor=new m,this.externalCtor?this.ctor.body.push(new r(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new r(a+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor));this.ctor.ctor=this.ctor.name=a;this.ctor.klass=
null;return this.ctor.noReturn=!0};b.prototype.compileNode=function(a){var b,e,d,q,g;(e=this.body.jumps())&&e.error("Class bodies cannot contain pure statements");(b=this.body.contains(Ia))&&b.error("Class bodies shouldn't reference arguments");g=this.determineName();q=new h(g);e=new m([],c.wrap([this.body]));b=[];a.classScope=e.makeScope(a.scope);this.hoistDirectivePrologue();this.setContext(g);this.walkBody(g,a);this.ensureConstructor(g);this.addBoundFunctions(a);this.body.spaced=!0;this.body.expressions.push(q);
this.parent&&(g=new h(a.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new N(q,g)),e.params.push(new X(g)),b.push(this.parent));(d=this.body.expressions).unshift.apply(d,this.directives);d=new C(new f(e,b));this.variable&&(d=new D(this.variable,d,null,{moduleDeclaration:this.moduleDeclaration}));return d.compileToFragments(a)};return b}(a);g.ModuleDeclaration=v=function(a){function b(a,b){this.clause=a;this.source=b;this.checkSource()}na(b,a);b.prototype.children=
["clause","source"];b.prototype.isStatement=ja;b.prototype.jumps=fa;b.prototype.makeReturn=fa;b.prototype.checkSource=function(){if(null!=this.source&&this.source instanceof Wa)return this.source.error("the name of the module to be imported from must be an uninterpolated string")};b.prototype.checkScope=function(a,b){if(0!==a.indent.length)return this.error(b+" statements must be at top-level scope")};return b}(a);g.ImportDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}na(b,a);b.prototype.compileNode=function(a){var b,e;this.checkScope(a,"import");a.importedSymbols=[];b=[];b.push(this.makeCode(this.tab+"import "));null!=this.clause&&b.push.apply(b,this.clause.compileNode(a));null!=(null!=(e=this.source)?e.value:void 0)&&(null!==this.clause&&b.push(this.makeCode(" from ")),b.push(this.makeCode(this.source.value)));b.push(this.makeCode(";"));return b};return b}(v);g.ImportClause=function(a){function b(a,b){this.defaultBinding=a;this.namedImports=b}na(b,
a);b.prototype.children=["defaultBinding","namedImports"];b.prototype.compileNode=function(a){var b;b=[];null!=this.defaultBinding&&(b.push.apply(b,this.defaultBinding.compileNode(a)),null!=this.namedImports&&b.push(this.makeCode(", ")));null!=this.namedImports&&b.push.apply(b,this.namedImports.compileNode(a));return b};return b}(a);g.ExportDeclaration=v=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(a){var b,e;this.checkScope(a,
"export");b=[];b.push(this.makeCode(this.tab+"export "));this instanceof E&&b.push(this.makeCode("default "));this instanceof E||!(this.clause instanceof D||this.clause instanceof p)||(this.clause instanceof p&&!this.clause.variable&&this.clause.error("anonymous classes cannot be exported"),b.push(this.makeCode("var ")),this.clause.moduleDeclaration="export");b=null!=this.clause.body&&this.clause.body instanceof c?b.concat(this.clause.compileToFragments(a,n)):b.concat(this.clause.compileNode(a));
null!=(null!=(e=this.source)?e.value:void 0)&&b.push(this.makeCode(" from "+this.source.value));b.push(this.makeCode(";"));return b};return b}(v);g.ExportNamedDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportDefaultDeclaration=E=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportAllDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,
a);return b}(v);g.ModuleSpecifierList=v=function(a){function b(a){this.specifiers=a}na(b,a);b.prototype.children=["specifiers"];b.prototype.compileNode=function(a){var b,e,d,c,f;b=[];a.indent+=da;var q;f=this.specifiers;q=[];d=0;for(c=f.length;d<c;d++)e=f[d],q.push(e.compileToFragments(a,k));if(0!==this.specifiers.length){b.push(this.makeCode("{\n"+a.indent));d=c=0;for(f=q.length;c<f;d=++c)e=q[d],d&&b.push(this.makeCode(",\n"+a.indent)),b.push.apply(b,e);b.push(this.makeCode("\n}"))}else b.push(this.makeCode("{}"));
return b};return b}(a);g.ImportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ModuleSpecifier=V=function(a){function b(a,b,e){this.original=a;this.alias=b;this.moduleDeclarationType=e;this.identifier=null!=this.alias?this.alias.value:this.original.value}na(b,a);b.prototype.children=["original","alias"];b.prototype.compileNode=
function(a){a.scope.add(this.identifier,this.moduleDeclarationType);a=[];a.push(this.makeCode(this.original.value));null!=this.alias&&a.push(this.makeCode(" as "+this.alias.value));return a};return b}(a);g.ImportSpecifier=v=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"import")}na(b,a);b.prototype.compileNode=function(a){var c;(c=this.identifier,0<=Ha.call(a.importedSymbols,c))||a.scope.check(this.identifier)?this.error("'"+this.identifier+"' has already been declared"):a.importedSymbols.push(this.identifier);
return b.__super__.compileNode.call(this,a)};return b}(V);g.ImportDefaultSpecifier=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ImportNamespaceSpecifier=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportSpecifier=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"export")}na(b,a);return b}(V);g.Assign=D=function(a){function b(a,b,e,d){this.variable=a;this.value=b;this.context=
e;null==d&&(d={});this.param=d.param;this.subpattern=d.subpattern;this.operatorToken=d.operatorToken;this.moduleDeclaration=d.moduleDeclaration}na(b,a);b.prototype.children=["variable","value"];b.prototype.isStatement=function(a){return(null!=a?a.level:void 0)===n&&null!=this.context&&(this.moduleDeclaration||0<=Ha.call(this.context,"?"))};b.prototype.checkAssignability=function(a,b){if(Object.prototype.hasOwnProperty.call(a.scope.positions,b.value)&&"import"===a.scope.variables[a.scope.positions[b.value]].type)return b.error("'"+
b.value+"' is read-only")};b.prototype.assigns=function(a){return this["object"===this.context?"value":"variable"].assigns(a)};b.prototype.unfoldSoak=function(a){return La(a,this,"variable")};b.prototype.compileNode=function(a){var b,e,d,c,f,g,q;if(e=this.variable instanceof K){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(a);if(this.variable.isSplice())return this.compileSplice(a);if("||\x3d"===(c=this.context)||"\x26\x26\x3d"===c||"?\x3d"===c)return this.compileConditional(a);
if("**\x3d"===(f=this.context)||"//\x3d"===f||"%%\x3d"===f)return this.compileSpecialMath(a)}this.value instanceof m&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):2<=(null!=(g=this.variable.properties)?g.length:void 0)&&(g=this.variable.properties,c=3<=g.length?Aa.call(g,0,d=g.length-2):(d=0,[]),f=g[d++],d=g[d++],"prototype"===(null!=(q=f.name)?q.value:void 0)&&(this.value.klass=new K(this.variable.base,c),
this.value.name=d,this.value.variable=this.variable)));this.context||(q=this.variable.unwrapAll(),q.isAssignable()||this.variable.error("'"+this.variable.compile(a)+"' can't be assigned"),"function"===typeof q.hasProperties&&q.hasProperties()||(this.moduleDeclaration?(this.checkAssignability(a,q),a.scope.add(q.value,this.moduleDeclaration)):this.param?a.scope.add(q.value,"var"):(this.checkAssignability(a,q),a.scope.find(q.value))));q=this.value.compileToFragments(a,k);e&&this.variable.base instanceof
B&&(this.variable.front=!0);e=this.variable.compileToFragments(a,k);if("object"===this.context){if(b=Da(e),0<=Ha.call(L,b))e.unshift(this.makeCode('"')),e.push(this.makeCode('"'));return e.concat(this.makeCode(": "),q)}b=e.concat(this.makeCode(" "+(this.context||"\x3d")+" "),q);return a.level<=k?b:this.wrapInBraces(b)};b.prototype.compilePatternMatch=function(a){var c,e,d,f,g,q,l,u,m,w,p,z,t,D,v,x;D=a.level===n;u=this.value;z=this.variable.base.objects;if(!(t=z.length))return e=u.compileToFragments(a),
a.level>=M?this.wrapInBraces(e):e;p=z[0];1===t&&p instanceof y&&p.error("Destructuring assignment has no target");q=this.variable.isObject();if(D&&1===t&&!(p instanceof R))return d=null,p instanceof b&&"object"===p.context?(e=p,f=e.variable,g=f.base,p=e.value,p instanceof b&&(d=p.value,p=p.variable)):(p instanceof b&&(d=p.value,p=p.variable),g=q?p["this"]?p.properties[0].name:new O(p.unwrap().value):new S(0)),c=g.unwrap()instanceof O,u=new K(u),u.properties.push(new (c?va:G)(g)),(w=Ga(p.unwrap().value))&&
p.error(w),d&&(u=new A("?",u,d)),(new b(p,u,null,{param:this.param})).compileToFragments(a,n);v=u.compileToFragments(a,k);x=Da(v);e=[];f=!1;u.unwrap()instanceof h&&!this.variable.assigns(x)||(e.push([this.makeCode((d=a.scope.freeVariable("ref"))+" \x3d ")].concat(Aa.call(v))),v=[this.makeCode(d)],x=d);d=u=0;for(m=z.length;u<m;d=++u){p=z[d];g=d;if(!f&&p instanceof R)w=p.name.unwrap().value,p=p.unwrap(),g=t+" \x3c\x3d "+x+".length ? "+za("slice",a)+".call("+x+", "+d,(c=t-d-1)?(l=a.scope.freeVariable("i",
{single:!0}),g+=", "+l+" \x3d "+x+".length - "+c+") : ("+l+" \x3d "+d+", [])"):g+=") : []",g=new r(g),f=l+"++";else if(!f&&p instanceof y){if(c=t-d-1)1===c?f=x+".length - 1":(l=a.scope.freeVariable("i",{single:!0}),g=new r(l+" \x3d "+x+".length - "+c),f=l+"++",e.push(g.compileToFragments(a,k)));continue}else(p instanceof R||p instanceof y)&&p.error("multiple splats/expansions are disallowed in an assignment"),d=null,p instanceof b&&"object"===p.context?(g=p.variable,g=g.base,p=p.value,p instanceof
b&&(d=p.value,p=p.variable)):(p instanceof b&&(d=p.value,p=p.variable),g=q?p["this"]?p.properties[0].name:new O(p.unwrap().value):new r(f||g)),w=p.unwrap().value,c=g.unwrap()instanceof O,g=new K(new r(x),[new (c?va:G)(g)]),d&&(g=new A("?",g,d));null!=w&&(w=Ga(w))&&p.error(w);e.push((new b(p,g,null,{param:this.param,subpattern:!0})).compileToFragments(a,k))}D||this.subpattern||e.push(v);e=this.joinFragmentArrays(e,", ");return a.level<k?e:this.wrapInBraces(e)};b.prototype.compileConditional=function(a){var c,
e;e=this.variable.cacheReference(a);c=e[0];e=e[1];c.properties.length||!(c.base instanceof r)||c.base instanceof ha||a.scope.check(c.base.value)||this.variable.error('the variable "'+c.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before");if(0<=Ha.call(this.context,"?"))return a.isExistentialEquals=!0,(new u(new x(c),e,{type:"if"})).addElse(new b(e,this.value,"\x3d")).compileToFragments(a);c=(new A(this.context.slice(0,-1),c,new b(e,this.value,"\x3d"))).compileToFragments(a);
return a.level<=k?c:this.wrapInBraces(c)};b.prototype.compileSpecialMath=function(a){var c,e;e=this.variable.cacheReference(a);c=e[0];e=e[1];return(new b(c,new A(this.context.slice(0,-1),e,this.value))).compileToFragments(a)};b.prototype.compileSplice=function(a){var b,e,d,c,f,g;c=this.variable.properties.pop().range;d=c.from;b=c.to;e=c.exclusive;g=this.variable.compile(a);d?(f=this.cacheToCodeFragments(d.cache(a,M)),c=f[0],f=f[1]):c=f="0";b?null!=d&&d.isNumber()&&b.isNumber()?(b=b.compile(a)-f,e||
(b+=1)):(b=b.compile(a,z)+" - "+f,e||(b+=" + 1")):b="9e9";e=this.value.cache(a,k);d=e[0];e=e[1];b=[].concat(this.makeCode("[].splice.apply("+g+", ["+c+", "+b+"].concat("),d,this.makeCode(")), "),e);return a.level>n?this.wrapInBraces(b):b};return b}(a);g.Code=m=function(a){function b(a,b,e){this.params=a||[];this.body=b||new c;this.bound="boundfunc"===e;this.isGenerator=!!this.body.contains(function(a){return a instanceof A&&a.isYield()||a instanceof ra})}na(b,a);b.prototype.children=["params","body"];
b.prototype.isStatement=function(){return!!this.ctor};b.prototype.jumps=Q;b.prototype.makeScope=function(a){return new J(a,this.body,this)};b.prototype.compileNode=function(a){var g,e,d,q,k,n,l,m,p,w,t,x,G;this.bound&&null!=(e=a.scope.method)&&e.bound&&(this.context=a.scope.method.context);if(this.bound&&!this.context)return this.context="_this",e=new b([new X(new h(this.context))],new c([this])),e=new f(e,[new ha]),e.updateLocationDataIfMissing(this.locationData),e.compileNode(a);a.scope=ma(a,"classScope")||
this.makeScope(a.scope);a.scope.shared=ma(a,"sharedScope");a.indent+=da;delete a.bare;delete a.isExistentialEquals;e=[];g=[];m=this.params;q=0;for(n=m.length;q<n;q++)l=m[q],l instanceof y||a.scope.parameter(l.asReference(a));m=this.params;q=0;for(n=m.length;q<n;q++)if(l=m[q],l.splat||l instanceof y){q=this.params;k=0;for(l=q.length;k<l;k++)p=q[k],p instanceof y||!p.name.value||a.scope.add(p.name.value,"var",!0);k=new D(new K(new qa(function(){var b,d,e,c;e=this.params;c=[];d=0;for(b=e.length;d<b;d++)p=
e[d],c.push(p.asReference(a));return c}.call(this))),new K(new h("arguments")));break}t=this.params;m=0;for(q=t.length;m<q;m++)l=t[m],l.isComplex()?(G=w=l.asReference(a),l.value&&(G=new A("?",w,l.value)),g.push(new D(new K(l.name),G,"\x3d",{param:!0}))):(w=l,l.value&&(n=new r(w.name.value+" \x3d\x3d null"),G=new D(new K(l.name),l.value,"\x3d"),g.push(new u(n,G)))),k||e.push(w);l=this.body.isEmpty();k&&g.unshift(k);g.length&&(d=this.body.expressions).unshift.apply(d,g);d=k=0;for(g=e.length;k<g;d=++k)p=
e[d],e[d]=p.compileToFragments(a),a.scope.parameter(Da(e[d]));x=[];this.eachParamName(function(a,b){0<=Ha.call(x,a)&&b.error("multiple parameters named "+a);return x.push(a)});l||this.noReturn||this.body.makeReturn();d="function";this.isGenerator&&(d+="*");this.ctor&&(d+=" "+this.name);g=[this.makeCode(d+"(")];d=l=0;for(k=e.length;l<k;d=++l)p=e[d],d&&g.push(this.makeCode(", ")),g.push.apply(g,p);g.push(this.makeCode(") {"));this.body.isEmpty()||(g=g.concat(this.makeCode("\n"),this.body.compileWithDeclarations(a),
this.makeCode("\n"+this.tab)));g.push(this.makeCode("}"));return this.ctor?[this.makeCode(this.tab)].concat(Aa.call(g)):this.front||a.level>=z?this.wrapInBraces(g):g};b.prototype.eachParamName=function(a){var b,e,d,c,f;c=this.params;f=[];b=0;for(e=c.length;b<e;b++)d=c[b],f.push(d.eachName(a));return f};b.prototype.traverseChildren=function(a,c){if(a)return b.__super__.traverseChildren.call(this,a,c)};return b}(a);g.Param=X=function(a){function b(a,b,e){this.name=a;this.value=b;this.splat=e;(a=Ga(this.name.unwrapAll().value))&&
this.name.error(a);this.name instanceof B&&this.name.generated&&(a=this.name.objects[0].operatorToken,a.error("unexpected "+a.value))}na(b,a);b.prototype.children=["name","value"];b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a,k)};b.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name;b["this"]?(b=b.properties[0].name.value,0<=Ha.call(L,b)&&(b="_"+b),b=new h(a.scope.freeVariable(b))):b.isComplex()&&(b=new h(a.scope.freeVariable("arg")));
b=new K(b);this.splat&&(b=new R(b));b.updateLocationDataIfMissing(this.locationData);return this.reference=b};b.prototype.isComplex=function(){return this.name.isComplex()};b.prototype.eachName=function(a,b){var e,d,c,f;null==b&&(b=this.name);e=function(b){return a("@"+b.properties[0].name.value,b)};if(b instanceof r)return a(b.value,b);if(b instanceof K)return e(b);b=null!=(d=b.objects)?d:[];d=0;for(c=b.length;d<c;d++)f=b[d],f instanceof D&&null==f.context&&(f=f.variable),f instanceof D?(f.value instanceof
D&&(f=f.value),this.eachName(a,f.value.unwrap())):f instanceof R?(f=f.name.unwrap(),a(f.value,f)):f instanceof K?f.isArray()||f.isObject()?this.eachName(a,f.base):f["this"]?e(f):a(f.base.value,f.base):f instanceof y||f.error("illegal parameter "+f.compile())};return b}(a);g.Splat=R=function(a){function b(a){this.name=a.compile?a:new r(a)}na(b,a);b.prototype.children=["name"];b.prototype.isAssignable=ja;b.prototype.assigns=function(a){return this.name.assigns(a)};b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a)};
b.prototype.unwrap=function(){return this.name};b.compileSplattedArray=function(a,c,e){var d,f,g,q,h,l;for(q=-1;(d=c[++q])&&!(d instanceof b););if(q>=c.length)return[];if(1===c.length)return d=c[0],c=d.compileToFragments(a,k),e?c:[].concat(d.makeCode(za("slice",a)+".call("),c,d.makeCode(")"));e=c.slice(q);g=h=0;for(l=e.length;h<l;g=++h)d=e[g],f=d.compileToFragments(a,k),e[g]=d instanceof b?[].concat(d.makeCode(za("slice",a)+".call("),f,d.makeCode(")")):[].concat(d.makeCode("["),f,d.makeCode("]"));
if(0===q)return d=c[0],a=d.joinFragmentArrays(e.slice(1),", "),e[0].concat(d.makeCode(".concat("),a,d.makeCode(")"));h=c.slice(0,q);l=[];f=0;for(g=h.length;f<g;f++)d=h[f],l.push(d.compileToFragments(a,k));d=c[0].joinFragmentArrays(l,", ");a=c[q].joinFragmentArrays(e,", ");e=c[c.length-1];return[].concat(c[0].makeCode("["),d,c[q].makeCode("].concat("),a,e.makeCode(")"))};return b}(a);g.Expansion=y=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isComplex=
Q;b.prototype.compileNode=function(a){return this.error("Expansion must be used inside a destructuring assignment or parameter list")};b.prototype.asReference=function(a){return this};b.prototype.eachName=function(a){};return b}(a);g.While=v=function(a){function b(a,b){this.condition=null!=b&&b.invert?a.invert():a;this.guard=null!=b?b.guard:void 0}na(b,a);b.prototype.children=["condition","guard","body"];b.prototype.isStatement=ja;b.prototype.makeReturn=function(a){if(a)return b.__super__.makeReturn.apply(this,
arguments);this.returns=!this.jumps({loop:!0});return this};b.prototype.addBody=function(a){this.body=a;return this};b.prototype.jumps=function(){var a,b,e,d;a=this.body.expressions;if(!a.length)return!1;b=0;for(d=a.length;b<d;b++)if(e=a[b],e=e.jumps({loop:!0}))return e;return!1};b.prototype.compileNode=function(a){var b,e,d;a.indent+=da;d="";b=this.body;b.isEmpty()?b=this.makeCode(""):(this.returns&&(b.makeReturn(e=a.scope.freeVariable("results")),d=""+this.tab+e+" \x3d [];\n"),this.guard&&(1<b.expressions.length?
b.expressions.unshift(new u((new C(this.guard)).invert(),new ya("continue"))):this.guard&&(b=c.wrap([new u(this.guard,b)]))),b=[].concat(this.makeCode("\n"),b.compileToFragments(a,n),this.makeCode("\n"+this.tab)));a=[].concat(this.makeCode(d+this.tab+"while ("),this.condition.compileToFragments(a,P),this.makeCode(") {"),b,this.makeCode("}"));this.returns&&a.push(this.makeCode("\n"+this.tab+"return "+e+";"));return a};return b}(a);g.Op=A=function(a){function b(a,b,g,q){if("in"===a)return new w(b,g);
if("do"===a)return this.generateDo(b);if("new"===a){if(b instanceof f&&!b["do"]&&!b.isNew)return b.newInstance();if(b instanceof m&&b.bound||b["do"])b=new C(b)}this.operator=c[a]||a;this.first=b;this.second=g;this.flip=!!q;return this}var c,g;na(b,a);c={"\x3d\x3d":"\x3d\x3d\x3d","!\x3d":"!\x3d\x3d",of:"in",yieldfrom:"yield*"};g={"!\x3d\x3d":"\x3d\x3d\x3d","\x3d\x3d\x3d":"!\x3d\x3d"};b.prototype.children=["first","second"];b.prototype.isNumber=function(){var a;return this.isUnary()&&("+"===(a=this.operator)||
"-"===a)&&this.first instanceof K&&this.first.isNumber()};b.prototype.isYield=function(){var a;return"yield"===(a=this.operator)||"yield*"===a};b.prototype.isUnary=function(){return!this.second};b.prototype.isComplex=function(){return!this.isNumber()};b.prototype.isChainable=function(){var a;return"\x3c"===(a=this.operator)||"\x3e"===a||"\x3e\x3d"===a||"\x3c\x3d"===a||"\x3d\x3d\x3d"===a||"!\x3d\x3d"===a};b.prototype.invert=function(){var a,d,c;if(this.isChainable()&&this.first.isChainable()){a=!0;
8:122,12:c,28:fa,29:Ha,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,51:N,52:J,53:r,61:[1,119],62:O,63:m,67:k,68:t,92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,137:W,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),a(Aa,Ia,{55:[1,124]}),a(Aa,[2,95]),a(Aa,[2,96]),a(Aa,[2,97]),a(Aa,[2,98]),a(b,[2,162]),a([6,31,65,70],n,{64:125,71:126,72:127,33:129,60:130,74:131,75:132,34:f,73:pa,92:p,118:e,119:d}),{30:135,31:va},{7:137,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,
20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:138,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,
25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:139,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,
34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:140,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,
43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{15:142,16:143,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:144,60:71,74:53,75:54,77:141,79:28,80:29,81:30,92:p,111:31,112:A,117:H,118:U,119:T,
130:S},{15:142,16:143,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:144,60:71,74:53,75:54,77:145,79:28,80:29,81:30,92:p,111:31,112:A,117:H,118:U,119:T,130:S},a(Ka,wa,{96:[1,149],161:[1,146],162:[1,147],175:[1,148]}),a(ta,[2,244],{151:[1,150]}),{30:151,31:va},{30:152,31:va},a(ta,[2,208]),{30:153,31:va},{7:154,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:[1,155],33:70,34:f,37:55,
38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Gb,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:142,16:143,54:144,30:156,77:158,31:va,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,
51:N,52:J,53:r,92:p,96:[1,157],112:A,117:H,118:U,119:T,130:S}),{7:159,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,
158:V,159:Z,160:K,161:ba,162:R},a(za,ab,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:160,12:c,28:fa,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,51:N,52:J,53:r,61:E,62:O,63:m,67:k,68:t,92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,137:W,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),a([1,6,
31,32,42,70,94,131,133,135,139,156],[2,66]),{33:165,34:f,39:161,40:l,41:w,92:[1,164],98:162,99:163,104:Hb},{25:168,33:169,34:f,92:[1,167],95:h,103:[1,170],107:[1,171]},a(Ka,[2,92]),a(Ka,[2,93]),a(Aa,[2,40]),a(Aa,[2,41]),a(Aa,[2,42]),a(Aa,[2,43]),a(Aa,[2,44]),a(Aa,[2,45]),a(Aa,[2,46]),a(Aa,[2,47]),{4:172,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:u,31:[1,173],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,
48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:174,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:bb,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,
53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,116:176,117:H,118:U,119:T,120:Ib,123:177,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Aa,[2,169]),a(Aa,[2,170],{35:181,36:Oa}),a([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],[2,163],
{110:183,114:ub}),{31:[2,69]},{31:[2,70]},a(La,[2,87]),a(La,[2,90]),{7:185,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,
157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:186,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,
162:R},{7:187,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:189,8:122,10:20,11:21,
12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,30:188,31:va,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{33:194,34:f,60:195,74:196,75:197,80:190,
92:p,118:e,119:T,143:191,144:[1,192],145:193},{142:198,146:[1,199],147:[1,200],148:[1,201]},a([6,31,70,94],Jb,{39:80,93:202,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,34:f,36:Oa,38:D,40:l,41:w,62:O,118:e}),a(Kb,[2,34]),a(Kb,[2,35]),a(Aa,[2,38]),{15:142,16:211,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:144,60:71,74:53,75:54,77:212,79:28,80:29,81:30,92:p,111:31,112:A,117:H,118:U,119:T,130:S},a([1,6,29,31,32,40,41,42,55,58,65,70,73,82,83,
84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[2,32]),a(Lb,[2,36]),{4:213,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:u,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,
112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ua,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:214,12:c,28:u,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,51:N,52:J,53:r,61:E,62:O,63:m,67:k,68:t,
92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,133:z,135:B,137:W,139:C,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),a(ta,[2,256]),{7:215,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,
129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:216,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,
136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:217,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,
149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:218,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,
159:Z,160:K,161:ba,162:R},{7:219,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:220,
8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:221,8:122,10:20,11:21,12:c,13:23,
14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:222,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,
20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:223,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,
25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:224,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,
34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:225,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,
43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:226,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,
50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:227,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,
61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:228,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,
74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ta,[2,207]),a(ta,[2,212]),{7:229,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,
75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ta,[2,206]),a(ta,[2,211]),{39:230,40:l,41:w,110:231,114:ub},a(La,[2,88]),a(Mb,[2,166]),{35:232,36:Oa},{35:233,36:Oa},a(La,[2,103],{35:234,36:Oa}),{35:235,36:Oa},a(La,[2,104]),{7:237,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,
28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Nb,74:53,75:54,77:40,79:28,80:29,81:30,88:236,91:238,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,121:239,122:vb,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{86:242,87:Pa,90:Qa},{110:243,114:ub},a(La,[2,89]),a(ua,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,
24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:244,12:c,28:fa,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,51:N,52:J,53:r,61:E,62:O,63:m,67:k,68:t,92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,133:ab,135:ab,139:ab,156:ab,137:W,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),a(Ma,[2,28],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,
166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:245,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,
158:V,159:Z,160:K,161:ba,162:R},{132:105,133:z,135:B,138:106,139:C,141:77,156:ya},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,163,164,165,166,167,168,169,170,171,172,173,174],na,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,8:122,12:c,28:fa,29:Ha,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,50:M,
51:N,52:J,53:r,61:E,62:O,63:m,67:k,68:t,92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,137:W,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),{6:[1,247],7:246,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:[1,248],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,
112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a([6,31],Ea,{69:251,65:[1,249],70:Ob}),a(Va,[2,74]),a(Va,[2,78],{55:[1,253],73:[1,252]}),a(Va,[2,81]),a(hb,[2,82]),a(hb,[2,83]),a(hb,[2,84]),a(hb,[2,85]),{35:181,36:Oa},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:bb,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,
47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,116:176,117:H,118:U,119:T,120:Ib,123:177,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ta,[2,68]),{4:256,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:u,32:[1,255],33:70,34:f,37:55,
38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,165,166,167,168,169,170,171,172,173,174],[2,248],{141:77,132:102,138:103,163:ea}),a(cb,
[2,249],{141:77,132:102,138:103,163:ea,165:ha}),a(cb,[2,250],{141:77,132:102,138:103,163:ea,165:ha}),a(cb,[2,251],{141:77,132:102,138:103,163:ea,165:ha}),a(ta,[2,252],{40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa}),a(Mb,Ja,{109:107,78:108,86:114,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na}),{78:118,82:Ta,83:Ga,84:Ua,85:Fa,86:114,87:Pa,90:Qa,109:117,113:Na,114:Ja},a(Pb,Ia),a(ta,[2,253],{40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa}),a(ta,[2,254]),a(ta,[2,255]),{6:[1,
259],7:257,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:[1,258],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:260,8:122,10:20,
11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{30:261,31:va,155:[1,262]},a(ta,[2,191],{126:263,
127:[1,264],128:[1,265]}),a(ta,[2,205]),a(ta,[2,213]),{31:[1,266],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{150:267,152:268,153:ib},a(ta,[2,116]),{7:270,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,
68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Gb,[2,119],{30:271,31:va,40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa,96:[1,272]}),a(Ma,[2,198],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(za,db,{141:77,132:102,138:103,159:ka,160:ca,
163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(za,[2,123]),{29:[1,273],70:[1,274]},{29:[1,275]},{31:jb,33:280,34:f,94:[1,276],100:277,101:278,103:Ya},a([29,70],[2,139]),{102:[1,282]},{31:wb,33:287,34:f,94:[1,283],103:eb,106:284,108:285},a(za,[2,143]),{55:[1,289]},{7:290,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,
51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{29:[1,291]},{6:xa,131:[1,292]},{4:293,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:u,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,
49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a([6,31,70,120],Qb,{141:77,132:102,138:103,121:294,73:[1,295],122:vb,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(xb,[2,172]),a([6,31,120],
Ea,{69:296,70:kb}),a(Ra,[2,181]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:bb,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,116:298,117:H,118:U,119:T,123:177,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,
157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ra,[2,187]),a(Ra,[2,188]),a(Rb,[2,171]),a(Rb,[2,33]),a(b,[2,164]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:bb,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,115:[1,299],116:300,117:H,118:U,119:T,123:177,125:I,
129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{30:301,31:va,132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},a(Sb,[2,201],{141:77,132:102,138:103,133:z,134:[1,302],135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Sb,[2,203],{141:77,132:102,138:103,133:z,134:[1,303],
135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(ta,[2,209]),a(Za,[2,210],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],[2,214],{140:[1,304]}),a(lb,[2,217]),{33:194,34:f,60:195,74:196,75:197,92:p,118:e,119:d,143:305,145:193},
a(lb,[2,223],{70:[1,306]}),a(mb,[2,219]),a(mb,[2,220]),a(mb,[2,221]),a(mb,[2,222]),a(ta,[2,216]),{7:307,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,
141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:308,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,
158:V,159:Z,160:K,161:ba,162:R},{7:309,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},
a(nb,Ea,{69:310,70:Tb}),a(Ba,[2,111]),a(Ba,[2,51],{58:[1,312]}),a(Ub,[2,60],{55:[1,313]}),a(Ba,[2,56]),a(Ub,[2,61]),a(yb,[2,57]),a(yb,[2,58]),a(yb,[2,59]),{46:[1,314],78:118,82:Ta,83:Ga,84:Ua,85:Fa,86:114,87:Pa,90:Qa,109:117,113:Na,114:Ja},a(Pb,wa),{6:xa,42:[1,315]},a(ua,[2,4]),a(Vb,[2,257],{141:77,132:102,138:103,163:ea,164:ga,165:ha}),a(Vb,[2,258],{141:77,132:102,138:103,163:ea,164:ga,165:ha}),a(cb,[2,259],{141:77,132:102,138:103,163:ea,165:ha}),a(cb,[2,260],{141:77,132:102,138:103,163:ea,165:ha}),
a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,166,167,168,169,170,171,172,173,174],[2,261],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173],[2,262],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,168,169,170,171,172,173],[2,263],{141:77,132:102,138:103,159:ka,160:ca,
163:ea,164:ga,165:ha,166:la,167:oa,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,169,170,171,172,173],[2,264],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,170,171,172,173],[2,265],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,171,172,
173],[2,266],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,172,173],[2,267],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,173],[2,268],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,
174:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173,174],[2,269],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la}),a(Za,[2,247],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Za,[2,246],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(b,
[2,159]),a(b,[2,160]),a(La,[2,99]),a(La,[2,100]),a(La,[2,101]),a(La,[2,102]),{89:[1,316]},{73:Nb,89:[2,107],121:317,122:vb,132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{89:[2,108]},{7:318,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,
60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,180],92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Wb,[2,174]),a(Wb,Xb),a(La,[2,106]),a(b,[2,161]),a(ua,[2,64],{141:77,132:102,138:103,133:db,135:db,139:db,156:db,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ma,[2,29],{141:77,132:102,
138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ma,[2,48],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:319,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,
75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:320,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,
92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{66:321,67:k,68:t},a(Sa,fb,{72:127,33:129,60:130,74:131,75:132,71:322,34:f,73:pa,92:p,118:e,119:d}),{6:Yb,31:Zb},a(Va,[2,79]),{7:325,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,
51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ra,Qb,{141:77,132:102,138:103,73:[1,326],133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a($b,[2,30]),{6:xa,32:[1,327]},a(Ma,[2,270],{141:77,132:102,
138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:328,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,
138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:329,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,
155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ma,[2,273],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(ta,[2,245]),{7:330,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,
105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ta,[2,192],{127:[1,331]}),{30:332,31:va},{30:335,31:va,33:333,34:f,75:334,92:p},{150:336,152:268,153:ib},{32:[1,337],151:[1,338],152:339,153:ib},a(ob,[2,238]),{7:341,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,
47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,124:340,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(ac,[2,117],{141:77,132:102,138:103,30:342,31:va,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(ta,[2,120]),{7:343,8:122,10:20,
11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{39:344,40:l,41:w},{92:[1,346],99:345,104:Hb},{39:347,
40:l,41:w},{29:[1,348]},a(nb,Ea,{69:349,70:pb}),a(Ba,[2,130]),{31:jb,33:280,34:f,100:351,101:278,103:Ya},a(Ba,[2,135],{102:[1,352]}),a(Ba,[2,137],{102:[1,353]}),{33:354,34:f},a(za,[2,141]),a(nb,Ea,{69:355,70:zb}),a(Ba,[2,150]),{31:wb,33:287,34:f,103:eb,106:357,108:285},a(Ba,[2,155],{102:[1,358]}),a(Ba,[2,158]),{6:[1,360],7:359,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:[1,361],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,
45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ab,[2,147],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{39:362,40:l,41:w},a(Aa,[2,199]),{6:xa,32:[1,363]},
{7:364,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a([12,28,34,38,40,41,44,45,48,
49,50,51,52,53,61,62,63,67,68,92,95,97,105,112,117,118,119,125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb,{6:gb,31:gb,70:gb,120:gb}),{6:qb,31:rb,120:[1,365]},a([6,31,32,115,120],fb,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,76:179,7:254,123:368,12:c,28:fa,34:f,38:D,40:l,41:w,44:G,45:F,48:x,49:v,
50:M,51:N,52:J,53:r,61:E,62:O,63:m,67:k,68:t,73:Wa,92:p,95:h,97:y,105:P,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,133:z,135:B,137:W,139:C,149:Q,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R}),a(Sa,Ea,{69:369,70:kb}),a(b,[2,167]),a([6,31,115],Ea,{69:370,70:kb}),a(bc,[2,242]),{7:371,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,
62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:372,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,
75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:373,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,
92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(lb,[2,218]),{33:194,34:f,60:195,74:196,75:197,92:p,118:e,119:d,145:374},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,156],[2,225],{141:77,132:102,138:103,134:[1,375],140:[1,376],159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Bb,[2,226],{141:77,132:102,
138:103,134:[1,377],159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Bb,[2,232],{141:77,132:102,138:103,134:[1,378],159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{6:cc,31:dc,94:[1,379]},a(Cb,fb,{39:80,57:204,59:205,11:206,37:207,33:208,35:209,60:210,56:382,34:f,36:Oa,38:D,40:l,41:w,62:O,118:e}),{7:383,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,
26:18,27:19,28:fa,31:[1,384],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:385,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,
31:[1,386],33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Aa,[2,39]),a(Lb,[2,37]),a(La,[2,105]),{7:387,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,
26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,178],92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{89:[2,179],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,
171:da,172:ma,173:sa,174:ia},a(Ma,[2,49],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{32:[1,388],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{30:389,31:va},a(Va,[2,75]),{33:129,34:f,60:130,71:390,72:127,73:pa,74:131,75:132,92:p,118:e,119:d},a(ec,n,{71:126,72:127,33:129,60:130,74:131,75:132,64:391,34:f,73:pa,92:p,118:e,
119:d}),a(Va,[2,80],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ra,gb),a($b,[2,31]),{32:[1,392],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},a(Ma,[2,272],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{30:393,31:va,132:102,
133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{30:394,31:va},a(ta,[2,193]),{30:395,31:va},{30:396,31:va},a(Db,[2,197]),{32:[1,397],151:[1,398],152:339,153:ib},a(ta,[2,236]),{30:399,31:va},a(ob,[2,239]),{30:400,31:va,70:[1,401]},a(fc,[2,189],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(ta,[2,118]),a(ac,[2,
121],{141:77,132:102,138:103,30:402,31:va,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(za,[2,124]),{29:[1,403]},{31:jb,33:280,34:f,100:404,101:278,103:Ya},a(za,[2,125]),{39:405,40:l,41:w},{6:sb,31:tb,94:[1,406]},a(Cb,fb,{33:280,101:409,34:f,103:Ya}),a(Sa,Ea,{69:410,70:pb}),{33:411,34:f},{33:412,34:f},{29:[2,140]},{6:Eb,31:Fb,94:[1,413]},a(Cb,fb,{33:287,108:416,34:f,103:eb}),a(Sa,Ea,{69:417,70:zb}),{33:418,34:f,103:[1,419]},
a(Ab,[2,144],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:420,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,
129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:421,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,
136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(za,[2,148]),{131:[1,422]},{120:[1,423],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},a(xb,[2,173]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,
54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,123:424,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,31:bb,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,
60:71,61:E,62:O,63:m,66:33,67:k,68:t,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,116:425,117:H,118:U,119:T,123:177,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ra,[2,182]),{6:qb,31:rb,32:[1,426]},{6:qb,31:rb,115:[1,427]},a(Za,[2,202],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Za,
[2,204],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Za,[2,215],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(lb,[2,224]),{7:428,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,
49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:429,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,
60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:430,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,
68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:431,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,
80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(xb,[2,109]),{11:206,33:208,34:f,35:209,36:Oa,37:207,38:D,39:80,40:l,41:w,56:432,57:204,59:205,60:210,62:O,118:e},a(ec,Jb,{39:80,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,93:433,34:f,36:Oa,38:D,40:l,41:w,62:O,118:e}),a(Ba,[2,112]),a(Ba,[2,52],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,
160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:434,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,
149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},a(Ba,[2,54],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{7:435,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,
81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{89:[2,177],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},a(ta,[2,50]),a(ta,[2,67]),a(Va,[2,76]),a(Sa,Ea,{69:436,70:Ob}),a(ta,[2,271]),a(bc,[2,243]),a(ta,[2,194]),a(Db,[2,195]),a(Db,[2,196]),a(ta,[2,234]),{30:437,31:va},
{32:[1,438]},a(ob,[2,240],{6:[1,439]}),{7:440,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,
162:R},a(ta,[2,122]),{39:441,40:l,41:w},a(nb,Ea,{69:442,70:pb}),a(za,[2,126]),{29:[1,443]},{33:280,34:f,101:444,103:Ya},{31:jb,33:280,34:f,100:445,101:278,103:Ya},a(Ba,[2,131]),{6:sb,31:tb,32:[1,446]},a(Ba,[2,136]),a(Ba,[2,138]),a(za,[2,142],{29:[1,447]}),{33:287,34:f,103:eb,108:448},{31:wb,33:287,34:f,103:eb,106:449,108:285},a(Ba,[2,151]),{6:Eb,31:Fb,32:[1,450]},a(Ba,[2,156]),a(Ba,[2,157]),a(Ab,[2,145],{141:77,132:102,138:103,133:z,135:B,139:C,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,
169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),{32:[1,451],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},a(Aa,[2,200]),a(Aa,[2,176]),a(Ra,[2,183]),a(Sa,Ea,{69:452,70:kb}),a(Ra,[2,184]),a(b,[2,168]),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156],[2,227],{141:77,132:102,138:103,140:[1,453],159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),
a(Bb,[2,229],{141:77,132:102,138:103,134:[1,454],159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ma,[2,228],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ma,[2,233],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ba,[2,113]),a(Sa,Ea,{69:455,70:Tb}),{32:[1,456],132:102,133:z,135:B,138:103,139:C,
141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{32:[1,457],132:102,133:z,135:B,138:103,139:C,141:77,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia},{6:Yb,31:Zb,32:[1,458]},{32:[1,459]},a(ta,[2,237]),a(ob,[2,241]),a(fc,[2,190],{141:77,132:102,138:103,133:z,135:B,139:C,156:qa,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(za,
[2,128]),{6:sb,31:tb,94:[1,460]},{39:461,40:l,41:w},a(Ba,[2,132]),a(Sa,Ea,{69:462,70:pb}),a(Ba,[2,133]),{39:463,40:l,41:w},a(Ba,[2,152]),a(Sa,Ea,{69:464,70:zb}),a(Ba,[2,153]),a(za,[2,146]),{6:qb,31:rb,32:[1,465]},{7:466,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,
92:p,95:h,97:y,105:P,111:31,112:A,117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{7:467,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:fa,33:70,34:f,37:55,38:D,39:80,40:l,41:w,43:57,44:G,45:F,47:27,48:x,49:v,50:M,51:N,52:J,53:r,54:26,60:71,61:E,62:O,63:m,66:33,67:k,68:t,74:53,75:54,77:40,79:28,80:29,81:30,92:p,95:h,97:y,105:P,111:31,112:A,
117:H,118:U,119:T,125:I,129:aa,130:S,132:43,133:z,135:B,136:44,137:W,138:45,139:C,141:77,149:Q,154:41,155:X,157:Y,158:V,159:Z,160:K,161:ba,162:R},{6:cc,31:dc,32:[1,468]},a(Ba,[2,53]),a(Ba,[2,55]),a(Va,[2,77]),a(ta,[2,235]),{29:[1,469]},a(za,[2,127]),{6:sb,31:tb,32:[1,470]},a(za,[2,149]),{6:Eb,31:Fb,32:[1,471]},a(Ra,[2,185]),a(Ma,[2,230],{141:77,132:102,138:103,159:ka,160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ma,[2,231],{141:77,132:102,138:103,159:ka,
160:ca,163:ea,164:ga,165:ha,166:la,167:oa,168:L,169:ja,170:ra,171:da,172:ma,173:sa,174:ia}),a(Ba,[2,114]),{39:472,40:l,41:w},a(Ba,[2,134]),a(Ba,[2,154]),a(za,[2,129])],defaultActions:{68:[2,69],69:[2,70],238:[2,108],354:[2,140]},parseError:function(a,b){if(b.recoverable)this.trace(a);else{var d=function(a,b){this.message=a;this.hash=b};d.prototype=Error;throw new d(a,b);}},parse:function(a){var b=[0],d=[null],e=[],n=this.table,pa="",c=0,f=0,g=0,h=e.slice.call(arguments,1),va=Object.create(this.lexer),
k={},Ka;for(Ka in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ka)&&(k[Ka]=this.yy[Ka]);va.setInput(a,k);k.lexer=va;k.parser=this;"undefined"==typeof va.yylloc&&(va.yylloc={});Ka=va.yylloc;e.push(Ka);var m=va.options&&va.options.ranges;this.parseError="function"===typeof k.parseError?k.parseError:Object.getPrototypeOf(this).parseError;for(var t,p,Ia,l,r={},y,q;;){Ia=b[b.length-1];if(this.defaultActions[Ia])l=this.defaultActions[Ia];else{if(null===t||"undefined"==typeof t)t=va.lex()||1,"number"!==
typeof t&&(t=this.symbols_[t]||t);l=n[Ia]&&n[Ia][t]}if("undefined"===typeof l||!l.length||!l[0]){var wa;q=[];for(y in n[Ia])this.terminals_[y]&&2<y&&q.push("'"+this.terminals_[y]+"'");wa=va.showPosition?"Parse error on line "+(c+1)+":\n"+va.showPosition()+"\nExpecting "+q.join(", ")+", got '"+(this.terminals_[t]||t)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==t?"end of input":"'"+(this.terminals_[t]||t)+"'");this.parseError(wa,{text:va.match,token:this.terminals_[t]||t,line:va.yylineno,loc:Ka,
expected:q})}if(l[0]instanceof Array&&1<l.length)throw Error("Parse Error: multiple actions possible at state: "+Ia+", token: "+t);switch(l[0]){case 1:b.push(t);d.push(va.yytext);e.push(va.yylloc);b.push(l[1]);t=null;p?(t=p,p=null):(f=va.yyleng,pa=va.yytext,c=va.yylineno,Ka=va.yylloc,0<g&&g--);break;case 2:q=this.productions_[l[1]][1];r.$=d[d.length-q];r._$={first_line:e[e.length-(q||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(q||1)].first_column,last_column:e[e.length-
1].last_column};m&&(r._$.range=[e[e.length-(q||1)].range[0],e[e.length-1].range[1]]);Ia=this.performAction.apply(r,[pa,f,c,k,l[1],d,e].concat(h));if("undefined"!==typeof Ia)return Ia;q&&(b=b.slice(0,-2*q),d=d.slice(0,-1*q),e=e.slice(0,-1*q));b.push(this.productions_[l[1]][0]);d.push(r.$);e.push(r._$);l=n[b[b.length-2]][b[b.length-1]];b.push(l);break;case 3:return!0}}}};g.prototype=gc;gc.Parser=g;return new g}();"undefined"!==typeof u&&"undefined"!==typeof g&&(g.parser=xa,g.Parser=xa.Parser,g.parse=
function(){return xa.parse.apply(xa,arguments)},g.main=function(q){q[1]||(console.log("Usage: "+q[0]+" FILE"),process.exit(1));var a="",c=u("fs");"undefined"!==typeof c&&null!==c&&(a=c.readFileSync(u("path").normalize(q[1]),"utf8"));return g.parser.parse(a)},"undefined"!==typeof ua&&u.main===ua&&g.main(process.argv.slice(1)));return ua.exports}();u["./scope"]=function(){var g={};(function(){var u=[].indexOf||function(g){for(var q=0,a=this.length;q<a;q++)if(q in this&&this[q]===g)return q;return-1};
g.Scope=function(){function g(g,a,c,u){var f,q;this.parent=g;this.expressions=a;this.method=c;this.referencedVars=u;this.variables=[{name:"arguments",type:"arguments"}];this.positions={};this.parent||(this.utilities={});this.root=null!=(f=null!=(q=this.parent)?q.root:void 0)?f:this}g.prototype.add=function(g,a,c){return this.shared&&!c?this.parent.add(g,a,c):Object.prototype.hasOwnProperty.call(this.positions,g)?this.variables[this.positions[g]].type=a:this.positions[g]=this.variables.push({name:g,
type:a})-1};g.prototype.namedMethod=function(){var g;return null!=(g=this.method)&&g.name||!this.parent?this.method:this.parent.namedMethod()};g.prototype.find=function(g,a){null==a&&(a="var");if(this.check(g))return!0;this.add(g,a);return!1};g.prototype.parameter=function(g){if(!this.shared||!this.parent.check(g,!0))return this.add(g,"param")};g.prototype.check=function(g){var a;return!!(this.type(g)||null!=(a=this.parent)&&a.check(g))};g.prototype.temporary=function(g,a,c){null==c&&(c=!1);return c?
(c=g.charCodeAt(0),g=122-c,c=String.fromCharCode(c+a%(g+1)),a=Math.floor(a/(g+1)),""+c+(a||"")):""+g+(a||"")};g.prototype.type=function(g){var a,c,q,f;q=this.variables;a=0;for(c=q.length;a<c;a++)if(f=q[a],f.name===g)return f.type;return null};g.prototype.freeVariable=function(g,a){var c,q,f;null==a&&(a={});for(c=0;;){f=this.temporary(g,c,a.single);if(!(this.check(f)||0<=u.call(this.root.referencedVars,f)))break;c++}(null!=(q=a.reserve)?q:1)&&this.add(f,"var",!0);return f};g.prototype.assign=function(g,
a){this.add(g,{value:a,assigned:!0},!0);return this.hasAssignments=!0};g.prototype.hasDeclarations=function(){return!!this.declaredVariables().length};g.prototype.declaredVariables=function(){var g,a,c,u,f;u=this.variables;f=[];a=0;for(c=u.length;a<c;a++)g=u[a],"var"===g.type&&f.push(g.name);return f.sort()};g.prototype.assignedVariables=function(){var g,a,c,u,f;c=this.variables;u=[];g=0;for(a=c.length;g<a;g++)f=c[g],f.type.assigned&&u.push(f.name+" \x3d "+f.type.value);return u};return g}()}).call(this);
return g}();u["./nodes"]=function(){var g={};(function(){var ua,qa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E,O,m,k,t,p,h,y,P,A,H,U,T,I,aa,S,z,B,W,C,Q,X,Y,V,Z,K,ba,R,ya,$a,Xa,ka,ca,ea,ga,ha,la,oa,L,ja,ra,da,ma,sa,ia,Da,ta,Ja,Ta,Ga,Ua,Fa,Pa,Qa,Na,za,na=function(a,b){function n(){this.constructor=a}for(var pa in b)fa.call(b,pa)&&(a[pa]=b[pa]);n.prototype=b.prototype;a.prototype=new n;a.__super__=b.prototype;return a},fa={}.hasOwnProperty,Ha=[].indexOf||function(a){for(var b=0,n=this.length;b<n;b++)if(b in this&&
this[b]===a)return b;return-1},Aa=[].slice;Error.stackTraceLimit=Infinity;K=u("./scope").Scope;a=u("./lexer");Ga=a.isUnassignable;k=a.JS_FORBIDDEN;v=u("./helpers");da=v.compact;ia=v.flatten;sa=v.extend;Fa=v.merge;ma=v.del;a=v.addLocationDataFn;Ua=v.locationDataToString;Qa=v.throwSyntaxError;g.extend=sa;g.addLocationDataFn=a;ja=function(){return!0};I=function(){return!1};ea=function(){return this};T=function(){this.negated=!this.negated;return this};g.CodeFragment=w=function(){function a(a,n){var b;
this.code=""+n;this.locationData=null!=a?a.locationData:void 0;this.type=(null!=a?null!=(b=a.constructor)?b.name:void 0:void 0)||"unknown"}a.prototype.toString=function(){return""+this.code+(this.locationData?": "+Ua(this.locationData):"")};return a}();Da=function(a){var b,n,pa,e;e=[];n=0;for(pa=a.length;n<pa;n++)b=a[n],e.push(b.code);return e.join("")};g.Base=a=function(){function a(){}a.prototype.compile=function(a,n){return Da(this.compileToFragments(a,n))};a.prototype.compileToFragments=function(a,
n){a=sa({},a);n&&(a.level=n);n=this.unfoldSoak(a)||this;n.tab=a.indent;return a.level!==A&&n.isStatement(a)?n.compileClosure(a):n.compileNode(a)};a.prototype.compileClosure=function(a){var b,pa,e,d;(e=this.jumps())&&e.error("cannot use a pure statement in an expression");a.sharedScope=!0;e=new l([],c.wrap([this]));b=[];if((pa=this.contains(Ja))||this.contains(Ta))b=[new ga],pa?(pa="apply",b.push(new r("arguments"))):pa="call",e=new L(e,[new ua(new Q(pa))]);a=(new f(e,b)).compileNode(a);if(e.isGenerator||
null!=(d=e.base)&&d.isGenerator)a.unshift(this.makeCode("(yield* ")),a.push(this.makeCode(")"));return a};a.prototype.cache=function(a,n,pa){var b;if(null!=pa?pa(this):this.isComplex())return pa=new r(a.scope.freeVariable("ref")),b=new q(pa,this),n?[b.compileToFragments(a,n),[this.makeCode(pa.value)]]:[b,pa];pa=n?this.compileToFragments(a,n):this;return[pa,pa]};a.prototype.cacheToCodeFragments=function(a){return[Da(a[0]),Da(a[1])]};a.prototype.makeReturn=function(a){var b;b=this.unwrapAll();return a?
new f(new H(a+".push"),[b]):new V(b)};a.prototype.contains=function(a){var b;b=void 0;this.traverseChildren(!1,function(n){if(a(n))return b=n,!1});return b};a.prototype.lastNonComment=function(a){var b;for(b=a.length;b--;)if(!(a[b]instanceof G))return a[b];return null};a.prototype.toString=function(a,n){var b;null==a&&(a="");null==n&&(n=this.constructor.name);b="\n"+a+n;this.soak&&(b+="?");this.eachChild(function(e){return b+=e.toString(a+ca)});return b};a.prototype.eachChild=function(a){var b,pa,
e,d,c,f,g;if(!this.children)return this;f=this.children;pa=0;for(d=f.length;pa<d;pa++)if(b=f[pa],this[b])for(g=ia([this[b]]),e=0,c=g.length;e<c;e++)if(b=g[e],!1===a(b))return this;return this};a.prototype.traverseChildren=function(a,n){return this.eachChild(function(b){if(!1!==n(b))return b.traverseChildren(a,n)})};a.prototype.invert=function(){return new B("!",this)};a.prototype.unwrapAll=function(){var a;for(a=this;a!==(a=a.unwrap()););return a};a.prototype.children=[];a.prototype.isStatement=I;
a.prototype.jumps=I;a.prototype.isComplex=ja;a.prototype.isChainable=I;a.prototype.isAssignable=I;a.prototype.isNumber=I;a.prototype.unwrap=ea;a.prototype.unfoldSoak=I;a.prototype.assigns=I;a.prototype.updateLocationDataIfMissing=function(a){if(this.locationData)return this;this.locationData=a;return this.eachChild(function(b){return b.updateLocationDataIfMissing(a)})};a.prototype.error=function(a){return Qa(a,this.locationData)};a.prototype.makeCode=function(a){return new w(this,a)};a.prototype.wrapInBraces=
function(a){return[].concat(this.makeCode("("),a,this.makeCode(")"))};a.prototype.joinFragmentArrays=function(a,n){var b,e,d,c,f;b=[];d=c=0;for(f=a.length;c<f;d=++c)e=a[d],d&&b.push(this.makeCode(n)),b=b.concat(e);return b};return a}();g.Block=c=function(a){function b(a){this.expressions=da(ia(a||[]))}na(b,a);b.prototype.children=["expressions"];b.prototype.push=function(a){this.expressions.push(a);return this};b.prototype.pop=function(){return this.expressions.pop()};b.prototype.unshift=function(a){this.expressions.unshift(a);
return this};b.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this};b.prototype.isEmpty=function(){return!this.expressions.length};b.prototype.isStatement=function(a){var b,e,d,n;n=this.expressions;e=0;for(d=n.length;e<d;e++)if(b=n[e],b.isStatement(a))return!0;return!1};b.prototype.jumps=function(a){var b,e,d,n;n=this.expressions;e=0;for(d=n.length;e<d;e++)if(b=n[e],b=b.jumps(a))return b};b.prototype.makeReturn=function(a){var b,e;for(e=this.expressions.length;e--;)if(b=
this.expressions[e],!(b instanceof G)){this.expressions[e]=b.makeReturn(a);b instanceof V&&!b.expression&&this.expressions.splice(e,1);break}return this};b.prototype.compileToFragments=function(a,pa){null==a&&(a={});return a.scope?b.__super__.compileToFragments.call(this,a,pa):this.compileRoot(a)};b.prototype.compileNode=function(a){var n,e,d,c,f,g,k;this.tab=a.indent;k=a.level===A;e=[];g=this.expressions;d=n=0;for(c=g.length;n<c;d=++n)f=g[d],f=f.unwrapAll(),f=f.unfoldSoak(a)||f,f instanceof b?e.push(f.compileNode(a)):
k?(f.front=!0,d=f.compileToFragments(a),f.isStatement(a)||(d.unshift(this.makeCode(""+this.tab)),d.push(this.makeCode(";"))),e.push(d)):e.push(f.compileToFragments(a,h));if(k)return this.spaced?[].concat(this.joinFragmentArrays(e,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(e,"\n");n=e.length?this.joinFragmentArrays(e,", "):[this.makeCode("void 0")];return 1<e.length&&a.level>=h?this.wrapInBraces(n):n};b.prototype.compileRoot=function(a){var b,e,d,n,c;a.indent=a.bare?"":ca;a.level=A;this.spaced=
!0;a.scope=new K(null,this,null,null!=(d=a.referencedVars)?d:[]);c=a.locals||[];d=0;for(e=c.length;d<e;d++)n=c[d],a.scope.parameter(n);d=[];if(!a.bare){var f;f=this.expressions;e=[];b=n=0;for(c=f.length;n<c;b=++n){b=f[b];if(!(b.unwrap()instanceof G))break;e.push(b)}n=this.expressions.slice(e.length);this.expressions=e;e.length&&(d=this.compileNode(Fa(a,{indent:""})),d.push(this.makeCode("\n")));this.expressions=n}e=this.compileWithDeclarations(a);return a.bare?e:[].concat(d,this.makeCode("(function() {\n"),
e,this.makeCode("\n}).call(this);\n"))};b.prototype.compileWithDeclarations=function(a){var b,e,d,n,c,f;d=[];f=this.expressions;n=c=0;for(b=f.length;c<b&&(e=f[n],e=e.unwrap(),e instanceof G||e instanceof H);n=++c);a=Fa(a,{level:A});n&&(e=this.expressions.splice(n,9E9),d=[this.spaced,!1],c=d[0],this.spaced=d[1],c=[this.compileNode(a),c],d=c[0],this.spaced=c[1],this.expressions=e);e=this.compileNode(a);c=a.scope;c.expressions===this&&(b=a.scope.hasDeclarations(),a=c.hasAssignments,b||a?(n&&d.push(this.makeCode("\n")),
d.push(this.makeCode(this.tab+"var ")),b&&d.push(this.makeCode(c.declaredVariables().join(", "))),a&&(b&&d.push(this.makeCode(",\n"+(this.tab+ca))),d.push(this.makeCode(c.assignedVariables().join(",\n"+(this.tab+ca))))),d.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):d.length&&e.length&&d.push(this.makeCode("\n")));return d.concat(e)};b.wrap=function(a){return 1===a.length&&a[0]instanceof b?a[0]:new b(a)};return b}(a);g.Literal=H=function(a){function b(a){this.value=a}na(b,a);b.prototype.isComplex=
I;b.prototype.assigns=function(a){return a===this.value};b.prototype.compileNode=function(a){return[this.makeCode(this.value)]};b.prototype.toString=function(){return" "+(this.isStatement()?b.__super__.toString.apply(this,arguments):this.constructor.name)+": "+this.value};return b}(a);g.NumberLiteral=S=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(H);g.InfinityLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,
a);b.prototype.compileNode=function(){return[this.makeCode("2e308")]};return b}(S);g.NaNLiteral=function(a){function b(){b.__super__.constructor.call(this,"NaN")}na(b,a);b.prototype.compileNode=function(a){var b;b=[this.makeCode("0/0")];return a.level>=y?this.wrapInBraces(b):b};return b}(S);g.StringLiteral=$a=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(H);g.RegexLiteral=Y=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}
na(b,a);return b}(H);g.PassthroughLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(H);g.IdentifierLiteral=r=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(H);g.PropertyName=Q=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(H);g.StatementLiteral=ya=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}na(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=ea;b.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};b.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};return b}(H);g.ThisLiteral=ga=function(a){function b(){b.__super__.constructor.call(this,"this")}na(b,a);b.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context:
this.value;return[this.makeCode(a)]};return b}(H);g.UndefinedLiteral=oa=function(a){function b(){b.__super__.constructor.call(this,"undefined")}na(b,a);b.prototype.compileNode=function(a){return[this.makeCode(a.level>=t?"(void 0)":"void 0")]};return b}(H);g.NullLiteral=aa=function(a){function b(){b.__super__.constructor.call(this,"null")}na(b,a);return b}(H);g.BooleanLiteral=Ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(H);g.Return=V=function(a){function b(a){this.expression=
a}na(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.makeReturn=ea;b.prototype.jumps=ea;b.prototype.compileToFragments=function(a,pa){var e,d;e=null!=(d=this.expression)?d.makeReturn():void 0;return!e||e instanceof b?b.__super__.compileToFragments.call(this,a,pa):e.compileToFragments(a,pa)};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,
P)));b.push(this.makeCode(";"));return b};return b}(a);g.YieldReturn=ra=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(a){null==a.scope.parent&&this.error("yield can only occur inside functions");return b.__super__.compileNode.apply(this,arguments)};return b}(V);g.Value=L=function(a){function b(a,pa,e){if(!pa&&a instanceof b)return a;this.base=a;this.properties=pa||[];e&&(this[e]=!0);return this}na(b,a);b.prototype.children=["base",
"properties"];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(qa)};b.prototype.isRange=function(){return this.bareLiteral(X)};b.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()};b.prototype.isAssignable=function(){return this.hasProperties()||
this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(S)};b.prototype.isString=function(){return this.bareLiteral($a)};b.prototype.isRegex=function(){return this.bareLiteral(Y)};b.prototype.isUndefined=function(){return this.bareLiteral(oa)};b.prototype.isNull=function(){return this.bareLiteral(aa)};b.prototype.isBoolean=function(){return this.bareLiteral(Ca)};b.prototype.isAtomic=function(){var a,b,e,d;d=this.properties.concat(this.base);a=0;for(b=d.length;a<b;a++)if(e=
d[a],e.soak||e instanceof f)return!1;return!0};b.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||this.isBoolean()};b.prototype.isStatement=function(a){return!this.properties.length&&this.base.isStatement(a)};b.prototype.assigns=function(a){return!this.properties.length&&this.base.assigns(a)};b.prototype.jumps=function(a){return!this.properties.length&&this.base.jumps(a)};
b.prototype.isObject=function(a){return this.properties.length?!1:this.base instanceof z&&(!a||this.base.generated)};b.prototype.isSplice=function(){var a;a=this.properties;return a[a.length-1]instanceof ba};b.prototype.looksStatic=function(a){var b;return this.base.value===a&&1===this.properties.length&&"prototype"!==(null!=(b=this.properties[0].name)?b.value:void 0)};b.prototype.unwrap=function(){return this.properties.length?this:this.base};b.prototype.cacheReference=function(a){var n,e,d,c;n=
this.properties;d=n[n.length-1];if(2>this.properties.length&&!this.base.isComplex()&&(null==d||!d.isComplex()))return[this,this];n=new b(this.base,this.properties.slice(0,-1));n.isComplex()&&(e=new r(a.scope.freeVariable("base")),n=new b(new C(new q(e,n))));if(!d)return[n,e];d.isComplex()&&(c=new r(a.scope.freeVariable("name")),d=new m(new q(c,d.index)),c=new m(c));return[n.add(d),new b(e||n.base,[c||d])]};b.prototype.compileNode=function(a){var b,e,d,n,c;this.base.front=this.front;c=this.properties;
b=this.base.compileToFragments(a,c.length?t:null);c.length&&Z.test(Da(b))&&b.push(this.makeCode("."));e=0;for(d=c.length;e<d;e++)n=c[e],b.push.apply(b,n.compileToFragments(a));return b};b.prototype.unfoldSoak=function(a){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var e,d,c,pa,f;if(d=n.base.unfoldSoak(a))return(e=d.body.properties).push.apply(e,n.properties),d;f=n.properties;d=e=0;for(c=f.length;e<c;d=++e)if(pa=f[d],pa.soak)return pa.soak=!1,e=
new b(n.base,n.properties.slice(0,d)),c=new b(n.base,n.properties.slice(d)),e.isComplex()&&(d=new r(a.scope.freeVariable("ref")),e=new C(new q(d,e)),c.base=d),new E(new F(e),c,{soak:!0});return!1}}(this)()};return b}(a);g.Comment=G=function(a){function b(a){this.comment=a}na(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=ea;b.prototype.compileNode=function(a,b){var e;e=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *");e="/*"+Pa(e,this.tab)+(0<=Ha.call(e,"\n")?"\n"+this.tab:"")+" */";(b||a.level)===
A&&(e=a.indent+e);return[this.makeCode("\n"),this.makeCode(e)]};return b}(a);g.Call=f=function(a){function b(a,b,e){this.variable=a;this.args=null!=b?b:[];this.soak=e;this.isNew=!1;this.variable instanceof L&&this.variable.isNotCallable()&&this.variable.error("literal is not a function")}na(b,a);b.prototype.children=["variable","args"];b.prototype.updateLocationDataIfMissing=function(a){var n,e;this.locationData&&this.needsUpdatedStartLocation&&(this.locationData.first_line=a.first_line,this.locationData.first_column=
a.first_column,n=(null!=(e=this.variable)?e.base:void 0)||this.variable,n.needsUpdatedStartLocation&&(this.variable.locationData.first_line=a.first_line,this.variable.locationData.first_column=a.first_column,n.updateLocationDataIfMissing(a)),delete this.needsUpdatedStartLocation);return b.__super__.updateLocationDataIfMissing.apply(this,arguments)};b.prototype.newInstance=function(){var a,c;a=(null!=(c=this.variable)?c.base:void 0)||this.variable;a instanceof b&&!a.isNew?a.newInstance():this.isNew=
!0;this.needsUpdatedStartLocation=!0;return this};b.prototype.unfoldSoak=function(a){var n,e,d,c,f;if(this.soak){if(this instanceof ka)n=new H(this.superReference(a)),e=new L(n);else{if(e=Na(a,this,"variable"))return e;e=(new L(this.variable)).cacheReference(a);n=e[0];e=e[1]}e=new b(e,this.args);e.isNew=this.isNew;n=new H("typeof "+n.compile(a)+' \x3d\x3d\x3d "function"');return new E(n,new L(e),{soak:!0})}n=this;for(d=[];;)if(n.variable instanceof b)d.push(n),n=n.variable;else{if(!(n.variable instanceof
L))break;d.push(n);if(!((n=n.variable.base)instanceof b))break}f=d.reverse();d=0;for(c=f.length;d<c;d++)n=f[d],e&&(n.variable instanceof b?n.variable=e:n.variable.base=e),e=Na(a,n,"variable");return e};b.prototype.compileNode=function(a){var b,e,d,n,c,f;null!=(d=this.variable)&&(d.front=this.front);d=R.compileSplattedArray(a,this.args,!0);if(d.length)return this.compileSplat(a,d);d=[];f=this.args;e=n=0;for(c=f.length;n<c;e=++n)b=f[e],e&&d.push(this.makeCode(", ")),d.push.apply(d,b.compileToFragments(a,
h));b=[];this instanceof ka?(a=this.superReference(a)+(".call("+this.superThis(a)),d.length&&(a+=", "),b.push(this.makeCode(a))):(this.isNew&&b.push(this.makeCode("new ")),b.push.apply(b,this.variable.compileToFragments(a,t)),b.push(this.makeCode("(")));b.push.apply(b,d);b.push(this.makeCode(")"));return b};b.prototype.compileSplat=function(a,b){var e,d,n,c;if(this instanceof ka)return[].concat(this.makeCode(this.superReference(a)+".apply("+this.superThis(a)+", "),b,this.makeCode(")"));if(this.isNew)return e=
this.tab+ca,[].concat(this.makeCode("(function(func, args, ctor) {\n"+e+"ctor.prototype \x3d func.prototype;\n"+e+"var child \x3d new ctor, result \x3d func.apply(child, args);\n"+e+"return Object(result) \x3d\x3d\x3d result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(a,h),this.makeCode(", "),b,this.makeCode(", function(){})"));e=[];d=new L(this.variable);(n=d.properties.pop())&&d.isComplex()?(c=a.scope.freeVariable("ref"),e=e.concat(this.makeCode("("+c+" \x3d "),d.compileToFragments(a,
h),this.makeCode(")"),n.compileToFragments(a))):(d=d.compileToFragments(a,t),Z.test(Da(d))&&(d=this.wrapInBraces(d)),n?(c=Da(d),d.push.apply(d,n.compileToFragments(a))):c="null",e=e.concat(d));return e.concat(this.makeCode(".apply("+c+", "),b,this.makeCode(")"))};return b}(a);g.SuperCall=ka=function(a){function b(a){b.__super__.constructor.call(this,null,null!=a?a:[new R(new r("arguments"))]);this.isBare=null!=a}na(b,a);b.prototype.superReference=function(a){var b,e,d,c,n,f,g;c=a.scope.namedMethod();
if(null!=c&&c.klass){d=c.klass;n=c.name;g=c.variable;d.isComplex()&&(e=new r(a.scope.parent.freeVariable("base")),b=new L(new C(new q(e,d))),g.base=b,g.properties.splice(0,d.properties.length));if(n.isComplex()||n instanceof m&&n.index.isAssignable())f=new r(a.scope.parent.freeVariable("name")),n=new m(new q(f,n.index)),g.properties.pop(),g.properties.push(n);b=[new ua(new Q("__super__"))];c["static"]&&b.push(new ua(new Q("constructor")));b.push(null!=f?new m(f):n);return(new L(null!=e?e:d,b)).compile(a)}return null!=
c&&c.ctor?c.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")};b.prototype.superThis=function(a){return(a=a.scope.method)&&!a.klass&&a.context||"this"};return b}(f);g.RegexWithInterpolations=function(a){function b(a){null==a&&(a=[]);b.__super__.constructor.call(this,new L(new r("RegExp")),a,!1)}na(b,a);return b}(f);g.TaggedTemplateCall=function(a){function b(a,pa,e){pa instanceof $a&&(pa=new Xa(c.wrap([new L(pa)])));b.__super__.constructor.call(this,a,[pa],
e)}na(b,a);b.prototype.compileNode=function(a){a.inTaggedTemplateCall=!0;return this.variable.compileToFragments(a,t).concat(this.args[0].compileToFragments(a,h))};return b}(f);g.Extends=N=function(a){function b(a,b){this.child=a;this.parent=b}na(b,a);b.prototype.children=["child","parent"];b.prototype.compileToFragments=function(a){return(new f(new L(new H(za("extend",a))),[this.child,this.parent])).compileToFragments(a)};return b}(a);g.Access=ua=function(a){function b(a,b){this.name=a;this.soak=
"soak"===b}na(b,a);b.prototype.children=["name"];b.prototype.compileToFragments=function(a){var b,e;a=this.name.compileToFragments(a);b=this.name.unwrap();return b instanceof Q?(e=b.value,0<=Ha.call(k,e))?[this.makeCode('["')].concat(Aa.call(a),[this.makeCode('"]')]):[this.makeCode(".")].concat(Aa.call(a)):[this.makeCode("[")].concat(Aa.call(a),[this.makeCode("]")])};b.prototype.isComplex=I;return b}(a);g.Index=m=function(a){function b(a){this.index=a}na(b,a);b.prototype.children=["index"];b.prototype.compileToFragments=
function(a){return[].concat(this.makeCode("["),this.index.compileToFragments(a,P),this.makeCode("]"))};b.prototype.isComplex=function(){return this.index.isComplex()};return b}(a);g.Range=X=function(a){function b(a,b,e){this.from=a;this.to=b;this.equals=(this.exclusive="exclusive"===e)?"":"\x3d"}na(b,a);b.prototype.children=["from","to"];b.prototype.compileVariables=function(a){var b,e;a=Fa(a,{top:!0});b=ma(a,"isComplex");e=this.cacheToCodeFragments(this.from.cache(a,h,b));this.fromC=e[0];this.fromVar=
e[1];e=this.cacheToCodeFragments(this.to.cache(a,h,b));this.toC=e[0];this.toVar=e[1];if(e=ma(a,"step"))a=this.cacheToCodeFragments(e.cache(a,h,b)),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!=e&&e.isNumber()?Number(this.stepVar):null};b.prototype.compileNode=function(a){var b,e,d,c,n,f,g,h,k,m;this.fromVar||this.compileVariables(a);if(!a.index)return this.compileArray(a);
f=null!=this.fromNum&&null!=this.toNum;n=ma(a,"index");g=(a=ma(a,"name"))&&a!==n;m=n+" \x3d "+this.fromC;this.toC!==this.toVar&&(m+=", "+this.toC);this.step!==this.stepVar&&(m+=", "+this.step);c=[n+" \x3c"+this.equals,n+" \x3e"+this.equals];e=c[0];c=c[1];e=null!=this.stepNum?0<this.stepNum?e+" "+this.toVar:c+" "+this.toVar:f?(h=[this.fromNum,this.toNum],d=h[0],k=h[1],h,d<=k?e+" "+k:c+" "+k):(b=this.stepVar?this.stepVar+" \x3e 0":this.fromVar+" \x3c\x3d "+this.toVar,b+" ? "+e+" "+this.toVar+" : "+
c+" "+this.toVar);b=this.stepVar?n+" +\x3d "+this.stepVar:f?g?d<=k?"++"+n:"--"+n:d<=k?n+"++":n+"--":g?b+" ? ++"+n+" : --"+n:b+" ? "+n+"++ : "+n+"--";g&&(m=a+" \x3d "+m);g&&(b=a+" \x3d "+b);return[this.makeCode(m+"; "+e+"; "+b)]};b.prototype.compileArray=function(a){var b,e,d,c,n,f,g,h,k;if((e=null!=this.fromNum&&null!=this.toNum)&&20>=Math.abs(this.fromNum-this.toNum))return b=function(){h=[];for(var a=f=this.fromNum,b=this.toNum;f<=b?a<=b:a>=b;f<=b?a++:a--)h.push(a);return h}.apply(this),this.exclusive&&
b.pop(),[this.makeCode("["+b.join(", ")+"]")];c=this.tab+ca;d=a.scope.freeVariable("i",{single:!0});g=a.scope.freeVariable("results");n="\n"+c+g+" \x3d [];";e?(a.index=d,e=Da(this.compileNode(a))):(k=d+" \x3d "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),e=this.fromVar+" \x3c\x3d "+this.toVar,e="var "+k+"; "+e+" ? "+d+" \x3c"+this.equals+" "+this.toVar+" : "+d+" \x3e"+this.equals+" "+this.toVar+"; "+e+" ? "+d+"++ : "+d+"--");d="{ "+g+".push("+d+"); }\n"+c+"return "+g+";\n"+a.indent;a=function(a){return null!=
a?a.contains(Ja):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+n+"\n"+c+"for ("+e+")"+d+"}).apply(this"+(null!=b?b:"")+")")]};return b}(a);g.Slice=ba=function(a){function b(a){this.range=a;b.__super__.constructor.call(this)}na(b,a);b.prototype.children=["range"];b.prototype.compileNode=function(a){var b,e,d,c,n;b=this.range;c=b.to;d=(b=b.from)&&b.compileToFragments(a,P)||[this.makeCode("0")];c&&(b=c.compileToFragments(a,P),e=Da(b),this.range.exclusive||-1!==
+e)&&(n=", "+(this.range.exclusive?e:c.isNumber()?""+(+e+1):(b=c.compileToFragments(a,t),"+"+Da(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+Da(d)+(n||"")+")")]};return b}(a);g.Obj=z=function(a){function b(a,b){this.generated=null!=b?b:!1;this.objects=this.properties=a||[]}na(b,a);b.prototype.children=["properties"];b.prototype.compileNode=function(a){var b,e,d,c,n,f,g,h,k,m,t,l,p;p=this.properties;if(this.generated)for(e=0,b=p.length;e<b;e++)d=p[e],d instanceof L&&d.error("cannot have an implicit value in an implicit object");
e=b=0;for(d=p.length;b<d&&!(l=p[e],(l.variable||l).base instanceof C);e=++b);d=e<p.length;n=a.indent+=ca;k=this.lastNonComment(this.properties);b=[];d&&(t=a.scope.freeVariable("obj"),b.push(this.makeCode("(\n"+n+t+" \x3d ")));b.push(this.makeCode("{"+(0===p.length||0===e?"}":"\n")));c=h=0;for(m=p.length;h<m;c=++h)l=p[c],c===e&&(0!==c&&b.push(this.makeCode("\n"+n+"}")),b.push(this.makeCode(",\n"))),g=c===p.length-1||c===e-1?"":l===k||l instanceof G?"\n":",\n",f=l instanceof G?"":n,d&&c<e&&(f+=ca),
l instanceof q&&("object"!==l.context&&l.operatorToken.error("unexpected "+l.operatorToken.value),l.variable instanceof L&&l.variable.hasProperties()&&l.variable.error("invalid object key")),l instanceof L&&l["this"]&&(l=new q(l.properties[0].name,l,"object")),l instanceof G||(c<e?l instanceof q||(l=new q(l,l,"object")):(l instanceof q?(c=l.variable,l=l.value):(l=l.base.cache(a),c=l[0],l=l[1],c instanceof r&&(c=new Q(c.value))),l=new q(new L(new r(t),[new ua(c)]),l))),f&&b.push(this.makeCode(f)),
b.push.apply(b,l.compileToFragments(a,A)),g&&b.push(this.makeCode(g));d?b.push(this.makeCode(",\n"+n+t+"\n"+this.tab+")")):0!==p.length&&b.push(this.makeCode("\n"+this.tab+"}"));return this.front&&!d?this.wrapInBraces(b):b};b.prototype.assigns=function(a){var b,e,d,c;c=this.properties;b=0;for(e=c.length;b<e;b++)if(d=c[b],d.assigns(a))return!0;return!1};return b}(a);g.Arr=qa=function(a){function b(a){this.objects=a||[]}na(b,a);b.prototype.children=["objects"];b.prototype.compileNode=function(a){var b,
e,d,c,n;if(!this.objects.length)return[this.makeCode("[]")];a.indent+=ca;b=R.compileSplattedArray(a,this.objects);if(b.length)return b;b=[];var f;n=this.objects;f=[];d=0;for(c=n.length;d<c;d++)e=n[d],f.push(e.compileToFragments(a,h));d=c=0;for(n=f.length;c<n;d=++c)e=f[d],d&&b.push(this.makeCode(", ")),b.push.apply(b,e);0<=Da(b).indexOf("\n")?(b.unshift(this.makeCode("[\n"+a.indent)),b.push(this.makeCode("\n"+this.tab+"]"))):(b.unshift(this.makeCode("[")),b.push(this.makeCode("]")));return b};b.prototype.assigns=
function(a){var b,e,d,c;c=this.objects;b=0;for(e=c.length;b<e;b++)if(d=c[b],d.assigns(a))return!0;return!1};return b}(a);g.Class=D=function(a){function b(a,b,e){this.variable=a;this.parent=b;this.body=null!=e?e:new c;this.boundFuncs=[];this.body.classBody=!0}na(b,a);b.prototype.children=["variable","parent","body"];b.prototype.defaultClassVariableName="_Class";b.prototype.determineName=function(){var a,b;if(!this.variable)return this.defaultClassVariableName;b=this.variable.properties;b=(a=b[b.length-
1])?a instanceof ua&&a.name:this.variable.base;if(!(b instanceof r||b instanceof Q))return this.defaultClassVariableName;b=b.value;a||(a=Ga(b))&&this.variable.error(a);return 0<=Ha.call(k,b)?"_"+b:b};b.prototype.setContext=function(a){return this.body.traverseChildren(!1,function(b){if(b.classBody)return!1;if(b instanceof ga)return b.value=a;if(b instanceof l&&b.bound)return b.context=a})};b.prototype.addBoundFunctions=function(a){var b,e,d,c;c=this.boundFuncs;e=0;for(d=c.length;e<d;e++)b=c[e],b=
(new L(new ga,[new ua(b)])).compile(a),this.ctor.body.unshift(new H(b+" \x3d "+za("bind",a)+"("+b+", this)"))};b.prototype.addProperties=function(a,b,e){var d,c,n,f;f=a.base.properties.slice(0);var g;for(g=[];d=f.shift();)d instanceof q&&(c=d.variable.base,delete d.context,n=d.value,"constructor"===c.value?(this.ctor&&d.error("cannot define more than one constructor in a class"),n.bound&&d.error("cannot define a constructor as a bound function"),n instanceof l?d=this.ctor=n:(this.externalCtor=e.classScope.freeVariable("ctor"),
d=new q(new r(this.externalCtor),n))):d.variable["this"]?n["static"]=!0:(a=c.isComplex()?new m(c):new ua(c),d.variable=new L(new r(b),[new ua(new Q("prototype")),a]),n instanceof l&&n.bound&&(this.boundFuncs.push(c),n.bound=!1))),g.push(d);return da(g)};b.prototype.walkBody=function(a,f){return this.traverseChildren(!1,function(e){return function(d){var n,g,pa,h,k,m,l;n=!0;if(d instanceof b)return!1;if(d instanceof c){l=g=d.expressions;pa=h=0;for(k=l.length;h<k;pa=++h)m=l[pa],m instanceof q&&m.variable.looksStatic(a)?
m.value["static"]=!0:m instanceof L&&m.isObject(!0)&&(n=!1,g[pa]=e.addProperties(m,a,f));d.expressions=ia(g)}return n&&!(d instanceof b)}}(this))};b.prototype.hoistDirectivePrologue=function(){var a,b,e;b=0;for(a=this.body.expressions;(e=a[b])&&e instanceof G||e instanceof L&&e.isString();)++b;return this.directives=a.splice(0,b)};b.prototype.ensureConstructor=function(a){this.ctor||(this.ctor=new l,this.externalCtor?this.ctor.body.push(new H(this.externalCtor+".apply(this, arguments)")):this.parent&&
this.ctor.body.push(new H(a+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor));this.ctor.ctor=this.ctor.name=a;this.ctor.klass=null;return this.ctor.noReturn=!0};b.prototype.compileNode=function(a){var b,e,d,n,g;(e=this.body.jumps())&&e.error("Class bodies cannot contain pure statements");(b=this.body.contains(Ja))&&b.error("Class bodies shouldn't reference arguments");g=this.determineName();n=new r(g);e=new l([],c.wrap([this.body]));
b=[];a.classScope=e.makeScope(a.scope);this.hoistDirectivePrologue();this.setContext(g);this.walkBody(g,a);this.ensureConstructor(g);this.addBoundFunctions(a);this.body.spaced=!0;this.body.expressions.push(n);this.parent&&(g=new r(a.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new N(n,g)),e.params.push(new W(g)),b.push(this.parent));(d=this.body.expressions).unshift.apply(d,this.directives);d=new C(new f(e,b));this.variable&&(d=new q(this.variable,d,null,{moduleDeclaration:this.moduleDeclaration}));
return d.compileToFragments(a)};return b}(a);g.ModuleDeclaration=v=function(a){function b(a,b){this.clause=a;this.source=b;this.checkSource()}na(b,a);b.prototype.children=["clause","source"];b.prototype.isStatement=ja;b.prototype.jumps=ea;b.prototype.makeReturn=ea;b.prototype.checkSource=function(){if(null!=this.source&&this.source instanceof Xa)return this.source.error("the name of the module to be imported from must be an uninterpolated string")};b.prototype.checkScope=function(a,b){if(0!==a.indent.length)return this.error(b+
" statements must be at top-level scope")};return b}(a);g.ImportDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(a){var b,e;this.checkScope(a,"import");a.importedSymbols=[];b=[];b.push(this.makeCode(this.tab+"import "));null!=this.clause&&b.push.apply(b,this.clause.compileNode(a));null!=(null!=(e=this.source)?e.value:void 0)&&(null!==this.clause&&b.push(this.makeCode(" from ")),b.push(this.makeCode(this.source.value)));
b.push(this.makeCode(";"));return b};return b}(v);g.ImportClause=function(a){function b(a,b){this.defaultBinding=a;this.namedImports=b}na(b,a);b.prototype.children=["defaultBinding","namedImports"];b.prototype.compileNode=function(a){var b;b=[];null!=this.defaultBinding&&(b.push.apply(b,this.defaultBinding.compileNode(a)),null!=this.namedImports&&b.push(this.makeCode(", ")));null!=this.namedImports&&b.push.apply(b,this.namedImports.compileNode(a));return b};return b}(a);g.ExportDeclaration=v=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}na(b,a);b.prototype.compileNode=function(a){var b,e;this.checkScope(a,"export");b=[];b.push(this.makeCode(this.tab+"export "));this instanceof M&&b.push(this.makeCode("default "));this instanceof M||!(this.clause instanceof q||this.clause instanceof D)||(this.clause instanceof D&&!this.clause.variable&&this.clause.error("anonymous classes cannot be exported"),b.push(this.makeCode("var ")),this.clause.moduleDeclaration="export");b=null!=this.clause.body&&this.clause.body instanceof c?b.concat(this.clause.compileToFragments(a,
A)):b.concat(this.clause.compileNode(a));null!=(null!=(e=this.source)?e.value:void 0)&&b.push(this.makeCode(" from "+this.source.value));b.push(this.makeCode(";"));return b};return b}(v);g.ExportNamedDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportDefaultDeclaration=M=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportAllDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}na(b,a);return b}(v);g.ModuleSpecifierList=v=function(a){function b(a){this.specifiers=a}na(b,a);b.prototype.children=["specifiers"];b.prototype.compileNode=function(a){var b,e,d,c,f;b=[];a.indent+=ca;var n;f=this.specifiers;n=[];d=0;for(c=f.length;d<c;d++)e=f[d],n.push(e.compileToFragments(a,h));if(0!==this.specifiers.length){b.push(this.makeCode("{\n"+a.indent));d=c=0;for(f=n.length;c<f;d=++c)e=n[d],d&&b.push(this.makeCode(",\n"+a.indent)),b.push.apply(b,e);b.push(this.makeCode("\n}"))}else b.push(this.makeCode("{}"));
return b};return b}(a);g.ImportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ModuleSpecifier=U=function(a){function b(a,b,e){this.original=a;this.alias=b;this.moduleDeclarationType=e;this.identifier=null!=this.alias?this.alias.value:this.original.value}na(b,a);b.prototype.children=["original","alias"];b.prototype.compileNode=
function(a){a.scope.find(this.identifier,this.moduleDeclarationType);a=[];a.push(this.makeCode(this.original.value));null!=this.alias&&a.push(this.makeCode(" as "+this.alias.value));return a};return b}(a);g.ImportSpecifier=v=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"import")}na(b,a);b.prototype.compileNode=function(a){var c;(c=this.identifier,0<=Ha.call(a.importedSymbols,c))||a.scope.check(this.identifier)?this.error("'"+this.identifier+"' has already been declared"):a.importedSymbols.push(this.identifier);
return b.__super__.compileNode.call(this,a)};return b}(U);g.ImportDefaultSpecifier=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ImportNamespaceSpecifier=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(v);g.ExportSpecifier=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"export")}na(b,a);return b}(U);g.Assign=q=function(a){function b(a,b,e,d){this.variable=a;this.value=b;this.context=
e;null==d&&(d={});this.param=d.param;this.subpattern=d.subpattern;this.operatorToken=d.operatorToken;this.moduleDeclaration=d.moduleDeclaration}na(b,a);b.prototype.children=["variable","value"];b.prototype.isStatement=function(a){return(null!=a?a.level:void 0)===A&&null!=this.context&&(this.moduleDeclaration||0<=Ha.call(this.context,"?"))};b.prototype.checkAssignability=function(a,b){if(Object.prototype.hasOwnProperty.call(a.scope.positions,b.value)&&"import"===a.scope.variables[a.scope.positions[b.value]].type)return b.error("'"+
b.value+"' is read-only")};b.prototype.assigns=function(a){return this["object"===this.context?"value":"variable"].assigns(a)};b.prototype.unfoldSoak=function(a){return Na(a,this,"variable")};b.prototype.compileNode=function(a){var b,e,d,c,f,g,n;if(e=this.variable instanceof L){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(a);if(this.variable.isSplice())return this.compileSplice(a);if("||\x3d"===(c=this.context)||"\x26\x26\x3d"===c||"?\x3d"===c)return this.compileConditional(a);
if("**\x3d"===(f=this.context)||"//\x3d"===f||"%%\x3d"===f)return this.compileSpecialMath(a)}this.value instanceof l&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):2<=(null!=(g=this.variable.properties)?g.length:void 0)&&(g=this.variable.properties,c=3<=g.length?Aa.call(g,0,d=g.length-2):(d=0,[]),f=g[d++],d=g[d++],"prototype"===(null!=(n=f.name)?n.value:void 0)&&(this.value.klass=new L(this.variable.base,c),
this.value.name=d,this.value.variable=this.variable)));this.context||(n=this.variable.unwrapAll(),n.isAssignable()||this.variable.error("'"+this.variable.compile(a)+"' can't be assigned"),"function"===typeof n.hasProperties&&n.hasProperties()||(this.moduleDeclaration?(this.checkAssignability(a,n),a.scope.add(n.value,this.moduleDeclaration)):this.param?a.scope.add(n.value,"var"):(this.checkAssignability(a,n),a.scope.find(n.value))));n=this.value.compileToFragments(a,h);e&&this.variable.base instanceof
z&&(this.variable.front=!0);e=this.variable.compileToFragments(a,h);if("object"===this.context){if(b=Da(e),0<=Ha.call(k,b))e.unshift(this.makeCode('"')),e.push(this.makeCode('"'));return e.concat(this.makeCode(": "),n)}b=e.concat(this.makeCode(" "+(this.context||"\x3d")+" "),n);return a.level<=h?b:this.wrapInBraces(b)};b.prototype.compilePatternMatch=function(a){var c,e,d,f,g,n,k,l,t,p,q,v,u,w,C,z;w=a.level===A;l=this.value;v=this.variable.base.objects;if(!(u=v.length))return e=l.compileToFragments(a),
a.level>=y?this.wrapInBraces(e):e;q=v[0];1===u&&q instanceof x&&q.error("Destructuring assignment has no target");n=this.variable.isObject();if(w&&1===u&&!(q instanceof R))return d=null,q instanceof b&&"object"===q.context?(e=q,f=e.variable,g=f.base,q=e.value,q instanceof b&&(d=q.value,q=q.variable)):(q instanceof b&&(d=q.value,q=q.variable),g=n?q["this"]?q.properties[0].name:new Q(q.unwrap().value):new S(0)),c=g.unwrap()instanceof Q,l=new L(l),l.properties.push(new (c?ua:m)(g)),(p=Ga(q.unwrap().value))&&
q.error(p),d&&(l=new B("?",l,d)),(new b(q,l,null,{param:this.param})).compileToFragments(a,A);C=l.compileToFragments(a,h);z=Da(C);e=[];f=!1;l.unwrap()instanceof r&&!this.variable.assigns(z)||(e.push([this.makeCode((d=a.scope.freeVariable("ref"))+" \x3d ")].concat(Aa.call(C))),C=[this.makeCode(d)],z=d);d=l=0;for(t=v.length;l<t;d=++l){q=v[d];g=d;if(!f&&q instanceof R)p=q.name.unwrap().value,q=q.unwrap(),g=u+" \x3c\x3d "+z+".length ? "+za("slice",a)+".call("+z+", "+d,(c=u-d-1)?(k=a.scope.freeVariable("i",
{single:!0}),g+=", "+k+" \x3d "+z+".length - "+c+") : ("+k+" \x3d "+d+", [])"):g+=") : []",g=new H(g),f=k+"++";else if(!f&&q instanceof x){if(c=u-d-1)1===c?f=z+".length - 1":(k=a.scope.freeVariable("i",{single:!0}),g=new H(k+" \x3d "+z+".length - "+c),f=k+"++",e.push(g.compileToFragments(a,h)));continue}else(q instanceof R||q instanceof x)&&q.error("multiple splats/expansions are disallowed in an assignment"),d=null,q instanceof b&&"object"===q.context?(g=q.variable,g=g.base,q=q.value,q instanceof
b&&(d=q.value,q=q.variable)):(q instanceof b&&(d=q.value,q=q.variable),g=n?q["this"]?q.properties[0].name:new Q(q.unwrap().value):new H(f||g)),p=q.unwrap().value,c=g.unwrap()instanceof Q,g=new L(new H(z),[new (c?ua:m)(g)]),d&&(g=new B("?",g,d));null!=p&&(p=Ga(p))&&q.error(p);e.push((new b(q,g,null,{param:this.param,subpattern:!0})).compileToFragments(a,h))}w||this.subpattern||e.push(C);e=this.joinFragmentArrays(e,", ");return a.level<h?e:this.wrapInBraces(e)};b.prototype.compileConditional=function(a){var c,
e;e=this.variable.cacheReference(a);c=e[0];e=e[1];c.properties.length||!(c.base instanceof H)||c.base instanceof ga||a.scope.check(c.base.value)||this.variable.error('the variable "'+c.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before");if(0<=Ha.call(this.context,"?"))return a.isExistentialEquals=!0,(new E(new F(c),e,{type:"if"})).addElse(new b(e,this.value,"\x3d")).compileToFragments(a);c=(new B(this.context.slice(0,-1),c,new b(e,this.value,"\x3d"))).compileToFragments(a);
return a.level<=h?c:this.wrapInBraces(c)};b.prototype.compileSpecialMath=function(a){var c,e;e=this.variable.cacheReference(a);c=e[0];e=e[1];return(new b(c,new B(this.context.slice(0,-1),e,this.value))).compileToFragments(a)};b.prototype.compileSplice=function(a){var b,e,d,c,f,g;c=this.variable.properties.pop().range;d=c.from;b=c.to;e=c.exclusive;g=this.variable.compile(a);d?(f=this.cacheToCodeFragments(d.cache(a,y)),c=f[0],f=f[1]):c=f="0";b?null!=d&&d.isNumber()&&b.isNumber()?(b=b.compile(a)-f,e||
(b+=1)):(b=b.compile(a,t)+" - "+f,e||(b+=" + 1")):b="9e9";e=this.value.cache(a,h);d=e[0];e=e[1];b=[].concat(this.makeCode("[].splice.apply("+g+", ["+c+", "+b+"].concat("),d,this.makeCode(")), "),e);return a.level>A?this.wrapInBraces(b):b};return b}(a);g.Code=l=function(a){function b(a,b,e){this.params=a||[];this.body=b||new c;this.bound="boundfunc"===e;this.isGenerator=!!this.body.contains(function(a){return a instanceof B&&a.isYield()||a instanceof ra})}na(b,a);b.prototype.children=["params","body"];
b.prototype.isStatement=function(){return!!this.ctor};b.prototype.jumps=I;b.prototype.makeScope=function(a){return new K(a,this.body,this)};b.prototype.compileNode=function(a){var g,e,d,n,h,k,m,l,p,y,A,u,v;this.bound&&null!=(e=a.scope.method)&&e.bound&&(this.context=a.scope.method.context);if(this.bound&&!this.context)return this.context="_this",e=new b([new W(new r(this.context))],new c([this])),e=new f(e,[new ga]),e.updateLocationDataIfMissing(this.locationData),e.compileNode(a);a.scope=ma(a,"classScope")||
this.makeScope(a.scope);a.scope.shared=ma(a,"sharedScope");a.indent+=ca;delete a.bare;delete a.isExistentialEquals;e=[];g=[];l=this.params;n=0;for(k=l.length;n<k;n++)m=l[n],m instanceof x||a.scope.parameter(m.asReference(a));l=this.params;n=0;for(k=l.length;n<k;n++)if(m=l[n],m.splat||m instanceof x){n=this.params;h=0;for(m=n.length;h<m;h++)p=n[h],p instanceof x||!p.name.value||a.scope.add(p.name.value,"var",!0);h=new q(new L(new qa(function(){var b,d,e,c;e=this.params;c=[];d=0;for(b=e.length;d<b;d++)p=
e[d],c.push(p.asReference(a));return c}.call(this))),new L(new r("arguments")));break}A=this.params;l=0;for(n=A.length;l<n;l++)m=A[l],m.isComplex()?(v=y=m.asReference(a),m.value&&(v=new B("?",y,m.value)),g.push(new q(new L(m.name),v,"\x3d",{param:!0}))):(y=m,m.value&&(k=new H(y.name.value+" \x3d\x3d null"),v=new q(new L(m.name),m.value,"\x3d"),g.push(new E(k,v)))),h||e.push(y);m=this.body.isEmpty();h&&g.unshift(h);g.length&&(d=this.body.expressions).unshift.apply(d,g);d=h=0;for(g=e.length;h<g;d=++h)p=
e[d],e[d]=p.compileToFragments(a),a.scope.parameter(Da(e[d]));u=[];this.eachParamName(function(a,b){0<=Ha.call(u,a)&&b.error("multiple parameters named "+a);return u.push(a)});m||this.noReturn||this.body.makeReturn();d="function";this.isGenerator&&(d+="*");this.ctor&&(d+=" "+this.name);g=[this.makeCode(d+"(")];d=m=0;for(h=e.length;m<h;d=++m)p=e[d],d&&g.push(this.makeCode(", ")),g.push.apply(g,p);g.push(this.makeCode(") {"));this.body.isEmpty()||(g=g.concat(this.makeCode("\n"),this.body.compileWithDeclarations(a),
this.makeCode("\n"+this.tab)));g.push(this.makeCode("}"));return this.ctor?[this.makeCode(this.tab)].concat(Aa.call(g)):this.front||a.level>=t?this.wrapInBraces(g):g};b.prototype.eachParamName=function(a){var b,e,d,c,f;c=this.params;f=[];b=0;for(e=c.length;b<e;b++)d=c[b],f.push(d.eachName(a));return f};b.prototype.traverseChildren=function(a,c){if(a)return b.__super__.traverseChildren.call(this,a,c)};return b}(a);g.Param=W=function(a){function b(a,b,e){this.name=a;this.value=b;this.splat=e;(a=Ga(this.name.unwrapAll().value))&&
this.name.error(a);this.name instanceof z&&this.name.generated&&(a=this.name.objects[0].operatorToken,a.error("unexpected "+a.value))}na(b,a);b.prototype.children=["name","value"];b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a,h)};b.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name;b["this"]?(b=b.properties[0].name.value,0<=Ha.call(k,b)&&(b="_"+b),b=new r(a.scope.freeVariable(b))):b.isComplex()&&(b=new r(a.scope.freeVariable("arg")));
b=new L(b);this.splat&&(b=new R(b));b.updateLocationDataIfMissing(this.locationData);return this.reference=b};b.prototype.isComplex=function(){return this.name.isComplex()};b.prototype.eachName=function(a,b){var e,d,c,f;null==b&&(b=this.name);e=function(b){return a("@"+b.properties[0].name.value,b)};if(b instanceof H)return a(b.value,b);if(b instanceof L)return e(b);b=null!=(d=b.objects)?d:[];d=0;for(c=b.length;d<c;d++)f=b[d],f instanceof q&&null==f.context&&(f=f.variable),f instanceof q?(f.value instanceof
q&&(f=f.value),this.eachName(a,f.value.unwrap())):f instanceof R?(f=f.name.unwrap(),a(f.value,f)):f instanceof L?f.isArray()||f.isObject()?this.eachName(a,f.base):f["this"]?e(f):a(f.base.value,f.base):f instanceof x||f.error("illegal parameter "+f.compile())};return b}(a);g.Splat=R=function(a){function b(a){this.name=a.compile?a:new H(a)}na(b,a);b.prototype.children=["name"];b.prototype.isAssignable=ja;b.prototype.assigns=function(a){return this.name.assigns(a)};b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a)};
b.prototype.unwrap=function(){return this.name};b.compileSplattedArray=function(a,c,e){var d,f,g,n,k,m;for(n=-1;(d=c[++n])&&!(d instanceof b););if(n>=c.length)return[];if(1===c.length)return d=c[0],c=d.compileToFragments(a,h),e?c:[].concat(d.makeCode(za("slice",a)+".call("),c,d.makeCode(")"));e=c.slice(n);g=k=0;for(m=e.length;k<m;g=++k)d=e[g],f=d.compileToFragments(a,h),e[g]=d instanceof b?[].concat(d.makeCode(za("slice",a)+".call("),f,d.makeCode(")")):[].concat(d.makeCode("["),f,d.makeCode("]"));
if(0===n)return d=c[0],a=d.joinFragmentArrays(e.slice(1),", "),e[0].concat(d.makeCode(".concat("),a,d.makeCode(")"));k=c.slice(0,n);m=[];f=0;for(g=k.length;f<g;f++)d=k[f],m.push(d.compileToFragments(a,h));d=c[0].joinFragmentArrays(m,", ");a=c[n].joinFragmentArrays(e,", ");e=c[c.length-1];return[].concat(c[0].makeCode("["),d,c[n].makeCode("].concat("),a,e.makeCode(")"))};return b}(a);g.Expansion=x=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isComplex=
I;b.prototype.compileNode=function(a){return this.error("Expansion must be used inside a destructuring assignment or parameter list")};b.prototype.asReference=function(a){return this};b.prototype.eachName=function(a){};return b}(a);g.While=v=function(a){function b(a,b){this.condition=null!=b&&b.invert?a.invert():a;this.guard=null!=b?b.guard:void 0}na(b,a);b.prototype.children=["condition","guard","body"];b.prototype.isStatement=ja;b.prototype.makeReturn=function(a){if(a)return b.__super__.makeReturn.apply(this,
arguments);this.returns=!this.jumps({loop:!0});return this};b.prototype.addBody=function(a){this.body=a;return this};b.prototype.jumps=function(){var a,b,e,d;a=this.body.expressions;if(!a.length)return!1;b=0;for(d=a.length;b<d;b++)if(e=a[b],e=e.jumps({loop:!0}))return e;return!1};b.prototype.compileNode=function(a){var b,e,d;a.indent+=ca;d="";b=this.body;b.isEmpty()?b=this.makeCode(""):(this.returns&&(b.makeReturn(e=a.scope.freeVariable("results")),d=""+this.tab+e+" \x3d [];\n"),this.guard&&(1<b.expressions.length?
b.expressions.unshift(new E((new C(this.guard)).invert(),new ya("continue"))):this.guard&&(b=c.wrap([new E(this.guard,b)]))),b=[].concat(this.makeCode("\n"),b.compileToFragments(a,A),this.makeCode("\n"+this.tab)));a=[].concat(this.makeCode(d+this.tab+"while ("),this.condition.compileToFragments(a,P),this.makeCode(") {"),b,this.makeCode("}"));this.returns&&a.push(this.makeCode("\n"+this.tab+"return "+e+";"));return a};return b}(a);g.Op=B=function(a){function b(a,b,g,n){if("in"===a)return new O(b,g);
if("do"===a)return this.generateDo(b);if("new"===a){if(b instanceof f&&!b["do"]&&!b.isNew)return b.newInstance();if(b instanceof l&&b.bound||b["do"])b=new C(b)}this.operator=c[a]||a;this.first=b;this.second=g;this.flip=!!n;return this}var c,g;na(b,a);c={"\x3d\x3d":"\x3d\x3d\x3d","!\x3d":"!\x3d\x3d",of:"in",yieldfrom:"yield*"};g={"!\x3d\x3d":"\x3d\x3d\x3d","\x3d\x3d\x3d":"!\x3d\x3d"};b.prototype.children=["first","second"];b.prototype.isNumber=function(){var a;return this.isUnary()&&("+"===(a=this.operator)||
"-"===a)&&this.first instanceof L&&this.first.isNumber()};b.prototype.isYield=function(){var a;return"yield"===(a=this.operator)||"yield*"===a};b.prototype.isUnary=function(){return!this.second};b.prototype.isComplex=function(){return!this.isNumber()};b.prototype.isChainable=function(){var a;return"\x3c"===(a=this.operator)||"\x3e"===a||"\x3e\x3d"===a||"\x3c\x3d"===a||"\x3d\x3d\x3d"===a||"!\x3d\x3d"===a};b.prototype.invert=function(){var a,d,c;if(this.isChainable()&&this.first.isChainable()){a=!0;
for(d=this;d&&d.operator;)a&&(a=d.operator in g),d=d.first;if(!a)return(new C(this)).invert();for(d=this;d&&d.operator;)d.invert=!d.invert,d.operator=g[d.operator],d=d.first;return this}return(d=g[this.operator])?(this.operator=d,this.first.unwrap()instanceof b&&this.first.invert(),this):this.second?(new C(this)).invert():"!"===this.operator&&(a=this.first.unwrap())instanceof b&&("!"===(c=a.operator)||"in"===c||"instanceof"===c)?a:new b("!",this)};b.prototype.unfoldSoak=function(a){var b;return("++"===
(b=this.operator)||"--"===b||"delete"===b)&&La(a,this,"first")};b.prototype.generateDo=function(a){var b,e,c,g,q;g=[];q=(a instanceof D&&(b=a.value.unwrap())instanceof m?b:a).params||[];b=0;for(e=q.length;b<e;b++)c=q[b],c.value?(g.push(c.value),delete c.value):g.push(c);a=new f(a,g);a["do"]=!0;return a};b.prototype.compileNode=function(a){var b,e;b=this.isChainable()&&this.first.isChainable();b||(this.first.front=this.front);"delete"===this.operator&&a.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var");
("--"===(e=this.operator)||"++"===e)&&(e=Ga(this.first.unwrapAll().value))&&this.first.error(e);if(this.isYield())return this.compileYield(a);if(this.isUnary())return this.compileUnary(a);if(b)return this.compileChain(a);switch(this.operator){case "?":return this.compileExistence(a);case "**":return this.compilePower(a);case "//":return this.compileFloorDivision(a);case "%%":return this.compileModulo(a);default:return b=this.first.compileToFragments(a,M),e=this.second.compileToFragments(a,M),b=[].concat(b,
this.makeCode(" "+this.operator+" "),e),a.level<=M?b:this.wrapInBraces(b)}};b.prototype.compileChain=function(a){var b;b=this.first.second.cache(a);this.first.second=b[0];b=b[1];a=this.first.compileToFragments(a,M).concat(this.makeCode(" "+(this.invert?"\x26\x26":"||")+" "),b.compileToFragments(a),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(a,M));return this.wrapInBraces(a)};b.prototype.compileExistence=function(a){var b,e;this.first.isComplex()?(e=new h(a.scope.freeVariable("ref")),
b=new C(new D(e,this.first))):e=b=this.first;return(new u(new x(b),e,{type:"if"})).addElse(this.second).compileToFragments(a)};b.prototype.compileUnary=function(a){var d,e,c;e=[];d=this.operator;e.push([this.makeCode(d)]);if("!"===d&&this.first instanceof x)return this.first.negated=!this.first.negated,this.first.compileToFragments(a);if(a.level>=z)return(new C(this)).compileToFragments(a);c="+"===d||"-"===d;("new"===d||"typeof"===d||"delete"===d||c&&this.first instanceof b&&this.first.operator===
d)&&e.push([this.makeCode(" ")]);if(c&&this.first instanceof b||"new"===d&&this.first.isStatement(a))this.first=new C(this.first);e.push(this.first.compileToFragments(a,M));this.flip&&e.reverse();return this.joinFragmentArrays(e,"")};b.prototype.compileYield=function(a){var b,e,c;e=[];b=this.operator;null==a.scope.parent&&this.error("yield can only occur inside functions");0<=Ha.call(Object.keys(this.first),"expression")&&!(this.first instanceof ia)?null!=this.first.expression&&e.push(this.first.expression.compileToFragments(a,
M)):(a.level>=P&&e.push([this.makeCode("(")]),e.push([this.makeCode(b)]),""!==(null!=(c=this.first.base)?c.value:void 0)&&e.push([this.makeCode(" ")]),e.push(this.first.compileToFragments(a,M)),a.level>=P&&e.push([this.makeCode(")")]));return this.joinFragmentArrays(e,"")};b.prototype.compilePower=function(a){var b;b=new K(new h("Math"),[new va(new O("pow"))]);return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.compileFloorDivision=function(a){var d,e;e=new K(new h("Math"),
[new va(new O("floor"))]);d=new b("/",this.first,this.second);return(new f(e,[d])).compileToFragments(a)};b.prototype.compileModulo=function(a){var b;b=new K(new r(za("modulo",a)));return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return b}(a);g.In=w=function(a){function b(a,b){this.object=a;this.array=b}na(b,a);b.prototype.children=["object","array"];b.prototype.invert=
U;b.prototype.compileNode=function(a){var b,e,d,c,f;if(this.array instanceof K&&this.array.isArray()&&this.array.base.objects.length){f=this.array.base.objects;e=0;for(d=f.length;e<d;e++)if(c=f[e],c instanceof R){b=!0;break}if(!b)return this.compileOrTest(a)}return this.compileLoopTest(a)};b.prototype.compileOrTest=function(a){var b,e,d,c,f,g,q,h,k,l;b=this.object.cache(a,M);k=b[0];q=b[1];e=this.negated?[" !\x3d\x3d "," \x26\x26 "]:[" \x3d\x3d\x3d "," || "];b=e[0];e=e[1];l=[];h=this.array.base.objects;
d=f=0;for(g=h.length;f<g;d=++f)c=h[d],d&&l.push(this.makeCode(e)),l=l.concat(d?q:k,this.makeCode(b),c.compileToFragments(a,z));return a.level<M?l:this.wrapInBraces(l)};b.prototype.compileLoopTest=function(a){var b,e,d;b=this.object.cache(a,k);d=b[0];e=b[1];b=[].concat(this.makeCode(za("indexOf",a)+".call("),this.array.compileToFragments(a,k),this.makeCode(", "),e,this.makeCode(") "+(this.negated?"\x3c 0":"\x3e\x3d 0")));if(Da(d)===Da(e))return b;b=d.concat(this.makeCode(", "),b);return a.level<k?
b:this.wrapInBraces(b)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+(this.negated?"!":""))};return b}(a);g.Try=function(a){function b(a,b,e,d){this.attempt=a;this.errorVariable=b;this.recovery=e;this.ensure=d}na(b,a);b.prototype.children=["attempt","recovery","ensure"];b.prototype.isStatement=ja;b.prototype.jumps=function(a){var b;return this.attempt.jumps(a)||(null!=(b=this.recovery)?b.jumps(a):void 0)};b.prototype.makeReturn=function(a){this.attempt&&
(this.attempt=this.attempt.makeReturn(a));this.recovery&&(this.recovery=this.recovery.makeReturn(a));return this};b.prototype.compileNode=function(a){var b,e,d,c,f;a.indent+=da;f=this.attempt.compileToFragments(a,n);b=this.recovery?(e=a.scope.freeVariable("error",{reserve:!1}),c=new h(e),this.errorVariable?(d=Ga(this.errorVariable.unwrapAll().value),d?this.errorVariable.error(d):void 0,this.recovery.unshift(new D(this.errorVariable,c))):void 0,[].concat(this.makeCode(" catch ("),c.compileToFragments(a),
this.makeCode(") {\n"),this.recovery.compileToFragments(a,n),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(e=a.scope.freeVariable("error",{reserve:!1}),[this.makeCode(" catch ("+e+") {}")]);a=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(a,n),this.makeCode("\n"+this.tab+"}")):[];return[].concat(this.makeCode(this.tab+"try {\n"),f,this.makeCode("\n"+this.tab+"}"),b,a)};return b}(a);g.Throw=ia=function(a){function b(a){this.expression=a}na(b,
a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.jumps=Q;b.prototype.makeReturn=fa;b.prototype.compileNode=function(a){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(a),this.makeCode(";"))};return b}(a);g.Existence=x=function(a){function b(a){this.expression=a}na(b,a);b.prototype.children=["expression"];b.prototype.invert=U;b.prototype.compileNode=function(a){var b,e,d;this.expression.front=this.front;d=this.expression.compile(a,M);
this.expression.unwrap()instanceof h&&!a.scope.check(d)?(e=this.negated?["\x3d\x3d\x3d","||"]:["!\x3d\x3d","\x26\x26"],b=e[0],e=e[1],d="typeof "+d+" "+b+' "undefined" '+e+" "+d+" "+b+" null"):d=d+" "+(this.negated?"\x3d\x3d":"!\x3d")+" null";return[this.makeCode(a.level<=I?d:"("+d+")")]};return b}(a);g.Parens=C=function(a){function b(a){this.body=a}na(b,a);b.prototype.children=["body"];b.prototype.unwrap=function(){return this.body};b.prototype.isComplex=function(){return this.body.isComplex()};b.prototype.compileNode=
function(a){var b,e;b=this.body.unwrap();if(b instanceof K&&b.isAtomic())return b.front=this.front,b.compileToFragments(a);e=b.compileToFragments(a,P);return a.level<M&&(b instanceof A||b instanceof f||b instanceof l&&b.returns)?e:this.wrapInBraces(e)};return b}(a);g.StringWithInterpolations=Wa=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(a){var c,e,d,f,g;if(!a.inTaggedTemplateCall)return b.__super__.compileNode.apply(this,
(b=this.operator)||"--"===b||"delete"===b)&&Na(a,this,"first")};b.prototype.generateDo=function(a){var b,e,c,g,n;g=[];n=(a instanceof q&&(b=a.value.unwrap())instanceof l?b:a).params||[];b=0;for(e=n.length;b<e;b++)c=n[b],c.value?(g.push(c.value),delete c.value):g.push(c);a=new f(a,g);a["do"]=!0;return a};b.prototype.compileNode=function(a){var b,e;b=this.isChainable()&&this.first.isChainable();b||(this.first.front=this.front);"delete"===this.operator&&a.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var");
("--"===(e=this.operator)||"++"===e)&&(e=Ga(this.first.unwrapAll().value))&&this.first.error(e);if(this.isYield())return this.compileYield(a);if(this.isUnary())return this.compileUnary(a);if(b)return this.compileChain(a);switch(this.operator){case "?":return this.compileExistence(a);case "**":return this.compilePower(a);case "//":return this.compileFloorDivision(a);case "%%":return this.compileModulo(a);default:return b=this.first.compileToFragments(a,y),e=this.second.compileToFragments(a,y),b=[].concat(b,
this.makeCode(" "+this.operator+" "),e),a.level<=y?b:this.wrapInBraces(b)}};b.prototype.compileChain=function(a){var b;b=this.first.second.cache(a);this.first.second=b[0];b=b[1];a=this.first.compileToFragments(a,y).concat(this.makeCode(" "+(this.invert?"\x26\x26":"||")+" "),b.compileToFragments(a),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(a,y));return this.wrapInBraces(a)};b.prototype.compileExistence=function(a){var b,e;this.first.isComplex()?(e=new r(a.scope.freeVariable("ref")),
b=new C(new q(e,this.first))):e=b=this.first;return(new E(new F(b),e,{type:"if"})).addElse(this.second).compileToFragments(a)};b.prototype.compileUnary=function(a){var d,e,c;e=[];d=this.operator;e.push([this.makeCode(d)]);if("!"===d&&this.first instanceof F)return this.first.negated=!this.first.negated,this.first.compileToFragments(a);if(a.level>=t)return(new C(this)).compileToFragments(a);c="+"===d||"-"===d;("new"===d||"typeof"===d||"delete"===d||c&&this.first instanceof b&&this.first.operator===
d)&&e.push([this.makeCode(" ")]);if(c&&this.first instanceof b||"new"===d&&this.first.isStatement(a))this.first=new C(this.first);e.push(this.first.compileToFragments(a,y));this.flip&&e.reverse();return this.joinFragmentArrays(e,"")};b.prototype.compileYield=function(a){var b,e,c;e=[];b=this.operator;null==a.scope.parent&&this.error("yield can only occur inside functions");0<=Ha.call(Object.keys(this.first),"expression")&&!(this.first instanceof ha)?null!=this.first.expression&&e.push(this.first.expression.compileToFragments(a,
y)):(a.level>=P&&e.push([this.makeCode("(")]),e.push([this.makeCode(b)]),""!==(null!=(c=this.first.base)?c.value:void 0)&&e.push([this.makeCode(" ")]),e.push(this.first.compileToFragments(a,y)),a.level>=P&&e.push([this.makeCode(")")]));return this.joinFragmentArrays(e,"")};b.prototype.compilePower=function(a){var b;b=new L(new r("Math"),[new ua(new Q("pow"))]);return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.compileFloorDivision=function(a){var d,e;e=new L(new r("Math"),
[new ua(new Q("floor"))]);d=this.second.isComplex()?new C(this.second):this.second;d=new b("/",this.first,d);return(new f(e,[d])).compileToFragments(a)};b.prototype.compileModulo=function(a){var b;b=new L(new H(za("modulo",a)));return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return b}(a);g.In=O=function(a){function b(a,b){this.object=a;this.array=b}na(b,a);b.prototype.children=
["object","array"];b.prototype.invert=T;b.prototype.compileNode=function(a){var b,e,d,c,f;if(this.array instanceof L&&this.array.isArray()&&this.array.base.objects.length){f=this.array.base.objects;e=0;for(d=f.length;e<d;e++)if(c=f[e],c instanceof R){b=!0;break}if(!b)return this.compileOrTest(a)}return this.compileLoopTest(a)};b.prototype.compileOrTest=function(a){var b,e,d,c,f,g,n,h,k,m;b=this.object.cache(a,y);k=b[0];n=b[1];e=this.negated?[" !\x3d\x3d "," \x26\x26 "]:[" \x3d\x3d\x3d "," || "];b=
e[0];e=e[1];m=[];h=this.array.base.objects;d=f=0;for(g=h.length;f<g;d=++f)c=h[d],d&&m.push(this.makeCode(e)),m=m.concat(d?n:k,this.makeCode(b),c.compileToFragments(a,t));return a.level<y?m:this.wrapInBraces(m)};b.prototype.compileLoopTest=function(a){var b,e,d;b=this.object.cache(a,h);d=b[0];e=b[1];b=[].concat(this.makeCode(za("indexOf",a)+".call("),this.array.compileToFragments(a,h),this.makeCode(", "),e,this.makeCode(") "+(this.negated?"\x3c 0":"\x3e\x3d 0")));if(Da(d)===Da(e))return b;b=d.concat(this.makeCode(", "),
b);return a.level<h?b:this.wrapInBraces(b)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+(this.negated?"!":""))};return b}(a);g.Try=function(a){function b(a,b,e,d){this.attempt=a;this.errorVariable=b;this.recovery=e;this.ensure=d}na(b,a);b.prototype.children=["attempt","recovery","ensure"];b.prototype.isStatement=ja;b.prototype.jumps=function(a){var b;return this.attempt.jumps(a)||(null!=(b=this.recovery)?b.jumps(a):void 0)};b.prototype.makeReturn=
function(a){this.attempt&&(this.attempt=this.attempt.makeReturn(a));this.recovery&&(this.recovery=this.recovery.makeReturn(a));return this};b.prototype.compileNode=function(a){var b,e,d,c,f;a.indent+=ca;f=this.attempt.compileToFragments(a,A);b=this.recovery?(e=a.scope.freeVariable("error",{reserve:!1}),c=new r(e),this.errorVariable?(d=Ga(this.errorVariable.unwrapAll().value),d?this.errorVariable.error(d):void 0,this.recovery.unshift(new q(this.errorVariable,c))):void 0,[].concat(this.makeCode(" catch ("),
c.compileToFragments(a),this.makeCode(") {\n"),this.recovery.compileToFragments(a,A),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(e=a.scope.freeVariable("error",{reserve:!1}),[this.makeCode(" catch ("+e+") {}")]);a=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(a,A),this.makeCode("\n"+this.tab+"}")):[];return[].concat(this.makeCode(this.tab+"try {\n"),f,this.makeCode("\n"+this.tab+"}"),b,a)};return b}(a);g.Throw=ha=function(a){function b(a){this.expression=
a}na(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.jumps=I;b.prototype.makeReturn=ea;b.prototype.compileNode=function(a){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(a),this.makeCode(";"))};return b}(a);g.Existence=F=function(a){function b(a){this.expression=a}na(b,a);b.prototype.children=["expression"];b.prototype.invert=T;b.prototype.compileNode=function(a){var b,e,d;this.expression.front=this.front;d=this.expression.compile(a,
y);this.expression.unwrap()instanceof r&&!a.scope.check(d)?(e=this.negated?["\x3d\x3d\x3d","||"]:["!\x3d\x3d","\x26\x26"],b=e[0],e=e[1],d="typeof "+d+" "+b+' "undefined" '+e+" "+d+" "+b+" null"):d=d+" "+(this.negated?"\x3d\x3d":"!\x3d")+" null";return[this.makeCode(a.level<=p?d:"("+d+")")]};return b}(a);g.Parens=C=function(a){function b(a){this.body=a}na(b,a);b.prototype.children=["body"];b.prototype.unwrap=function(){return this.body};b.prototype.isComplex=function(){return this.body.isComplex()};
b.prototype.compileNode=function(a){var b,e;b=this.body.unwrap();if(b instanceof L&&b.isAtomic())return b.front=this.front,b.compileToFragments(a);e=b.compileToFragments(a,P);return a.level<y&&(b instanceof B||b instanceof f||b instanceof J&&b.returns)?e:this.wrapInBraces(e)};return b}(a);g.StringWithInterpolations=Xa=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.compileNode=function(a){var c,e,d,f,g;if(!a.inTaggedTemplateCall)return b.__super__.compileNode.apply(this,
arguments);d=this.body.unwrap();e=[];d.traverseChildren(!1,function(a){if(a instanceof $a)e.push(a);else if(a instanceof C)return e.push(a),!1;return!0});d=[];d.push(this.makeCode("`"));f=0;for(g=e.length;f<g;f++)c=e[f],c instanceof $a?(c=c.value.slice(1,-1),c=c.replace(/(\\*)(`|\$\{)/g,function(a,b,d){return 0===b.length%2?b+"\\"+d:a}),d.push(this.makeCode(c))):(d.push(this.makeCode("${")),d.push.apply(d,c.compileToFragments(a,P)),d.push(this.makeCode("}")));d.push(this.makeCode("`"));return d};
return b}(C);g.For=l=function(a){function b(a,b){this.source=b.source;this.guard=b.guard;this.step=b.step;this.name=b.name;this.index=b.index;this.body=c.wrap([a]);this.own=!!b.own;this.object=!!b.object;(this.from=!!b.from)&&this.index&&this.index.error("cannot use index with for-from");this.own&&!this.object&&b.ownTag.error("cannot use own with for-"+(this.from?"from":"in"));this.object&&(a=[this.index,this.name],this.name=a[0],this.index=a[1]);this.index instanceof K&&this.index.error("index cannot be a pattern matching expression");
this.range=this.source instanceof K&&this.source.base instanceof Y&&!this.source.properties.length&&!this.from;this.pattern=this.name instanceof K;this.range&&this.index&&this.index.error("indexes do not apply to range loops");this.range&&this.pattern&&this.name.error("cannot pattern match over range loops");this.returns=!1}na(b,a);b.prototype.children=["body","source","guard","step"];b.prototype.compileNode=function(a){var b,e,d,f,g,q,l,m,p,w,t,z,G,x,v,A,E,L,B,y,I;b=c.wrap([this.body]);p=b.expressions;
p=p[p.length-1];(null!=p?p.jumps():void 0)instanceof W&&(this.returns=!1);v=this.range?this.source.base:this.source;d=a.scope;this.pattern||(m=this.name&&this.name.compile(a,k));p=this.index&&this.index.compile(a,k);m&&!this.pattern&&d.find(m);p&&d.find(p);this.returns&&(l=d.freeVariable("results"));this.from?this.pattern&&(t=d.freeVariable("x",{single:!0})):t=this.object&&p||d.freeVariable("i",{single:!0});z=(this.range||this.from)&&m||p||t;G=z!==t?z+" \x3d ":"";this.step&&!this.range&&(p=this.cacheToCodeFragments(this.step.cache(a,
k,ta)),g=p[0],B=p[1],this.step.isNumber()&&(L=Number(B)));this.pattern&&(m=t);q=p=I="";w=this.tab+da;this.range?f=v.compileToFragments(Fa(a,{index:t,name:m,step:this.step,isComplex:ta})):(y=this.source.compile(a,k),!m&&!this.own||this.source.unwrap()instanceof h||(q+=""+this.tab+(v=d.freeVariable("ref"))+" \x3d "+y+";\n",y=v),!m||this.pattern||this.from||(x=m+" \x3d "+y+"["+z+"]"),this.object||this.from||(g!==B&&(q+=""+this.tab+g+";\n"),m=0>L,this.step&&null!=L&&m||(e=d.freeVariable("len")),f=""+
G+t+" \x3d 0, "+e+" \x3d "+y+".length",g=""+G+t+" \x3d "+y+".length - 1",e=t+" \x3c "+e,d=t+" \x3e\x3d 0",this.step?(null!=L?m&&(e=d,f=g):(e=B+" \x3e 0 ? "+e+" : "+d,f="("+B+" \x3e 0 ? ("+f+") : "+g+")"),t=t+" +\x3d "+B):t=""+(z!==t?"++"+t:t+"++"),f=[this.makeCode(f+"; "+e+"; "+G+t)]));this.returns&&(A=""+this.tab+l+" \x3d [];\n",E="\n"+this.tab+"return "+l+";",b.makeReturn(l));this.guard&&(1<b.expressions.length?b.expressions.unshift(new u((new C(this.guard)).invert(),new ya("continue"))):this.guard&&
(b=c.wrap([new u(this.guard,b)])));this.pattern&&b.expressions.unshift(new D(this.name,this.from?new h(z):new r(y+"["+z+"]")));l=[].concat(this.makeCode(q),this.pluckDirectCall(a,b));x&&(I="\n"+w+x+";");this.object?(f=[this.makeCode(z+" in "+y)],this.own&&(p="\n"+w+"if (!"+za("hasProp",a)+".call("+y+", "+z+")) continue;")):this.from&&(f=[this.makeCode(z+" of "+y)]);(a=b.compileToFragments(Fa(a,{indent:w}),n))&&0<a.length&&(a=[].concat(this.makeCode("\n"),a,this.makeCode("\n")));return[].concat(l,
this.makeCode(""+(A||"")+this.tab+"for ("),f,this.makeCode(") {"+p+I),a,this.makeCode(this.tab+"}"+(E||"")))};b.prototype.pluckDirectCall=function(a,b){var c,d,g,q,k,l,p,u,r,w,t,z,G,x,v;d=[];r=b.expressions;k=l=0;for(p=r.length;l<p;k=++l)if(g=r[k],g=g.unwrapAll(),g instanceof f&&(v=null!=(w=g.variable)?w.unwrapAll():void 0,v instanceof m||v instanceof K&&(null!=(t=v.base)?t.unwrapAll():void 0)instanceof m&&1===v.properties.length&&("call"===(z=null!=(G=v.properties[0].name)?G.value:void 0)||"apply"===
z)))q=(null!=(x=v.base)?x.unwrapAll():void 0)||v,u=new h(a.scope.freeVariable("fn")),c=new K(u),v.base&&(c=[c,v],v.base=c[0],c=c[1]),b.expressions[k]=new f(c,g.args),d=d.concat(this.makeCode(this.tab),(new D(u,q)).compileToFragments(a,n),this.makeCode(";\n"));return d};return b}(v);g.Switch=function(a){function b(a,b,c){this.subject=a;this.cases=b;this.otherwise=c}na(b,a);b.prototype.children=["subject","cases","otherwise"];b.prototype.isStatement=ja;b.prototype.jumps=function(a){var b,c,d,f,g;null==
a&&(a={block:!0});f=this.cases;c=0;for(d=f.length;c<d;c++)if(b=f[c],b=b[1],b=b.jumps(a))return b;return null!=(g=this.otherwise)?g.jumps(a):void 0};b.prototype.makeReturn=function(a){var b,e,d,f,g;f=this.cases;b=0;for(e=f.length;b<e;b++)d=f[b],d[1].makeReturn(a);a&&(this.otherwise||(this.otherwise=new c([new r("void 0")])));null!=(g=this.otherwise)&&g.makeReturn(a);return this};b.prototype.compileNode=function(a){var b,c,d,f,g,h,k,q,l,p,m,u,w;k=a.indent+da;q=a.indent=k+da;h=[].concat(this.makeCode(this.tab+
"switch ("),this.subject?this.subject.compileToFragments(a,P):this.makeCode("false"),this.makeCode(") {\n"));u=this.cases;g=l=0;for(p=u.length;l<p;g=++l){b=u[g];f=b[0];b=b[1];w=T([f]);f=0;for(m=w.length;f<m;f++)d=w[f],this.subject||(d=d.invert()),h=h.concat(this.makeCode(k+"case "),d.compileToFragments(a,P),this.makeCode(":\n"));0<(c=b.compileToFragments(a,n)).length&&(h=h.concat(c,this.makeCode("\n")));if(g===this.cases.length-1&&!this.otherwise)break;g=this.lastNonComment(b.expressions);g instanceof
W||g instanceof r&&g.jumps()&&"debugger"!==g.value||h.push(d.makeCode(q+"break;\n"))}this.otherwise&&this.otherwise.expressions.length&&h.push.apply(h,[this.makeCode(k+"default:\n")].concat(Aa.call(this.otherwise.compileToFragments(a,n)),[this.makeCode("\n")]));h.push(this.makeCode(this.tab+"}"));return h};return b}(a);g.If=u=function(a){function b(a,b,c){this.body=b;null==c&&(c={});this.condition="unless"===c.type?a.invert():a;this.elseBody=null;this.isChain=!1;this.soak=c.soak}na(b,a);b.prototype.children=
["condition","body","elseBody"];b.prototype.bodyNode=function(){var a;return null!=(a=this.body)?a.unwrap():void 0};b.prototype.elseBodyNode=function(){var a;return null!=(a=this.elseBody)?a.unwrap():void 0};b.prototype.addElse=function(a){this.isChain?this.elseBodyNode().addElse(a):(this.isChain=a instanceof b,this.elseBody=this.ensureBlock(a),this.elseBody.updateLocationDataIfMissing(a.locationData));return this};b.prototype.isStatement=function(a){var b;return(null!=a?a.level:void 0)===n||this.bodyNode().isStatement(a)||
(null!=(b=this.elseBodyNode())?b.isStatement(a):void 0)};b.prototype.jumps=function(a){var b;return this.body.jumps(a)||(null!=(b=this.elseBody)?b.jumps(a):void 0)};b.prototype.compileNode=function(a){return this.isStatement(a)?this.compileStatement(a):this.compileExpression(a)};b.prototype.makeReturn=function(a){a&&(this.elseBody||(this.elseBody=new c([new r("void 0")])));this.body&&(this.body=new c([this.body.makeReturn(a)]));this.elseBody&&(this.elseBody=new c([this.elseBody.makeReturn(a)]));return this};
b.prototype.ensureBlock=function(a){return a instanceof c?a:new c([a])};b.prototype.compileStatement=function(a){var c,e,d,f;c=ma(a,"chainChild");if(ma(a,"isExistentialEquals"))return(new b(this.condition.invert(),this.elseBodyNode(),{type:"if"})).compileToFragments(a);f=a.indent+da;d=this.condition.compileToFragments(a,P);e=this.ensureBlock(this.body).compileToFragments(Fa(a,{indent:f}));e=[].concat(this.makeCode("if ("),d,this.makeCode(") {\n"),e,this.makeCode("\n"+this.tab+"}"));c||e.unshift(this.makeCode(this.tab));
if(!this.elseBody)return e;c=e.concat(this.makeCode(" else "));this.isChain?(a.chainChild=!0,c=c.concat(this.elseBody.unwrap().compileToFragments(a,n))):c=c.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Fa(a,{indent:f}),n),this.makeCode("\n"+this.tab+"}"));return c};b.prototype.compileExpression=function(a){var b,c,d;d=this.condition.compileToFragments(a,I);c=this.bodyNode().compileToFragments(a,k);b=this.elseBodyNode()?this.elseBodyNode().compileToFragments(a,k):[this.makeCode("void 0")];
b=d.concat(this.makeCode(" ? "),c,this.makeCode(" : "),b);return a.level>=I?this.wrapInBraces(b):b};b.prototype.unfoldSoak=function(){return this.soak&&this};return b}(a);la={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+za("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(); child.__super__ \x3d parent.prototype; return child; }"},
bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i \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"}};n=1;P=2;k=3;I=4;M=5;z=6;da=" ";aa=/^[+-]?\d+$/;za=
function(a,b){var c,f;f=b.scope.root;if(a in f.utilities)return f.utilities[a];c=f.freeVariable(a);f.assign(c,la[a](b));return f.utilities[a]=c};Oa=function(a,b){a=a.replace(/\n/g,"$\x26"+b);return a.replace(/\s+$/,"")};Ia=function(a){return a instanceof h&&"arguments"===a.value};Sa=function(a){return a instanceof ha||a instanceof m&&a.bound||a instanceof ka};ta=function(a){return a.isComplex()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};La=function(a,b,c){if(a=b[c].unfoldSoak(a))return b[c]=
a.body,a.body=new K(b),a}}).call(this);return g}();t["./sourcemap"]=function(){var g={};(function(){var t;t=function(){function g(g){this.line=g;this.columns=[]}g.prototype.add=function(g,a,c){var t;t=a[0];a=a[1];null==c&&(c={});if(!this.columns[g]||!c.noReplace)return this.columns[g]={line:this.line,column:g,sourceLine:t,sourceColumn:a}};g.prototype.sourceLocation=function(g){for(var a;!((a=this.columns[g])||0>=g);)g--;return a&&[a.sourceLine,a.sourceColumn]};return g}();g=function(){function g(){this.lines=
[]}g.prototype.add=function(g,a,c){var D,f;null==c&&(c={});f=a[0];a=a[1];return((D=this.lines)[f]||(D[f]=new t(f))).add(a,g,c)};g.prototype.sourceLocation=function(g){var a,c;a=g[0];for(g=g[1];!((c=this.lines[a])||0>=a);)a--;return c&&c.sourceLocation(g)};g.prototype.generate=function(g,a){var c,t,f,p,m,D,F,x,y,v,E,N,l;null==g&&(g={});null==a&&(a=null);m=D=p=l=0;v=!1;c="";E=this.lines;f=t=0;for(F=E.length;t<F;f=++t)if(f=E[f])for(N=f.columns,f=0,x=N.length;f<x;f++)if(y=N[f]){for(;l<y.line;)p=0,v=!1,
c+=";",l++;v&&(c+=",");c+=this.encodeVlq(y.column-p);p=y.column;c+=this.encodeVlq(0);c+=this.encodeVlq(y.sourceLine-D);D=y.sourceLine;c+=this.encodeVlq(y.sourceColumn-m);m=y.sourceColumn;v=!0}c={version:3,file:g.generatedFile||"",sourceRoot:g.sourceRoot||"",sources:g.sourceFiles||[""],names:[],mappings:c};g.inlineMap&&(c.sourcesContent=[a]);return c};g.prototype.encodeVlq=function(g){var a,c;a="";for(c=(Math.abs(g)<<1)+(0>g?1:0);c||!a;)g=c&31,(c>>=5)&&(g|=32),a+=this.encodeBase64(g);return a};g.prototype.encodeBase64=
function(g){var a;if(!(a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]))throw Error("Cannot Base64 encode value: "+g);return a};return g}()}).call(this);return g}();t["./coffee-script"]=function(){var g={};(function(){var qa,xa,D,a,c,Ca,f,p,m,H,F,x,y,v,E,N={}.hasOwnProperty;f=t("fs");E=t("vm");y=t("path");qa=t("./lexer").Lexer;x=t("./parser").parser;p=t("./helpers");xa=t("./sourcemap");c=t("../../package.json");g.VERSION=c.version;g.FILE_EXTENSIONS=[".coffee",".litcoffee",
".coffee.md"];g.helpers=p;D=function(a){switch(!1){case "function"!==typeof Buffer:return(new Buffer(a)).toString("base64");case "function"!==typeof btoa:return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,c){return String.fromCharCode("0x"+c)}));default:throw Error("Unable to base64 encode inline sourcemap.");}};c=function(a){return function(c,f){null==f&&(f={});try{return a.call(this,c,f)}catch(w){if("string"!==typeof c)throw w;throw p.updateSyntaxError(w,c,f.filename);}}};g.compile=
a=c(function(a,c){var f,g,h,l,m,t,k,v,y,n,r,E;h=p.extend;c=h({},c);(h=c.sourceMap||c.inlineMap)&&(y=new xa);g=F.tokenize(a,c);l=c;v=[];m=0;for(t=g.length;m<t;m++)f=g[m],"IDENTIFIER"===f[0]&&v.push(f[1]);l.referencedVars=v;if(null==c.bare||!0!==c.bare)for(l=0,m=g.length;l<m;l++)if(f=g[l],"IMPORT"===(k=f[0])||"EXPORT"===k){c.bare=!0;break}m=x.parse(g).compileToFragments(c);g=0;c.header&&(g+=1);c.shiftLine&&(g+=1);f=0;k="";t=0;for(v=m.length;t<v;t++)l=m[t],h&&(l.locationData&&!/^[;\s]*$/.test(l.code)&&
y.add([l.locationData.first_line,l.locationData.first_column],[g,f],{noReplace:!0}),n=p.count(l.code,"\n"),g+=n,f=n?l.code.length-(l.code.lastIndexOf("\n")+1):f+l.code.length),k+=l.code;c.header&&(f="Generated by CoffeeScript "+this.VERSION,k="// "+f+"\n"+k);h&&(E=y.generate(c,a));c.inlineMap&&(a=D(JSON.stringify(E)),h="//# sourceURL\x3d"+(null!=(r=c.filename)?r:"coffeescript"),k=k+"\n"+("//# sourceMappingURL\x3ddata:application/json;base64,"+a)+"\n"+h);return c.sourceMap?{js:k,sourceMap:y,v3SourceMap:JSON.stringify(E,
null,2)}:k});g.tokens=c(function(a,c){return F.tokenize(a,c)});g.nodes=c(function(a,c){return"string"===typeof a?x.parse(F.tokenize(a,c)):x.parse(a)});g.run=function(c,g){var h,l,m;null==g&&(g={});l=t.main;l.filename=process.argv[1]=g.filename?f.realpathSync(g.filename):".";l.moduleCache&&(l.moduleCache={});h=g.filename?y.dirname(f.realpathSync(g.filename)):f.realpathSync(".");l.paths=t("module")._nodeModulePaths(h);if(!p.isCoffee(l.filename)||t.extensions)c=a(c,g),c=null!=(m=c.js)?m:c;return l._compile(c,
l.filename)};g.eval=function(c,f){var g,h,l,m,p,v,k,x,D,n;null==f&&(f={});if(c=c.trim()){m=null!=(p=E.Script.createContext)?p:E.createContext;p=null!=(l=E.isContext)?l:function(a){return f.sandbox instanceof m().constructor};if(m){if(null!=f.sandbox){if(p(f.sandbox))n=f.sandbox;else for(v in n=m(),p=f.sandbox,p)N.call(p,v)&&(l=p[v],n[v]=l);n.global=n.root=n.GLOBAL=n}else n=global;n.__filename=f.filename||"eval";n.__dirname=y.dirname(n.__filename);if(n===global&&!n.module&&!n.require){g=t("module");
n.module=h=new g(f.modulename||"eval");n.require=l=function(a){return g._load(a,h,!0)};h.filename=n.__filename;D=Object.getOwnPropertyNames(t);p=0;for(k=D.length;p<k;p++)x=D[p],"paths"!==x&&"arguments"!==x&&"caller"!==x&&(l[x]=t[x]);l.paths=h.paths=g._nodeModulePaths(process.cwd());l.resolve=function(a){return g._resolveFilename(a,h)}}}p={};for(v in f)N.call(f,v)&&(l=f[v],p[v]=l);p.bare=!0;c=a(c,p);return n===global?E.runInThisContext(c):E.runInContext(c,n)}};g.register=function(){return t("./register")};
if(t.extensions)for(v=this.FILE_EXTENSIONS,Ca=function(a){var c;return null!=(c=t.extensions)[a]?c[a]:c[a]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+a+" files.");}},m=0,H=v.length;m<H;m++)c=v[m],Ca(c);g._compileFile=function(c,g,m){var h,l;null==g&&(g=!1);null==m&&(m=!1);l=f.readFileSync(c,"utf8");l=65279===l.charCodeAt(0)?l.substring(1):l;try{h=a(l,{filename:c,sourceMap:g,inlineMap:m,sourceFiles:[c],literate:p.isLiterate(c)})}catch(L){throw p.updateSyntaxError(L,
l,c);}return h};F=new qa;x.lexer={lex:function(){var a,c;(c=x.tokens[this.pos++])?(a=c[0],this.yytext=c[1],this.yylloc=c[2],x.errorToken=c.origin||c,this.yylineno=this.yylloc.first_line):a="";return a},setInput:function(a){x.tokens=a;return this.pos=0},upcomingInput:function(){return""}};x.yy=t("./nodes");x.yy.parseError=function(a,c){var f,g,h,l;h=x.errorToken;l=x.tokens;f=h[0];g=h[1];a=h[2];g=function(){switch(!1){case h!==l[l.length-1]:return"end of input";case "INDENT"!==f&&"OUTDENT"!==f:return"indentation";
case "IDENTIFIER"!==f&&"NUMBER"!==f&&"INFINITY"!==f&&"STRING"!==f&&"STRING_START"!==f&&"REGEX"!==f&&"REGEX_START"!==f:return f.replace(/_START$/,"").toLowerCase();default:return p.nameWhitespaceCharacter(g)}}();return p.throwSyntaxError("unexpected "+g,a)}}).call(this);return g}();t["./browser"]=function(){(function(){var g,qa,xa,D=[].indexOf||function(a){for(var c=0,g=this.length;c<g;c++)if(c in this&&this[c]===a)return c;return-1};g=t("./coffee-script");g.require=t;qa=g.compile;g.eval=function(a,
c){null==c&&(c={});null==c.bare&&(c.bare=!0);return eval(qa(a,c))};g.run=function(a,c){null==c&&(c={});c.bare=!0;c.shiftLine=!0;return Function(qa(a,c))()};"undefined"!==typeof window&&null!==window&&("undefined"!==typeof btoa&&null!==btoa&&"undefined"!==typeof JSON&&null!==JSON&&(qa=function(a,c){null==c&&(c={});c.inlineMap=!0;return g.compile(a,c)}),g.load=function(a,c,t,f){var p;null==t&&(t={});null==f&&(f=!1);t.sourceFiles=[a];p=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):
new window.XMLHttpRequest;p.open("GET",a,!0);"overrideMimeType"in p&&p.overrideMimeType("text/plain");p.onreadystatechange=function(){var m;if(4===p.readyState){if(0===(m=p.status)||200===m)m=[p.responseText,t],f||g.run.apply(g,m);else throw Error("Could not load "+a);if(c)return c(m)}};return p.send(null)},xa=function(){var a,c,t,f,p,m,H,F,x,y,v;v=window.document.getElementsByTagName("script");c=["text/coffeescript","text/literate-coffeescript"];a=function(){var a,f,g,h;h=[];a=0;for(f=v.length;a<
f;a++)x=v[a],(g=x.type,0<=D.call(c,g))&&h.push(x);return h}();m=0;t=function(){var c;c=a[m];if(c instanceof Array)return g.run.apply(g,c),m++,t()};f=function(f,m){var l,h;l={literate:f.type===c[1]};if(h=f.src||f.getAttribute("data-src"))return g.load(h,function(c){a[m]=c;return t()},l,!0);l.sourceFiles=["embedded"];return a[m]=[f.innerHTML,l]};p=H=0;for(F=a.length;H<F;p=++H)y=a[p],f(y,p);return t()},window.addEventListener?window.addEventListener("DOMContentLoaded",xa,!1):window.attachEvent("onload",
xa))}).call(this);return{}}();return t["./coffee-script"]}();"function"===typeof define&&define.amd?define(function(){return ya}):t.CoffeeScript=ya})(this);
return b}(C);g.For=J=function(a){function b(a,b){this.source=b.source;this.guard=b.guard;this.step=b.step;this.name=b.name;this.index=b.index;this.body=c.wrap([a]);this.own=!!b.own;this.object=!!b.object;(this.from=!!b.from)&&this.index&&this.index.error("cannot use index with for-from");this.own&&!this.object&&b.ownTag.error("cannot use own with for-"+(this.from?"from":"in"));this.object&&(a=[this.index,this.name],this.name=a[0],this.index=a[1]);this.index instanceof L&&!this.index.isAssignable()&&
this.index.error("index cannot be a pattern matching expression");this.range=this.source instanceof L&&this.source.base instanceof X&&!this.source.properties.length&&!this.from;this.pattern=this.name instanceof L;this.range&&this.index&&this.index.error("indexes do not apply to range loops");this.range&&this.pattern&&this.name.error("cannot pattern match over range loops");this.returns=!1}na(b,a);b.prototype.children=["body","source","guard","step"];b.prototype.compileNode=function(a){var b,e,d,f,
g,k,n,m,l,t,p,y,v,u,w,z,B,x,D,I,P;b=c.wrap([this.body]);l=b.expressions;l=l[l.length-1];(null!=l?l.jumps():void 0)instanceof V&&(this.returns=!1);w=this.range?this.source.base:this.source;d=a.scope;this.pattern||(m=this.name&&this.name.compile(a,h));l=this.index&&this.index.compile(a,h);m&&!this.pattern&&d.find(m);!l||this.index instanceof L||d.find(l);this.returns&&(n=d.freeVariable("results"));this.from?this.pattern&&(p=d.freeVariable("x",{single:!0})):p=this.object&&l||d.freeVariable("i",{single:!0});
y=(this.range||this.from)&&m||l||p;v=y!==p?y+" \x3d ":"";this.step&&!this.range&&(l=this.cacheToCodeFragments(this.step.cache(a,h,ta)),g=l[0],D=l[1],this.step.isNumber()&&(x=Number(D)));this.pattern&&(m=p);k=l=P="";t=this.tab+ca;this.range?f=w.compileToFragments(Fa(a,{index:p,name:m,step:this.step,isComplex:ta})):(I=this.source.compile(a,h),!m&&!this.own||this.source.unwrap()instanceof r||(k+=""+this.tab+(w=d.freeVariable("ref"))+" \x3d "+I+";\n",I=w),!m||this.pattern||this.from||(u=m+" \x3d "+I+
"["+y+"]"),this.object||this.from||(g!==D&&(k+=""+this.tab+g+";\n"),m=0>x,this.step&&null!=x&&m||(e=d.freeVariable("len")),f=""+v+p+" \x3d 0, "+e+" \x3d "+I+".length",g=""+v+p+" \x3d "+I+".length - 1",e=p+" \x3c "+e,d=p+" \x3e\x3d 0",this.step?(null!=x?m&&(e=d,f=g):(e=D+" \x3e 0 ? "+e+" : "+d,f="("+D+" \x3e 0 ? ("+f+") : "+g+")"),p=p+" +\x3d "+D):p=""+(y!==p?"++"+p:p+"++"),f=[this.makeCode(f+"; "+e+"; "+v+p)]));this.returns&&(z=""+this.tab+n+" \x3d [];\n",B="\n"+this.tab+"return "+n+";",b.makeReturn(n));
this.guard&&(1<b.expressions.length?b.expressions.unshift(new E((new C(this.guard)).invert(),new ya("continue"))):this.guard&&(b=c.wrap([new E(this.guard,b)])));this.pattern&&b.expressions.unshift(new q(this.name,this.from?new r(y):new H(I+"["+y+"]")));n=[].concat(this.makeCode(k),this.pluckDirectCall(a,b));u&&(P="\n"+t+u+";");this.object?(f=[this.makeCode(y+" in "+I)],this.own&&(l="\n"+t+"if (!"+za("hasProp",a)+".call("+I+", "+y+")) continue;")):this.from&&(f=[this.makeCode(y+" of "+I)]);(a=b.compileToFragments(Fa(a,
{indent:t}),A))&&0<a.length&&(a=[].concat(this.makeCode("\n"),a,this.makeCode("\n")));return[].concat(n,this.makeCode(""+(z||"")+this.tab+"for ("),f,this.makeCode(") {"+l+P),a,this.makeCode(this.tab+"}"+(B||"")))};b.prototype.pluckDirectCall=function(a,b){var c,d,g,k,h,m,n,p,t,y,v,u,w,z,x;d=[];t=b.expressions;h=m=0;for(n=t.length;m<n;h=++m)if(g=t[h],g=g.unwrapAll(),g instanceof f&&(x=null!=(y=g.variable)?y.unwrapAll():void 0,x instanceof l||x instanceof L&&(null!=(v=x.base)?v.unwrapAll():void 0)instanceof
l&&1===x.properties.length&&("call"===(u=null!=(w=x.properties[0].name)?w.value:void 0)||"apply"===u)))k=(null!=(z=x.base)?z.unwrapAll():void 0)||x,p=new r(a.scope.freeVariable("fn")),c=new L(p),x.base&&(c=[c,x],x.base=c[0],c=c[1]),b.expressions[h]=new f(c,g.args),d=d.concat(this.makeCode(this.tab),(new q(p,k)).compileToFragments(a,A),this.makeCode(";\n"));return d};return b}(v);g.Switch=function(a){function b(a,b,c){this.subject=a;this.cases=b;this.otherwise=c}na(b,a);b.prototype.children=["subject",
"cases","otherwise"];b.prototype.isStatement=ja;b.prototype.jumps=function(a){var b,c,d,f,g;null==a&&(a={block:!0});f=this.cases;c=0;for(d=f.length;c<d;c++)if(b=f[c],b=b[1],b=b.jumps(a))return b;return null!=(g=this.otherwise)?g.jumps(a):void 0};b.prototype.makeReturn=function(a){var b,e,d,f,g;f=this.cases;b=0;for(e=f.length;b<e;b++)d=f[b],d[1].makeReturn(a);a&&(this.otherwise||(this.otherwise=new c([new H("void 0")])));null!=(g=this.otherwise)&&g.makeReturn(a);return this};b.prototype.compileNode=
function(a){var b,c,d,f,g,k,h,m,n,l,p,t,q;h=a.indent+ca;m=a.indent=h+ca;k=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(a,P):this.makeCode("false"),this.makeCode(") {\n"));t=this.cases;g=n=0;for(l=t.length;n<l;g=++n){b=t[g];f=b[0];b=b[1];q=ia([f]);f=0;for(p=q.length;f<p;f++)d=q[f],this.subject||(d=d.invert()),k=k.concat(this.makeCode(h+"case "),d.compileToFragments(a,P),this.makeCode(":\n"));0<(c=b.compileToFragments(a,A)).length&&(k=k.concat(c,this.makeCode("\n")));
if(g===this.cases.length-1&&!this.otherwise)break;g=this.lastNonComment(b.expressions);g instanceof V||g instanceof H&&g.jumps()&&"debugger"!==g.value||k.push(d.makeCode(m+"break;\n"))}this.otherwise&&this.otherwise.expressions.length&&k.push.apply(k,[this.makeCode(h+"default:\n")].concat(Aa.call(this.otherwise.compileToFragments(a,A)),[this.makeCode("\n")]));k.push(this.makeCode(this.tab+"}"));return k};return b}(a);g.If=E=function(a){function b(a,b,c){this.body=b;null==c&&(c={});this.condition=
"unless"===c.type?a.invert():a;this.elseBody=null;this.isChain=!1;this.soak=c.soak}na(b,a);b.prototype.children=["condition","body","elseBody"];b.prototype.bodyNode=function(){var a;return null!=(a=this.body)?a.unwrap():void 0};b.prototype.elseBodyNode=function(){var a;return null!=(a=this.elseBody)?a.unwrap():void 0};b.prototype.addElse=function(a){this.isChain?this.elseBodyNode().addElse(a):(this.isChain=a instanceof b,this.elseBody=this.ensureBlock(a),this.elseBody.updateLocationDataIfMissing(a.locationData));
return this};b.prototype.isStatement=function(a){var b;return(null!=a?a.level:void 0)===A||this.bodyNode().isStatement(a)||(null!=(b=this.elseBodyNode())?b.isStatement(a):void 0)};b.prototype.jumps=function(a){var b;return this.body.jumps(a)||(null!=(b=this.elseBody)?b.jumps(a):void 0)};b.prototype.compileNode=function(a){return this.isStatement(a)?this.compileStatement(a):this.compileExpression(a)};b.prototype.makeReturn=function(a){a&&(this.elseBody||(this.elseBody=new c([new H("void 0")])));this.body&&
(this.body=new c([this.body.makeReturn(a)]));this.elseBody&&(this.elseBody=new c([this.elseBody.makeReturn(a)]));return this};b.prototype.ensureBlock=function(a){return a instanceof c?a:new c([a])};b.prototype.compileStatement=function(a){var c,e,d,f;c=ma(a,"chainChild");if(ma(a,"isExistentialEquals"))return(new b(this.condition.invert(),this.elseBodyNode(),{type:"if"})).compileToFragments(a);f=a.indent+ca;d=this.condition.compileToFragments(a,P);e=this.ensureBlock(this.body).compileToFragments(Fa(a,
{indent:f}));e=[].concat(this.makeCode("if ("),d,this.makeCode(") {\n"),e,this.makeCode("\n"+this.tab+"}"));c||e.unshift(this.makeCode(this.tab));if(!this.elseBody)return e;c=e.concat(this.makeCode(" else "));this.isChain?(a.chainChild=!0,c=c.concat(this.elseBody.unwrap().compileToFragments(a,A))):c=c.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Fa(a,{indent:f}),A),this.makeCode("\n"+this.tab+"}"));return c};b.prototype.compileExpression=function(a){var b,c,d;d=this.condition.compileToFragments(a,
p);c=this.bodyNode().compileToFragments(a,h);b=this.elseBodyNode()?this.elseBodyNode().compileToFragments(a,h):[this.makeCode("void 0")];b=d.concat(this.makeCode(" ? "),c,this.makeCode(" : "),b);return a.level>=p?this.wrapInBraces(b):b};b.prototype.unfoldSoak=function(){return this.soak&&this};return b}(a);la={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+za("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(); child.__super__ \x3d parent.prototype; return child; }"},
bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i \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"}};A=1;P=2;h=3;p=4;y=5;t=6;ca=" ";Z=/^[+-]?\d+$/;za=
function(a,b){var c,f;f=b.scope.root;if(a in f.utilities)return f.utilities[a];c=f.freeVariable(a);f.assign(c,la[a](b));return f.utilities[a]=c};Pa=function(a,b){a=a.replace(/\n/g,"$\x26"+b);return a.replace(/\s+$/,"")};Ja=function(a){return a instanceof r&&"arguments"===a.value};Ta=function(a){return a instanceof ga||a instanceof l&&a.bound||a instanceof ka};ta=function(a){return a.isComplex()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};Na=function(a,b,c){if(a=b[c].unfoldSoak(a))return b[c]=
a.body,a.body=new L(b),a}}).call(this);return g}();u["./sourcemap"]=function(){var g={};(function(){var u;u=function(){function g(g){this.line=g;this.columns=[]}g.prototype.add=function(g,a,c){var q;q=a[0];a=a[1];null==c&&(c={});if(!this.columns[g]||!c.noReplace)return this.columns[g]={line:this.line,column:g,sourceLine:q,sourceColumn:a}};g.prototype.sourceLocation=function(g){for(var a;!((a=this.columns[g])||0>=g);)g--;return a&&[a.sourceLine,a.sourceColumn]};return g}();g=function(){function g(){this.lines=
[]}g.prototype.add=function(g,a,c){var q,f;null==c&&(c={});f=a[0];a=a[1];return((q=this.lines)[f]||(q[f]=new u(f))).add(a,g,c)};g.prototype.sourceLocation=function(g){var a,c;a=g[0];for(g=g[1];!((c=this.lines[a])||0>=a);)a--;return c&&c.sourceLocation(g)};g.prototype.generate=function(g,a){var c,q,f,u,l,w,G,F,x,v,M,N,J;null==g&&(g={});null==a&&(a=null);l=w=u=J=0;v=!1;c="";M=this.lines;f=q=0;for(G=M.length;q<G;f=++q)if(f=M[f])for(N=f.columns,f=0,F=N.length;f<F;f++)if(x=N[f]){for(;J<x.line;)u=0,v=!1,
c+=";",J++;v&&(c+=",");c+=this.encodeVlq(x.column-u);u=x.column;c+=this.encodeVlq(0);c+=this.encodeVlq(x.sourceLine-w);w=x.sourceLine;c+=this.encodeVlq(x.sourceColumn-l);l=x.sourceColumn;v=!0}c={version:3,file:g.generatedFile||"",sourceRoot:g.sourceRoot||"",sources:g.sourceFiles||[""],names:[],mappings:c};g.inlineMap&&(c.sourcesContent=[a]);return c};g.prototype.encodeVlq=function(g){var a,c;a="";for(c=(Math.abs(g)<<1)+(0>g?1:0);c||!a;)g=c&31,(c>>=5)&&(g|=32),a+=this.encodeBase64(g);return a};g.prototype.encodeBase64=
function(g){var a;if(!(a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]))throw Error("Cannot Base64 encode value: "+g);return a};return g}()}).call(this);return g}();u["./coffee-script"]=function(){var g={};(function(){var qa,xa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E,O={}.hasOwnProperty;D=u("fs");E=u("vm");M=u("path");qa=u("./lexer").Lexer;v=u("./parser").parser;w=u("./helpers");xa=u("./sourcemap");c=u("../../package.json");g.VERSION=c.version;g.FILE_EXTENSIONS=[".coffee",".litcoffee",
".coffee.md"];g.helpers=w;q=function(a){switch(!1){case "function"!==typeof Buffer:return(new Buffer(a)).toString("base64");case "function"!==typeof btoa:return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,c){return String.fromCharCode("0x"+c)}));default:throw Error("Unable to base64 encode inline sourcemap.");}};c=function(a){return function(c,f){null==f&&(f={});try{return a.call(this,c,f)}catch(p){if("string"!==typeof c)throw p;throw w.updateSyntaxError(p,c,f.filename);}}};r=
{};J={};g.compile=a=c(function(a,c){var f,g,h,k,m,l,u,D,E,I,F,G,z;h=w.extend;c=h({},c);l=c.sourceMap||c.inlineMap||null==c.filename;h=c.filename||"\x3canonymous\x3e";r[h]=a;l&&(I=new xa);g=x.tokenize(a,c);k=c;E=[];m=0;for(u=g.length;m<u;m++)f=g[m],"IDENTIFIER"===f[0]&&E.push(f[1]);k.referencedVars=E;if(null==c.bare||!0!==c.bare)for(k=0,m=g.length;k<m;k++)if(f=g[k],"IMPORT"===(D=f[0])||"EXPORT"===D){c.bare=!0;break}m=v.parse(g).compileToFragments(c);g=0;c.header&&(g+=1);c.shiftLine&&(g+=1);f=0;D="";
u=0;for(E=m.length;u<E;u++)k=m[u],l&&(k.locationData&&!/^[;\s]*$/.test(k.code)&&I.add([k.locationData.first_line,k.locationData.first_column],[g,f],{noReplace:!0}),F=w.count(k.code,"\n"),g+=F,f=F?k.code.length-(k.code.lastIndexOf("\n")+1):f+k.code.length),D+=k.code;c.header&&(f="Generated by CoffeeScript "+this.VERSION,D="// "+f+"\n"+D);l&&(z=I.generate(c,a),J[h]=I);c.inlineMap&&(a=q(JSON.stringify(z)),h="//# sourceURL\x3d"+(null!=(G=c.filename)?G:"coffeescript"),D=D+"\n"+("//# sourceMappingURL\x3ddata:application/json;base64,"+
a)+"\n"+h);return c.sourceMap?{js:D,sourceMap:I,v3SourceMap:JSON.stringify(z,null,2)}:D});g.tokens=c(function(a,c){return x.tokenize(a,c)});g.nodes=c(function(a,c){return"string"===typeof a?v.parse(x.tokenize(a,c)):v.parse(a)});g.run=function(c,f){var g,k,h;null==f&&(f={});k=u.main;k.filename=process.argv[1]=f.filename?D.realpathSync(f.filename):"\x3canonymous\x3e";k.moduleCache&&(k.moduleCache={});g=null!=f.filename?M.dirname(D.realpathSync(f.filename)):D.realpathSync(".");k.paths=u("module")._nodeModulePaths(g);
if(!w.isCoffee(k.filename)||u.extensions)c=a(c,f),c=null!=(h=c.js)?h:c;return k._compile(c,k.filename)};g.eval=function(c,f){var g,k,h,m,l,r,q,v,x,w;null==f&&(f={});if(c=c.trim()){m=null!=(l=E.Script.createContext)?l:E.createContext;l=null!=(h=E.isContext)?h:function(a){return f.sandbox instanceof m().constructor};if(m){if(null!=f.sandbox){if(l(f.sandbox))w=f.sandbox;else for(r in w=m(),l=f.sandbox,l)O.call(l,r)&&(h=l[r],w[r]=h);w.global=w.root=w.GLOBAL=w}else w=global;w.__filename=f.filename||"eval";
w.__dirname=M.dirname(w.__filename);if(w===global&&!w.module&&!w.require){g=u("module");w.module=k=new g(f.modulename||"eval");w.require=h=function(a){return g._load(a,k,!0)};k.filename=w.__filename;x=Object.getOwnPropertyNames(u);l=0;for(q=x.length;l<q;l++)v=x[l],"paths"!==v&&"arguments"!==v&&"caller"!==v&&(h[v]=u[v]);h.paths=k.paths=g._nodeModulePaths(process.cwd());h.resolve=function(a){return g._resolveFilename(a,k)}}}l={};for(r in f)O.call(f,r)&&(h=f[r],l[r]=h);l.bare=!0;c=a(c,l);return w===
global?E.runInThisContext(c):E.runInContext(c,w)}};g.register=function(){return u("./register")};if(u.extensions)for(N=this.FILE_EXTENSIONS,Ca=function(a){var c;return null!=(c=u.extensions)[a]?c[a]:c[a]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+a+" files.");}},G=0,F=N.length;G<F;G++)c=N[G],Ca(c);g._compileFile=function(c,f,g){var k,h;null==f&&(f=!1);null==g&&(g=!1);h=D.readFileSync(c,"utf8");h=65279===h.charCodeAt(0)?h.substring(1):
h;try{k=a(h,{filename:c,sourceMap:f,inlineMap:g,sourceFiles:[c],literate:w.isLiterate(c)})}catch(y){throw w.updateSyntaxError(y,h,c);}return k};x=new qa;v.lexer={lex:function(){var a,c;(c=v.tokens[this.pos++])?(a=c[0],this.yytext=c[1],this.yylloc=c[2],v.errorToken=c.origin||c,this.yylineno=this.yylloc.first_line):a="";return a},setInput:function(a){v.tokens=a;return this.pos=0},upcomingInput:function(){return""}};v.yy=u("./nodes");v.yy.parseError=function(a,c){var f,g,h,k;h=v.errorToken;k=v.tokens;
f=h[0];g=h[1];a=h[2];g=function(){switch(!1){case h!==k[k.length-1]:return"end of input";case "INDENT"!==f&&"OUTDENT"!==f:return"indentation";case "IDENTIFIER"!==f&&"NUMBER"!==f&&"INFINITY"!==f&&"STRING"!==f&&"STRING_START"!==f&&"REGEX"!==f&&"REGEX_START"!==f:return f.replace(/_START$/,"").toLowerCase();default:return w.nameWhitespaceCharacter(g)}}();return w.throwSyntaxError("unexpected "+g,a)};f=function(a,c){var f,g,h,k;a.isNative()?f="native":(a.isEval()?(g=a.getScriptNameOrSourceURL())||a.getEvalOrigin():
g=a.getFileName(),g||(g="\x3canonymous\x3e"),h=a.getLineNumber(),f=a.getColumnNumber(),f=(c=c(g,h,f))?g+":"+c[0]+":"+c[1]:g+":"+h+":"+f);g=a.getFunctionName();h=a.isConstructor();if(a.isToplevel()||h)return h?"new "+(g||"\x3canonymous\x3e")+" ("+f+")":g?g+" ("+f+")":f;h=a.getMethodName();k=a.getTypeName();return g?(c=a="",k&&g.indexOf(k)&&(c=k+"."),h&&g.indexOf("."+h)!==g.length-h.length-1&&(a=" [as "+h+"]"),""+c+g+a+" ("+f+")"):k+"."+(h||"\x3canonymous\x3e")+" ("+f+")"};l=function(c){return null!=
J[c]?J[c]:null!=J["\x3canonymous\x3e"]?J["\x3canonymous\x3e"]:null!=r[c]?(c=a(r[c],{filename:c,sourceMap:!0,literate:w.isLiterate(c)}),c.sourceMap):null};Error.prepareStackTrace=function(a,c){var k,m,h;h=function(a,c,f){var g;a=l(a);null!=a&&(g=a.sourceLocation([c-1,f-1]));return null!=g?[g[0]+1,g[1]+1]:null};m=function(){var a,l,m;m=[];a=0;for(l=c.length;a<l;a++){k=c[a];if(k.getFunction()===g.run)break;m.push(" at "+f(k,h))}return m}();return a.toString()+"\n"+m.join("\n")+"\n"}}).call(this);
return g}();u["./browser"]=function(){(function(){var g,qa,xa,q=[].indexOf||function(a){for(var c=0,g=this.length;c<g;c++)if(c in this&&this[c]===a)return c;return-1};g=u("./coffee-script");g.require=u;qa=g.compile;g.eval=function(a,c){null==c&&(c={});null==c.bare&&(c.bare=!0);return eval(qa(a,c))};g.run=function(a,c){null==c&&(c={});c.bare=!0;c.shiftLine=!0;return Function(qa(a,c))()};"undefined"!==typeof window&&null!==window&&("undefined"!==typeof btoa&&null!==btoa&&"undefined"!==typeof JSON&&
null!==JSON&&(qa=function(a,c){null==c&&(c={});c.inlineMap=!0;return g.compile(a,c)}),g.load=function(a,c,q,f){var u;null==q&&(q={});null==f&&(f=!1);q.sourceFiles=[a];u=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest;u.open("GET",a,!0);"overrideMimeType"in u&&u.overrideMimeType("text/plain");u.onreadystatechange=function(){var l;if(4===u.readyState){if(0===(l=u.status)||200===l)l=[u.responseText,q],f||g.run.apply(g,l);else throw Error("Could not load "+
a);if(c)return c(l)}};return u.send(null)},xa=function(){var a,c,u,f,D,l,w,G,F,x,v;v=window.document.getElementsByTagName("script");c=["text/coffeescript","text/literate-coffeescript"];a=function(){var a,f,g,l;l=[];a=0;for(f=v.length;a<f;a++)F=v[a],(g=F.type,0<=q.call(c,g))&&l.push(F);return l}();l=0;u=function(){var c;c=a[l];if(c instanceof Array)return g.run.apply(g,c),l++,u()};f=function(f,l){var q,r;q={literate:f.type===c[1]};if(r=f.src||f.getAttribute("data-src"))return g.load(r,function(c){a[l]=
c;return u()},q,!0);q.sourceFiles=["embedded"];return a[l]=[f.innerHTML,q]};D=w=0;for(G=a.length;w<G;D=++w)x=a[D],f(x,D);return u()},window.addEventListener?window.addEventListener("DOMContentLoaded",xa,!1):window.attachEvent("onload",xa))}).call(this);return{}}();return u["./coffee-script"]}();"function"===typeof define&&define.amd?define(function(){return ya}):u.CoffeeScript=ya})(this);

View File

@@ -182,6 +182,9 @@ div.code {
height: 40px;
margin: 5px 0 0 3px;
}
#logo path {
fill: #28334C;
}
.navigation {
height: 50px;
font-size: 11px;
@@ -518,7 +521,7 @@ pre .xml .cdata {
<title>
CoffeeScript Logo
</title>
<path fill="#28334C" d="M21.7 351.1c.1.6-.2 1.1-1.2 1.6-1.3-.7-4.1-1.1-6.4-.9-2.5.2-4.6 1-4.3 2.7.4 1.7 2.8 2.7 7.1 2.3 10.5-.9 10.4-8 25.8-9.4 12-1.1 18.7 2.6 19.6 7.1.7 3.5-2.2 6.9-10.9 7.6-7.7.7-12.2-1.4-12.6-3.5-.2-1.1.4-2.7 4.1-3.1.4 1.7 2.5 3.5 7.5 3 3.6-.3 6.6-1.6 6.2-3.6-.4-2.1-4.2-3.3-10.2-2.8-12.2 1.1-15.2 7.8-25.6 8.7-7.4.7-13.4-2-14.2-6-.3-1.5-.3-5 7.5-5.7 4-.3 7.2.4 7.6 2zm-39 41.8c-3.4 4.3-4.9 9.3-4.6 14.2.3 4.9 2.7 8.9 6.5 12 4 3.1 8.3 4 13.2 3.1 1.9-.3 4-1.3 5.9-1.9-4 0-7.4-1.3-10.8-4-3.7-2.7-6.2-6.5-6.8-11.1-.9-4.3 0-8.3 2.4-11.8 2.7-3.4 6.2-5.3 10.8-5.9 4.6-.3 8.6.9 12.6 3.7-.9-1.3-2.2-2.2-3.4-3.4-4-2.7-8.3-4-13.6-2.7-4.8 1-8.8 3.5-12.2 7.8zm53.6-23.1c-12.9 0-24.4-1.3-32.7-3.1-8.9-2.2-13.6-4.6-13.6-7.7 0-1.3.6-2.4 2.4-3.7-5.6 2.2-8.6 4-8.6 6.8.3 3.1 5.3 6.2 15.5 8.6 9.6 2.4 21.9 3.7 36.7 3.7 15.1 0 27.1-1.3 36.7-3.7 10.2-2.4 15.1-5.6 15.1-8.6 0-2.2-2.2-4.3-6.2-5.9.9.6 1.6 1.6 1.6 2.7 0 3.1-4.6 5.6-13.9 7.7-8.6 1.9-19.6 3.2-33 3.2zm36.8 8.6c-9.6 2.2-21.9 3.7-36.7 3.7-15.1 0-27.4-1.6-37-3.7-8.6-2.2-13.2-4.6-14.8-7.1 1.6 10.8 5.3 21 10.2 30 3.7 5.6 7.4 10.5 11.1 15.8 1.6 3.1 2.7 6.2 3.4 9.3 2.4 3.4 5.9 5.6 10.2 6.8 5.3 1.9 10.8 2.7 16.4 2.4h.6c5.6.3 11.5-.6 16.9-2.4 4-1.3 7.4-3.4 9.9-6.8h.3c.6-3.1 1.6-6.2 3.1-9.3 3.7-5.3 7.4-10.2 11.1-15.8 4.9-8.9 8.3-19.1 10.2-30-2 2.8-6.6 5.2-14.9 7.1zm106.2 30.1c-4.8 12.1-17.6 16.9-25.9 16.9-13.4 0-19.9-6-19.9-22.3 0-16.5 7.9-47.3 31.7-47.3 8.5 0 15.2 3.3 15.2 12.1 0 4.8-1.8 8.3-6.4 8.3-1.5 0-3.4-.4-5.2-2.4 2.2-1.1 4.2-4.9 4.2-8.3 0-2.9-1.5-5.6-5.6-5.6-10 0-18.9 23.9-18.9 42.4 0 8.3 2.2 14.2 10.9 14.2 7.1 0 13.5-3.4 17.7-9.1l2.2 1.1zm32.9-16.3c.4.2.7.2 1 .2 4.2 0 10.1-2.7 14-5.5l.8 2.4c-3.4 3.7-9.5 6.5-16.1 7.5-1.5 16.8-10.6 27.3-21.7 27.3-8.4 0-14.5-4-14.5-14.4 0-10.5 6.2-32.2 24.9-32.2 7.8.3 11.6 5.3 11.6 14.7zm-7.7 5c-1.9-.5-2.4-2-2.4-3.8 0-2.5 1.2-4.2 2.8-4.9-.2-3.8-1.1-5.3-3.4-5.3-6.5 0-12 16.6-12 25.6 0 6 1.2 7.3 4.6 7.3 4.2.1 8.9-8 10.4-18.9zm-6.6 39.7c0-8.3 7.1-11 15.8-13.6l10.9-51.9c2.7-13 10.6-15.5 16.5-15.5 4.1 0 8 2.2 9.7 5.7 3.6-4.6 8.4-5.7 12.4-5.7 5.6 0 10.8 3.9 10.8 9.8 0 1.5-.1 2.6-.3 3.7h-4.3c.1-.9.2-1.7.2-2.4 0-2.1-1.7-3.1-3.4-3.1-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9.1l-.8 3.6h-9l-10.3 49.1c-2.7 13-10.6 15.5-16.5 15.5-5.2 0-8.3-2.3-9.8-5.7-3.5 4.6-8.3 5.7-12.3 5.7-5.6.1-10.8-3.8-10.8-9.7zm9.1 1.8c1.9 0 4.2-1.8 5.4-7.1l1.1-5.3c-5.7 2-10.1 4.4-10.1 9.4 0 1.2 1.7 3 3.6 3zm21.7 0c1.9 0 4.2-1.8 5.4-7.1l2.2-10.4-9.4 1.8-1.8 8.3c-.5 2.1-1.1 4-1.8 5.6.9 1.3 3 1.8 5.4 1.8zm-1.4-18l9.4-1.7 7.7-36.8h-9l-8.1 38.5zm16.6-56.7c-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9l2.1-9.5c.2-.7.2-1.3.2-2 .1-2-1.5-3-3.4-3zm37.9 53c7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.5-10 18.5-20.9 19.2-.1 1.3-.2 2.5-.2 3.6 0 6.2 2.2 7.7 6.5 7.7zm5.3-34.4c-4.6 0-9.1 9.7-10.9 18.7 7-.5 13.2-7.4 13.2-15 0-2.2-.5-3.7-2.3-3.7zm28.6 33.4c3.4 0 7.8-2.3 10.8-4.8-2 10.4-8.4 13.4-15.8 13.4-8.4 0-14.1-4.2-14.1-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.6-10 18.5-20.9 19.2-.1.9-.2 2-.2 2.7 0 5.7 2.5 7.6 5.6 7.6zm6.2-33.4c-4.5 0-9.1 10.1-11 18.7 7.1-.4 13.3-7.3 13.3-15 0-2.2-.6-3.7-2.3-3.7zm51.3-6.7c-1.7 0-3-.6-4.2-1.9 2.4-1.5 4.1-4.8 4.1-7.8 0-3.1-1.8-6.1-6.8-6.1s-8.3 2.8-8.3 8.2c0 13.3 20.5 15.2 20.5 34.8 0 15.3-12.3 22.7-25.6 22.7-10.4 0-19.3-4.5-19.3-15.7 0-9.8 7-14.9 13.3-14.9 3.1 0 7.7 1.3 8 6-4.9 0-10.7 2.3-10.7 8.5 0 4.5 2.9 8.7 8.7 8.7 6.1 0 10.6-4.4 10.6-12 0-15.6-18.6-21.1-18.6-34.5 0-9.5 9.3-16.3 21-16.3 4.3 0 14.6.9 14.6 10.9.1 5.5-2.8 9.4-7.3 9.4zm36.2 10.3c0-2.3-.8-3.7-2.5-3.7-5.7 0-11.7 16.6-11.7 26.7 0 6.2 2.2 7.6 6.6 7.6 7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.6 6-32.3 24.5-32.3 8.1 0 10.1 4.2 10.1 8.3 0 4.4-2.2 6.7-4.8 6.7-1 0-2.1-.4-3.1-1.1.5-1.9.9-3.6.9-5.3zm27.7-7.6l-1.2 5.7c3.1-2.7 6.7-5.7 11-5.7 4.1 0 6.3 3.3 6.3 6.9 0 3.1-2.1 6.7-6.6 6.7-5.1 0-2.5-6-5.3-6-2.7 0-4.4 1.4-6.7 3.4l-7.2 34.6h-13.1l9.6-45.4 13.2-.2zm34.2 0l-6.6 30.9c-.3 1.2-.4 2.1-.4 2.9 0 2.5 1.2 3.3 3.7 3.3 3.5 0 6.9-3.4 8.1-8h3.8c-5.2 14.8-14.2 16.8-19.1 16.8-5.5 0-9.7-3.2-9.7-10.9 0-1.8.3-3.7.7-5.9l6.2-29.2 13.3.1zm-4.1-19.4c4 0 7.2 3.2 7.2 7.2s-3.2 7.1-7.2 7.1-7.1-3.1-7.1-7.1c-.1-4 3.2-7.2 7.1-7.2zm29.1 16l-1.5 6.9c2.6-2.3 6.1-3.9 10.7-3.9 6.2 0 11.1 3.5 11.1 14.4 0 12.2-4.7 32.1-22.3 32.1-4.5 0-6.8-1.6-7.7-3.2l-4.7 22.1-13.7 3.2 15.2-71.5 12.9-.1zm7.8 17c0-7-2.9-7.5-4.5-7.5-2 0-4.5 1.6-6.3 4.4l-5.4 25.5c.4 1 1.4 2.1 3.4 2.1 9.7 0 12.8-15.9 12.8-24.5zm27.8 17.3c-.3 1.1-.5 2.2-.5 3.1 0 1.9.7 3.2 3.1 3.2.7 0 1.7 0 2.4-.3-2.5 7.8-6.6 8.9-9.6 8.9-6.4 0-9.1-4.4-9.1-10.3 0-1.6.2-3.1.6-4.8l5.8-27.2h-3l.7-3.6h3L528 366l13.4-1.9s-1.4 6.2-3.1 14.4h5.5l-.7 3.6h-5.5l-5.7 27.4z"/>
<path d="M21.7 351.1c.1.6-.2 1.1-1.2 1.6-1.3-.7-4.1-1.1-6.4-.9-2.5.2-4.6 1-4.3 2.7.4 1.7 2.8 2.7 7.1 2.3 10.5-.9 10.4-8 25.8-9.4 12-1.1 18.7 2.6 19.6 7.1.7 3.5-2.2 6.9-10.9 7.6-7.7.7-12.2-1.4-12.6-3.5-.2-1.1.4-2.7 4.1-3.1.4 1.7 2.5 3.5 7.5 3 3.6-.3 6.6-1.6 6.2-3.6-.4-2.1-4.2-3.3-10.2-2.8-12.2 1.1-15.2 7.8-25.6 8.7-7.4.7-13.4-2-14.2-6-.3-1.5-.3-5 7.5-5.7 4-.3 7.2.4 7.6 2zm-39 41.8c-3.4 4.3-4.9 9.3-4.6 14.2.3 4.9 2.7 8.9 6.5 12 4 3.1 8.3 4 13.2 3.1 1.9-.3 4-1.3 5.9-1.9-4 0-7.4-1.3-10.8-4-3.7-2.7-6.2-6.5-6.8-11.1-.9-4.3 0-8.3 2.4-11.8 2.7-3.4 6.2-5.3 10.8-5.9 4.6-.3 8.6.9 12.6 3.7-.9-1.3-2.2-2.2-3.4-3.4-4-2.7-8.3-4-13.6-2.7-4.8 1-8.8 3.5-12.2 7.8zm53.6-23.1c-12.9 0-24.4-1.3-32.7-3.1-8.9-2.2-13.6-4.6-13.6-7.7 0-1.3.6-2.4 2.4-3.7-5.6 2.2-8.6 4-8.6 6.8.3 3.1 5.3 6.2 15.5 8.6 9.6 2.4 21.9 3.7 36.7 3.7 15.1 0 27.1-1.3 36.7-3.7 10.2-2.4 15.1-5.6 15.1-8.6 0-2.2-2.2-4.3-6.2-5.9.9.6 1.6 1.6 1.6 2.7 0 3.1-4.6 5.6-13.9 7.7-8.6 1.9-19.6 3.2-33 3.2zm36.8 8.6c-9.6 2.2-21.9 3.7-36.7 3.7-15.1 0-27.4-1.6-37-3.7-8.6-2.2-13.2-4.6-14.8-7.1 1.6 10.8 5.3 21 10.2 30 3.7 5.6 7.4 10.5 11.1 15.8 1.6 3.1 2.7 6.2 3.4 9.3 2.4 3.4 5.9 5.6 10.2 6.8 5.3 1.9 10.8 2.7 16.4 2.4h.6c5.6.3 11.5-.6 16.9-2.4 4-1.3 7.4-3.4 9.9-6.8h.3c.6-3.1 1.6-6.2 3.1-9.3 3.7-5.3 7.4-10.2 11.1-15.8 4.9-8.9 8.3-19.1 10.2-30-2 2.8-6.6 5.2-14.9 7.1zm106.2 30.1c-4.8 12.1-17.6 16.9-25.9 16.9-13.4 0-19.9-6-19.9-22.3 0-16.5 7.9-47.3 31.7-47.3 8.5 0 15.2 3.3 15.2 12.1 0 4.8-1.8 8.3-6.4 8.3-1.5 0-3.4-.4-5.2-2.4 2.2-1.1 4.2-4.9 4.2-8.3 0-2.9-1.5-5.6-5.6-5.6-10 0-18.9 23.9-18.9 42.4 0 8.3 2.2 14.2 10.9 14.2 7.1 0 13.5-3.4 17.7-9.1l2.2 1.1zm32.9-16.3c.4.2.7.2 1 .2 4.2 0 10.1-2.7 14-5.5l.8 2.4c-3.4 3.7-9.5 6.5-16.1 7.5-1.5 16.8-10.6 27.3-21.7 27.3-8.4 0-14.5-4-14.5-14.4 0-10.5 6.2-32.2 24.9-32.2 7.8.3 11.6 5.3 11.6 14.7zm-7.7 5c-1.9-.5-2.4-2-2.4-3.8 0-2.5 1.2-4.2 2.8-4.9-.2-3.8-1.1-5.3-3.4-5.3-6.5 0-12 16.6-12 25.6 0 6 1.2 7.3 4.6 7.3 4.2.1 8.9-8 10.4-18.9zm-6.6 39.7c0-8.3 7.1-11 15.8-13.6l10.9-51.9c2.7-13 10.6-15.5 16.5-15.5 4.1 0 8 2.2 9.7 5.7 3.6-4.6 8.4-5.7 12.4-5.7 5.6 0 10.8 3.9 10.8 9.8 0 1.5-.1 2.6-.3 3.7h-4.3c.1-.9.2-1.7.2-2.4 0-2.1-1.7-3.1-3.4-3.1-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9.1l-.8 3.6h-9l-10.3 49.1c-2.7 13-10.6 15.5-16.5 15.5-5.2 0-8.3-2.3-9.8-5.7-3.5 4.6-8.3 5.7-12.3 5.7-5.6.1-10.8-3.8-10.8-9.7zm9.1 1.8c1.9 0 4.2-1.8 5.4-7.1l1.1-5.3c-5.7 2-10.1 4.4-10.1 9.4 0 1.2 1.7 3 3.6 3zm21.7 0c1.9 0 4.2-1.8 5.4-7.1l2.2-10.4-9.4 1.8-1.8 8.3c-.5 2.1-1.1 4-1.8 5.6.9 1.3 3 1.8 5.4 1.8zm-1.4-18l9.4-1.7 7.7-36.8h-9l-8.1 38.5zm16.6-56.7c-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9l2.1-9.5c.2-.7.2-1.3.2-2 .1-2-1.5-3-3.4-3zm37.9 53c7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.5-10 18.5-20.9 19.2-.1 1.3-.2 2.5-.2 3.6 0 6.2 2.2 7.7 6.5 7.7zm5.3-34.4c-4.6 0-9.1 9.7-10.9 18.7 7-.5 13.2-7.4 13.2-15 0-2.2-.5-3.7-2.3-3.7zm28.6 33.4c3.4 0 7.8-2.3 10.8-4.8-2 10.4-8.4 13.4-15.8 13.4-8.4 0-14.1-4.2-14.1-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.6-10 18.5-20.9 19.2-.1.9-.2 2-.2 2.7 0 5.7 2.5 7.6 5.6 7.6zm6.2-33.4c-4.5 0-9.1 10.1-11 18.7 7.1-.4 13.3-7.3 13.3-15 0-2.2-.6-3.7-2.3-3.7zm51.3-6.7c-1.7 0-3-.6-4.2-1.9 2.4-1.5 4.1-4.8 4.1-7.8 0-3.1-1.8-6.1-6.8-6.1s-8.3 2.8-8.3 8.2c0 13.3 20.5 15.2 20.5 34.8 0 15.3-12.3 22.7-25.6 22.7-10.4 0-19.3-4.5-19.3-15.7 0-9.8 7-14.9 13.3-14.9 3.1 0 7.7 1.3 8 6-4.9 0-10.7 2.3-10.7 8.5 0 4.5 2.9 8.7 8.7 8.7 6.1 0 10.6-4.4 10.6-12 0-15.6-18.6-21.1-18.6-34.5 0-9.5 9.3-16.3 21-16.3 4.3 0 14.6.9 14.6 10.9.1 5.5-2.8 9.4-7.3 9.4zm36.2 10.3c0-2.3-.8-3.7-2.5-3.7-5.7 0-11.7 16.6-11.7 26.7 0 6.2 2.2 7.6 6.6 7.6 7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.6 6-32.3 24.5-32.3 8.1 0 10.1 4.2 10.1 8.3 0 4.4-2.2 6.7-4.8 6.7-1 0-2.1-.4-3.1-1.1.5-1.9.9-3.6.9-5.3zm27.7-7.6l-1.2 5.7c3.1-2.7 6.7-5.7 11-5.7 4.1 0 6.3 3.3 6.3 6.9 0 3.1-2.1 6.7-6.6 6.7-5.1 0-2.5-6-5.3-6-2.7 0-4.4 1.4-6.7 3.4l-7.2 34.6h-13.1l9.6-45.4 13.2-.2zm34.2 0l-6.6 30.9c-.3 1.2-.4 2.1-.4 2.9 0 2.5 1.2 3.3 3.7 3.3 3.5 0 6.9-3.4 8.1-8h3.8c-5.2 14.8-14.2 16.8-19.1 16.8-5.5 0-9.7-3.2-9.7-10.9 0-1.8.3-3.7.7-5.9l6.2-29.2 13.3.1zm-4.1-19.4c4 0 7.2 3.2 7.2 7.2s-3.2 7.1-7.2 7.1-7.1-3.1-7.1-7.1c-.1-4 3.2-7.2 7.1-7.2zm29.1 16l-1.5 6.9c2.6-2.3 6.1-3.9 10.7-3.9 6.2 0 11.1 3.5 11.1 14.4 0 12.2-4.7 32.1-22.3 32.1-4.5 0-6.8-1.6-7.7-3.2l-4.7 22.1-13.7 3.2 15.2-71.5 12.9-.1zm7.8 17c0-7-2.9-7.5-4.5-7.5-2 0-4.5 1.6-6.3 4.4l-5.4 25.5c.4 1 1.4 2.1 3.4 2.1 9.7 0 12.8-15.9 12.8-24.5zm27.8 17.3c-.3 1.1-.5 2.2-.5 3.1 0 1.9.7 3.2 3.1 3.2.7 0 1.7 0 2.4-.3-2.5 7.8-6.6 8.9-9.6 8.9-6.4 0-9.1-4.4-9.1-10.3 0-1.6.2-3.1.6-4.8l5.8-27.2h-3l.7-3.6h3L528 366l13.4-1.9s-1.4 6.2-3.1 14.4h5.5l-.7 3.6h-5.5l-5.7 27.4z"/>
</svg>
</a>
<div class="navigation toc">
@@ -604,7 +607,7 @@ pre .xml .cdata {
<p><strong>CoffeeScript is a little language that compiles into JavaScript.</strong> 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.</p>
<p>The golden rule of CoffeeScript is: <em>“Its just JavaScript”</em>. 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.</p>
<p>The CoffeeScript compiler goes to great lengths to generate output JavaScript that runs in every JavaScript runtime, but there are exceptions. Use <a href="#generator-functions">generator functions</a>, <a href="#generator-iteration"><code>for…from</code></a>, or <a href="#tagged-template-literals">tagged template literals</a> only if you know that your <a href="http://kangax.github.io/compat-table/es6/">target runtimes can support them</a>. If you use <a href="#modules">modules</a>, you will need to <a href="#modules-note">use an additional tool to resolve them</a>.</p>
<p><strong>Latest Version:</strong> <a href="http://github.com/jashkenas/coffeescript/tarball/1.12.2">1.12.2</a></p>
<p><strong>Latest Version:</strong> <a href="http://github.com/jashkenas/coffeescript/tarball/1.12.4">1.12.4</a></p>
<blockquote>
<pre><code>npm install -g coffee-script</code></pre></blockquote>
@@ -727,19 +730,13 @@ cubes = (function() {
})();
;alert(cubes);">run: cubes</div><br class='clear' /></div>
<span class="bookmark" id="installation"></span>
<h2>Installation</h2><p>The CoffeeScript compiler is itself <a href="v1/annotated-source/grammar.html">written in CoffeeScript</a>, using the <a href="http://jison.org">Jison parser generator</a>. The command-line version of <code>coffee</code> is available as a <a href="http://nodejs.org/">Node.js</a> utility. The <a href="v1/browser-compiler/coffee-script.js">core compiler</a> however, does not depend on Node, and can be run in any JavaScript environment, or in the browser (see Try CoffeeScript”, above).</p>
<h2>Installation</h2><p>The command-line version of <code>coffee</code> is available as a <a href="http://nodejs.org/">Node.js</a> utility. The <a href="v1/browser-compiler/coffee-script.js">core compiler</a> however, does not depend on Node, and can be run in any JavaScript environment, or in the browser (see <a href="#try">Try CoffeeScript</a>).</p>
<p>To install, first make sure you have a working copy of the latest stable version of <a href="http://nodejs.org/">Node.js</a>. You can then install CoffeeScript globally with <a href="http://npmjs.org">npm</a>:</p>
<blockquote>
<pre><code>npm install -g coffee-script</code></pre></blockquote>
<p>When you need CoffeeScript as a dependency, install it locally:</p>
<pre><code>npm install --global coffee-script</code></pre></blockquote>
<p>When you need CoffeeScript as a dependency of a project, within that projects folder you can install it locally:</p>
<blockquote>
<pre><code>npm install --save coffee-script</code></pre></blockquote>
<p>If youd prefer to install the latest <strong>master</strong> version of CoffeeScript, you can clone the CoffeeScript <a href="http://github.com/jashkenas/coffeescript">source repository</a> from GitHub, or download <a href="http://github.com/jashkenas/coffeescript/tarball/master">the source</a> directly. To install the latest master CoffeeScript compiler with npm:</p>
<blockquote>
<pre><code>npm install -g jashkenas/coffeescript</code></pre></blockquote>
<p>Or, if you want to install to <code>/usr/local</code>, and dont want to use npm to manage it, open the <code>coffee-script</code> directory and run:</p>
<blockquote>
<pre><code>sudo bin/cake install</code></pre></blockquote>
<span class="bookmark" id="usage"></span>
<h2>Usage</h2><p>Once installed, you should have access to the <code>coffee</code> command, which can execute scripts, compile <code>.coffee</code> files into <code>.js</code>, and provide an interactive REPL. The <code>coffee</code> command takes the following options:</p>
@@ -789,14 +786,6 @@ cubes = (function() {
<tr>
<td><code>-j, --join [FILE]</code></td>
<td>Before compiling, concatenate all scripts together in the order they were passed, and write them into the specified file. (Deprecated.)</td>
</tr>
<tr>
<td><code>-w, --watch</code></td>
<td>Watch files for changes, rerunning the specified command when any file is updated.</td>
@@ -1947,8 +1936,10 @@ ref = weatherReport(&quot;Berkeley, CA&quot;), city = ref[0], temp = ref[1], for
<span class="string">"Bellagio, Italy 22021"</span>
]
{sculptor} = futurists
{poet: {name, address: [street, city]}} = futurists
</code></pre><pre><code><span class="keyword">var</span> city, futurists, name, ref, ref1, street;
</code></pre><pre><code><span class="keyword">var</span> city, futurists, name, ref, ref1, sculptor, street;
futurists = {
<span class="attr">sculptor</span>: <span class="string">"Umberto Boccioni"</span>,
@@ -1959,8 +1950,10 @@ futurists = {
}
};
sculptor = futurists.sculptor;
ref = futurists.poet, name = ref.name, (ref1 = ref.address, street = ref1[<span class="number">0</span>], city = ref1[<span class="number">1</span>]);
</code></pre><script>window.example3 = "futurists =\n sculptor: \"Umberto Boccioni\"\n painter: \"Vladimir Burliuk\"\n poet:\n name: \"F.T. Marinetti\"\n address: [\n \"Via Roma 42R\"\n \"Bellagio, Italy 22021\"\n ]\n\n{poet: {name, address: [street, city]}} = futurists\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example3);'>load</div><div class="minibutton ok" onclick="javascript: var city, futurists, name, ref, ref1, street;
</code></pre><script>window.example3 = "futurists =\n sculptor: \"Umberto Boccioni\"\n painter: \"Vladimir Burliuk\"\n poet:\n name: \"F.T. Marinetti\"\n address: [\n \"Via Roma 42R\"\n \"Bellagio, Italy 22021\"\n ]\n\n{sculptor} = futurists\n\n{poet: {name, address: [street, city]}} = futurists\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example3);'>load</div><div class="minibutton ok" onclick="javascript: var city, futurists, name, ref, ref1, sculptor, street;
futurists = {
sculptor: &quot;Umberto Boccioni&quot;,
@@ -1971,6 +1964,8 @@ futurists = {
}
};
sculptor = futurists.sculptor;
ref = futurists.poet, name = ref.name, (ref1 = ref.address, street = ref1[0], city = ref1[1]);
;alert(name + &quot;-&quot; + street);">run: name + "-" + street</div><br class='clear' /></div><p>Destructuring assignment can even be combined with splats.</p>
<div class='code'><pre><code>tag = <span class="string">"&lt;impossible&gt;"</span>
@@ -2273,7 +2268,7 @@ grade = (<span class="function"><span class="keyword">function</span>(<span clas
}
})();
</code></pre><script>window.example2 = "score = 76\ngrade = switch\n when score < 60 then 'F'\n when score < 70 then 'D'\n when score < 80 then 'C'\n when score < 90 then 'B'\n else 'A'\n# grade == 'C'\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example2);'>load</div><br class='clear' /></div>
<span class="bookmark" id="try"></span>
<span class="bookmark" id="try-catch"></span>
<h2>Try/Catch/Finally</h2><p>Try-expressions have the same semantics as try-statements in JavaScript, though in CoffeeScript, you may omit <em>both</em> the catch and finally parts. The catch part may also omit the error parameter if it is not needed.</p>
<div class='code'><pre><code><span class="keyword">try</span>
allHellBreaksLoose()
@@ -2589,9 +2584,9 @@ task(<span class="string">'build:parser'</span>, <span class="string">'rebuild t
<li><p><a href="http://github.com/jashkenas/coffeescript/">Source Code</a><br>
Use <code>bin/coffee</code> to test your changes,<br>
<code>bin/cake test</code> to run the test suite,<br>
<code>bin/cake build</code> to rebuild the CoffeeScript compiler, and<br>
<code>bin/cake build:parser</code> to regenerate the Jison parser if youre working on the grammar.</p>
<p><code>git checkout lib &amp;&amp; bin/cake build:full</code> is a good command to run when youre working on the core language. Itll refresh the lib directory (in case you broke something), build your altered compiler, use that to rebuild itself (a good sanity test) and then run all of the tests. If they pass, theres a good chance youve made a successful change.</p>
<code>bin/cake build</code> to rebuild the full CoffeeScript compiler, and<br>
<code>bin/cake build:except-parser</code> to recompile much faster if youre not editing <code>grammar.coffee</code>.</p>
<p><code>git checkout lib &amp;&amp; bin/cake build:full</code> is a good command to run when youre working on the core language. Itll refresh the <code>lib</code> folder (in case you broke something), build your altered compiler, use that to rebuild itself (a good sanity test) and then run all of the tests. If they pass, theres a good chance youve made a successful change.</p>
</li>
<li><a href="v1/test.html">Browser Tests</a><br>
Run CoffeeScripts test suite in your current browser.</li>
@@ -2614,7 +2609,26 @@ The CoffeeScript logo is available in SVG for use in presentations.</li>
<button id="open_webchat">click to open #coffeescript</button>
<span class="bookmark" id="changelog"></span>
<h2>Change Log</h2><div class="anchor" id="1.12.2"></div>
<h2>Change Log</h2><div class="anchor" id="1.12.4"></div>
<h2 class="header">
<a href="https://github.com/jashkenas/coffeescript/compare/1.12.3...1.12.4">1.12.4</a>
<span class="timestamp"> &mdash; <time datetime="2017-02-18">February 18, 2017</time></span>
</h2><ul>
<li>The <code>cake</code> commands have been updated, with new <code>watch</code> options for most tasks. Clone the <a href="https://github.com/jashkenas/coffeescript">CoffeeScript repo</a> and run <code>cake</code> at the root of the repo to see the options.</li>
<li>Fixed a bug where <code>export</code>ing a referenced variable was preventing the variable from being declared.</li>
<li>Fixed a bug where the <code>coffee</code> command wasnt working for a <code>.litcoffee</code> file.</li>
<li>Bugfixes related to tokens and location data, for better source maps and improved compatibility with downstream tools.</li>
</ul>
<div class="anchor" id="1.12.3"></div>
<h2 class="header">
<a href="https://github.com/jashkenas/coffeescript/compare/1.12.2...1.12.3">1.12.3</a>
<span class="timestamp"> &mdash; <time datetime="2017-01-24">January 24, 2017</time></span>
</h2><ul>
<li><code>@</code> values can now be used as indices in <code>for</code> expressions. This loosens the compilation of <code>for</code> expressions to allow the index variable to be an <code>@</code> value, e.g. <code>do @visit for @node, @index in nodes</code>. Within <code>@visit</code>, the index of the current node (<code>@node</code>) would be available as <code>@index</code>.</li>
<li>CoffeeScripts patched <code>Error.prepareStackTrace</code> has been restored, with some revisions that should prevent the erroneous exceptions that were making life difficult for some downstream projects. This fixes the incorrect line numbers in stack traces since 1.12.2.</li>
<li>The <code>//=</code> operators output now wraps parentheses around the right operand, like the other assignment operators.</li>
</ul>
<div class="anchor" id="1.12.2"></div>
<h2 class="header">
<a href="https://github.com/jashkenas/coffeescript/compare/1.12.1...1.12.2">1.12.2</a>
<span class="timestamp"> &mdash; <time datetime="2016-12-16">December 16, 2016</time></span>
@@ -3118,7 +3132,7 @@ The <code>extends</code> keyword now functions identically to <code>goog.inherit
</h2><p>Added <code>instanceof</code> and <code>typeof</code> as operators.</p>
<div class="anchor" id="0.1.0"></div>
<h2 class="header">
0.1.0
<a href="https://github.com/jashkenas/coffeescript/compare/8e9d637985d2dc9b44922076ad54ffef7fa8e9c2...0.1.0">0.1.0</a>
<span class="timestamp"> &mdash; <time datetime="2009-12-24">December 24, 2009</time></span>
</h2><p>Initial CoffeeScript release.</p>
@@ -3194,6 +3208,9 @@ $('.navigation').click (e) ->
$(this).addClass 'active'
false
$(document).on 'click', '[href="#try"]', (e) ->
$('.navigation.try').addClass 'active'
# Dismiss console if Escape pressed or click falls outside console
# Trigger Run button on Ctrl-Enter
$(document.body)

View File

@@ -2882,6 +2882,16 @@ test "#2274: Allow @values as loop variables", ->
obj.method()
eq obj.item, 3
test "#4411: Allow @values as loop indices", ->
obj =
index: null
get: -> @index
method: ->
@get() for _, @index in [1, 2, 3]
eq obj.index, null
arrayEq obj.method(), [0, 1, 2]
eq obj.index, 3
test "#2525, #1187, #1208, #1758, looping over an array forwards", ->
list = [0, 1, 2, 3, 4]
@@ -3470,25 +3480,89 @@ test "compiler error formatting with mixed tab and space", ->
if require?
os = require 'os'
fs = require 'fs'
path = require 'path'
test "patchStackTrace line patching", ->
err = new Error 'error'
ok err.stack.match /test[\/\\]error_messages\.coffee:\d+:\d+\b/
test "patchStackTrace stack prelude consistent with V8", ->
err = new Error
ok err.stack.match /^Error\n/ # Notice no colon when no message.
err = new Error 'error'
ok err.stack.match /^Error: error\n/
test "#2849: compilation error in a require()d file", ->
# Create a temporary file to require().
ok not fs.existsSync 'test/syntax-error.coffee'
fs.writeFileSync 'test/syntax-error.coffee', 'foo in bar or in baz'
tempFile = path.join os.tmpdir(), 'syntax-error.coffee'
ok not fs.existsSync tempFile
fs.writeFileSync tempFile, 'foo in bar or in baz'
try
assertErrorFormat '''
require './test/syntax-error'
''',
assertErrorFormat """
require '#{tempFile}'
""",
"""
#{path.join __dirname, 'syntax-error.coffee'}:1:15: error: unexpected in
#{fs.realpathSync tempFile}:1:15: error: unexpected in
foo in bar or in baz
^^
"""
finally
fs.unlinkSync 'test/syntax-error.coffee'
fs.unlinkSync tempFile
test "#3890 Error.prepareStackTrace doesn't throw an error if a compiled file is deleted", ->
# Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee
filePath = path.join os.tmpdir(), 'PrepareStackTraceTestFile.coffee'
fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')"
throwsAnError = require filePath
fs.unlinkSync filePath
try
throwsAnError()
catch error
eq error.message, 'hello world'
doesNotThrow(-> error.stack)
notEqual error.stack.toString().indexOf(filePath), -1
test "#4418 stack traces for compiled files reference the correct line number", ->
filePath = path.join os.tmpdir(), 'StackTraceLineNumberTestFile.coffee'
fileContents = """
testCompiledFileStackTraceLineNumber = ->
# `a` on the next line is undefined and should throw a ReferenceError
console.log a if true
do testCompiledFileStackTraceLineNumber
"""
fs.writeFileSync filePath, fileContents
try
require filePath
catch error
fs.unlinkSync filePath
# Make sure the line number reported is line 3 (the original Coffee source)
# and not line 6 (the generated JavaScript).
eq /StackTraceLineNumberTestFile.coffee:(\d)/.exec(error.stack.toString())[1], '3'
test "#4418 stack traces for compiled strings reference the correct line number", ->
try
CoffeeScript.run """
testCompiledStringStackTraceLineNumber = ->
# `a` on the next line is undefined and should throw a ReferenceError
console.log a if true
do testCompiledStringStackTraceLineNumber
"""
catch error
# Make sure the line number reported is line 3 (the original Coffee source)
# and not line 6 (the generated JavaScript).
eq /at testCompiledStringStackTraceLineNumber.*:(\d):/.exec(error.stack.toString())[1], '3'
test "#1096: unexpected generated tokens", ->
@@ -3844,7 +3918,7 @@ test "#3795: invalid escapes", ->
assertErrorFormat '''
///a \\u002 0 space///
''', '''
[stdin]:1:6: error: invalid escape sequence \\u002
[stdin]:1:6: error: invalid escape sequence \\u002 \n\
///a \\u002 0 space///
^\^^^^^
'''
@@ -4596,6 +4670,13 @@ test "tagged template literals must be called by an identifier", ->
^
'''
test "can't use pattern matches for loop indices", ->
assertErrorFormat 'a for b, {c} in d', '''
[stdin]:1:10: error: index cannot be a pattern matching expression
a for b, {c} in d
^^^
'''
</script>
<script type="text/x-coffeescript" class="test" id="eval">
if vm = require? 'vm'
@@ -7478,6 +7559,29 @@ test "Verify indented heredocs have the right position", ->
eq stringToken[2].last_line, 3
eq stringToken[2].last_column, 4
test "Verify heregexes with interpolations have the right ending position", ->
source = '''
[a ///#{b}///g]
'''
[..., stringEnd, comma, flagsString, regexCallEnd, regexEnd, fnCallEnd,
arrayEnd, terminator] = CoffeeScript.tokens source
eq comma[0], ','
eq arrayEnd[0], ']'
assertColumn = (token, column) ->
eq token[2].first_line, 0
eq token[2].first_column, column
eq token[2].last_line, 0
eq token[2].last_column, column
arrayEndColumn = arrayEnd[2].first_column
for token in [comma, flagsString]
assertColumn token, arrayEndColumn - 2
for token in [regexCallEnd, regexEnd, fnCallEnd]
assertColumn token, arrayEndColumn - 1
assertColumn arrayEnd, arrayEndColumn
test "Verify all tokens get a location", ->
doesNotThrow ->
tokens = CoffeeScript.tokens testScript
@@ -8222,6 +8326,22 @@ test "export an imported aliased member named default", ->
} from 'lib';"""
eq toJS(input), output
test "#4394: export shouldn't prevent variable declarations", ->
input = """
x = 1
export { x }
"""
output = """
var x;
x = 1;
export {
x
};
"""
eq toJS(input), output
</script>
<script type="text/x-coffeescript" class="test" id="numbers">
# Number Literals
@@ -9227,7 +9347,7 @@ test "floor division operator", ->
test "floor division operator compound assignment", ->
a = 7
a //= 2
a //= 1 + 1
eq 3, a
test "modulo operator", ->
@@ -9423,6 +9543,46 @@ test "operator precedence for binary ? operator", ->
eq expression.second.operator, '&&'
eq expression.second.second.base.value, 'c'
test "new calls have a range including the new", ->
source = '''
a = new B().c(d)
'''
block = CoffeeScript.nodes source
assertColumnRange = (node, firstColumn, lastColumn) ->
eq node.locationData.first_line, 0
eq node.locationData.first_column, firstColumn
eq node.locationData.last_line, 0
eq node.locationData.last_column, lastColumn
[assign] = block.expressions
outerCall = assign.value
innerValue = outerCall.variable
innerCall = innerValue.base
assertColumnRange assign, 0, 15
assertColumnRange outerCall, 4, 15
assertColumnRange innerValue, 4, 12
assertColumnRange innerCall, 4, 10
test "location data is properly set for nested `new`", ->
source = '''
new new A()()
'''
block = CoffeeScript.nodes source
assertColumnRange = (node, firstColumn, lastColumn) ->
eq node.locationData.first_line, 0
eq node.locationData.first_column, firstColumn
eq node.locationData.last_line, 0
eq node.locationData.last_column, lastColumn
[outerCall] = block.expressions
innerCall = outerCall.variable
assertColumnRange outerCall, 0, 12
assertColumnRange innerCall, 4, 10
</script>
<script type="text/x-coffeescript" class="test" id="ranges">
# Range Literals
@@ -9823,7 +9983,9 @@ test "#3795: Escape otherwise invalid characters", ->
<script type="text/x-coffeescript" class="test" id="repl">
return if global.testingBrowser
os = require 'os'
fs = require 'fs'
path = require 'path'
# REPL
# ----
@@ -9851,7 +10013,7 @@ class MockOutputStream extends Stream
@written[@written.length - 1 + fromEnd].replace /\r?\n$/, ''
# Create a dummy history file
historyFile = '.coffee_history_test'
historyFile = path.join os.tmpdir(), '.coffee_history_test'
fs.writeFileSync historyFile, '1 + 2\n'
testRepl = (desc, fn) ->
@@ -9930,7 +10092,9 @@ testRepl "keeps running after runtime error", (input, output) ->
eq 'undefined', output.lastWrite()
process.on 'exit', ->
fs.unlinkSync historyFile
try
fs.unlinkSync historyFile
catch exception # Already deleted, nothing else to do.
</script>
<script type="text/x-coffeescript" class="test" id="scope">

View File

@@ -8,4 +8,6 @@ futurists =
"Bellagio, Italy 22021"
]
{sculptor} = futurists
{poet: {name, address: [street, city]}} = futurists

View File

@@ -2,5 +2,5 @@
<title>
CoffeeScript Logo
</title>
<path fill="#28334C" d="M106 228.6c.5 2.3-.9 4.4-5 6.5-5.5-3.1-16.9-4.4-26.7-3.5-10.4.9-19.4 4.2-17.9 11.3 1.5 7.1 11.7 11 29.5 9.5 43.6-3.8 43.4-33.3 107.4-39 49.8-4.4 77.8 11 81.8 29.7 3.1 14.7-9.1 28.6-45.2 31.8-32 2.8-50.7-5.6-52.6-14.6-1-4.5 1.8-11.3 17.2-13.1 1.5 7 10.6 14.4 31.1 12.6 14.8-1.3 27.6-6.6 25.9-14.9-1.8-8.6-17.7-13.7-42.6-11.5-50.7 4.5-63.2 32.5-106.8 36.3-30.8 2.7-55.9-8.5-59.4-25.1-1.3-6.1-1.4-21 31.2-23.9 17.1-1.5 30.7 1.5 32.1 7.9zM-56.4 402.5c-14.3 18-20.4 38.8-19.2 59.2 1.2 20.4 11.4 37.1 26.9 50.2C-32 525-14 528.6 6.4 525c7.8-1.2 16.7-5.3 24.5-7.8-16.7 0-31-5.3-44.9-16.7-15.5-11.4-25.7-26.9-28.2-46.1-3.7-18 0-34.7 10.2-49 11.4-14.3 25.7-22 44.9-24.5 19.2-1.2 35.9 3.7 52.6 15.5-3.7-5.3-9-9-14.3-14.3-16.7-11.4-34.7-16.7-56.7-11.4-19.9 3.6-36.7 13.8-50.9 31.8zm223.6-96.3c-53.9 0-101.6-5.3-136.3-13.1-37.1-9-56.7-19.2-56.7-32.2 0-5.3 2.4-10.2 10.2-15.5-23.3 9-35.9 16.7-35.9 28.2 1.2 13.1 22 25.7 64.5 35.9 40 10.2 91.4 15.5 153 15.5 62.8 0 113-5.3 153-15.5 42.4-10.2 62.8-23.3 62.8-35.9 0-9-9-18-25.7-24.5 3.7 2.4 6.5 6.5 6.5 11.4 0 13.1-19.2 23.3-57.9 32.2-36 8.2-82.1 13.5-137.5 13.5zm153 35.9c-40 9-91.4 15.5-153 15.5-62.8 0-114.2-6.5-154.2-15.5-35.9-9-55.1-19.2-61.6-29.4 6.5 44.9 22 87.3 42.4 124.8 15.5 23.3 31 43.7 46.1 65.7 6.5 13.1 11.4 25.7 14.3 38.8 10.2 14.3 24.5 23.3 42.4 28.2 22 7.8 44.9 11.4 68.1 10.2h2.4c23.3 1.2 47.7-2.4 70.6-10.2 16.7-5.3 31-14.3 41.2-28.2h1.2c2.4-13.1 6.5-25.7 13.1-38.8 15.5-22 31-42.4 46.1-65.7 20.4-37.1 34.7-79.6 42.4-124.8-7.7 11.4-26.9 21.6-61.5 29.4z"/>
<path d="M106 228.6c.5 2.3-.9 4.4-5 6.5-5.5-3.1-16.9-4.4-26.7-3.5-10.4.9-19.4 4.2-17.9 11.3 1.5 7.1 11.7 11 29.5 9.5 43.6-3.8 43.4-33.3 107.4-39 49.8-4.4 77.8 11 81.8 29.7 3.1 14.7-9.1 28.6-45.2 31.8-32 2.8-50.7-5.6-52.6-14.6-1-4.5 1.8-11.3 17.2-13.1 1.5 7 10.6 14.4 31.1 12.6 14.8-1.3 27.6-6.6 25.9-14.9-1.8-8.6-17.7-13.7-42.6-11.5-50.7 4.5-63.2 32.5-106.8 36.3-30.8 2.7-55.9-8.5-59.4-25.1-1.3-6.1-1.4-21 31.2-23.9 17.1-1.5 30.7 1.5 32.1 7.9zM-56.4 402.5c-14.3 18-20.4 38.8-19.2 59.2 1.2 20.4 11.4 37.1 26.9 50.2C-32 525-14 528.6 6.4 525c7.8-1.2 16.7-5.3 24.5-7.8-16.7 0-31-5.3-44.9-16.7-15.5-11.4-25.7-26.9-28.2-46.1-3.7-18 0-34.7 10.2-49 11.4-14.3 25.7-22 44.9-24.5 19.2-1.2 35.9 3.7 52.6 15.5-3.7-5.3-9-9-14.3-14.3-16.7-11.4-34.7-16.7-56.7-11.4-19.9 3.6-36.7 13.8-50.9 31.8zm223.6-96.3c-53.9 0-101.6-5.3-136.3-13.1-37.1-9-56.7-19.2-56.7-32.2 0-5.3 2.4-10.2 10.2-15.5-23.3 9-35.9 16.7-35.9 28.2 1.2 13.1 22 25.7 64.5 35.9 40 10.2 91.4 15.5 153 15.5 62.8 0 113-5.3 153-15.5 42.4-10.2 62.8-23.3 62.8-35.9 0-9-9-18-25.7-24.5 3.7 2.4 6.5 6.5 6.5 11.4 0 13.1-19.2 23.3-57.9 32.2-36 8.2-82.1 13.5-137.5 13.5zm153 35.9c-40 9-91.4 15.5-153 15.5-62.8 0-114.2-6.5-154.2-15.5-35.9-9-55.1-19.2-61.6-29.4 6.5 44.9 22 87.3 42.4 124.8 15.5 23.3 31 43.7 46.1 65.7 6.5 13.1 11.4 25.7 14.3 38.8 10.2 14.3 24.5 23.3 42.4 28.2 22 7.8 44.9 11.4 68.1 10.2h2.4c23.3 1.2 47.7-2.4 70.6-10.2 16.7-5.3 31-14.3 41.2-28.2h1.2c2.4-13.1 6.5-25.7 13.1-38.8 15.5-22 31-42.4 46.1-65.7 20.4-37.1 34.7-79.6 42.4-124.8-7.7 11.4-26.9 21.6-61.5 29.4z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,5 +2,5 @@
<title>
CoffeeScript Logo
</title>
<path fill="#28334C" d="M21.7 351.1c.1.6-.2 1.1-1.2 1.6-1.3-.7-4.1-1.1-6.4-.9-2.5.2-4.6 1-4.3 2.7.4 1.7 2.8 2.7 7.1 2.3 10.5-.9 10.4-8 25.8-9.4 12-1.1 18.7 2.6 19.6 7.1.7 3.5-2.2 6.9-10.9 7.6-7.7.7-12.2-1.4-12.6-3.5-.2-1.1.4-2.7 4.1-3.1.4 1.7 2.5 3.5 7.5 3 3.6-.3 6.6-1.6 6.2-3.6-.4-2.1-4.2-3.3-10.2-2.8-12.2 1.1-15.2 7.8-25.6 8.7-7.4.7-13.4-2-14.2-6-.3-1.5-.3-5 7.5-5.7 4-.3 7.2.4 7.6 2zm-39 41.8c-3.4 4.3-4.9 9.3-4.6 14.2.3 4.9 2.7 8.9 6.5 12 4 3.1 8.3 4 13.2 3.1 1.9-.3 4-1.3 5.9-1.9-4 0-7.4-1.3-10.8-4-3.7-2.7-6.2-6.5-6.8-11.1-.9-4.3 0-8.3 2.4-11.8 2.7-3.4 6.2-5.3 10.8-5.9 4.6-.3 8.6.9 12.6 3.7-.9-1.3-2.2-2.2-3.4-3.4-4-2.7-8.3-4-13.6-2.7-4.8 1-8.8 3.5-12.2 7.8zm53.6-23.1c-12.9 0-24.4-1.3-32.7-3.1-8.9-2.2-13.6-4.6-13.6-7.7 0-1.3.6-2.4 2.4-3.7-5.6 2.2-8.6 4-8.6 6.8.3 3.1 5.3 6.2 15.5 8.6 9.6 2.4 21.9 3.7 36.7 3.7 15.1 0 27.1-1.3 36.7-3.7 10.2-2.4 15.1-5.6 15.1-8.6 0-2.2-2.2-4.3-6.2-5.9.9.6 1.6 1.6 1.6 2.7 0 3.1-4.6 5.6-13.9 7.7-8.6 1.9-19.6 3.2-33 3.2zm36.8 8.6c-9.6 2.2-21.9 3.7-36.7 3.7-15.1 0-27.4-1.6-37-3.7-8.6-2.2-13.2-4.6-14.8-7.1 1.6 10.8 5.3 21 10.2 30 3.7 5.6 7.4 10.5 11.1 15.8 1.6 3.1 2.7 6.2 3.4 9.3 2.4 3.4 5.9 5.6 10.2 6.8 5.3 1.9 10.8 2.7 16.4 2.4h.6c5.6.3 11.5-.6 16.9-2.4 4-1.3 7.4-3.4 9.9-6.8h.3c.6-3.1 1.6-6.2 3.1-9.3 3.7-5.3 7.4-10.2 11.1-15.8 4.9-8.9 8.3-19.1 10.2-30-2 2.8-6.6 5.2-14.9 7.1zm106.2 30.1c-4.8 12.1-17.6 16.9-25.9 16.9-13.4 0-19.9-6-19.9-22.3 0-16.5 7.9-47.3 31.7-47.3 8.5 0 15.2 3.3 15.2 12.1 0 4.8-1.8 8.3-6.4 8.3-1.5 0-3.4-.4-5.2-2.4 2.2-1.1 4.2-4.9 4.2-8.3 0-2.9-1.5-5.6-5.6-5.6-10 0-18.9 23.9-18.9 42.4 0 8.3 2.2 14.2 10.9 14.2 7.1 0 13.5-3.4 17.7-9.1l2.2 1.1zm32.9-16.3c.4.2.7.2 1 .2 4.2 0 10.1-2.7 14-5.5l.8 2.4c-3.4 3.7-9.5 6.5-16.1 7.5-1.5 16.8-10.6 27.3-21.7 27.3-8.4 0-14.5-4-14.5-14.4 0-10.5 6.2-32.2 24.9-32.2 7.8.3 11.6 5.3 11.6 14.7zm-7.7 5c-1.9-.5-2.4-2-2.4-3.8 0-2.5 1.2-4.2 2.8-4.9-.2-3.8-1.1-5.3-3.4-5.3-6.5 0-12 16.6-12 25.6 0 6 1.2 7.3 4.6 7.3 4.2.1 8.9-8 10.4-18.9zm-6.6 39.7c0-8.3 7.1-11 15.8-13.6l10.9-51.9c2.7-13 10.6-15.5 16.5-15.5 4.1 0 8 2.2 9.7 5.7 3.6-4.6 8.4-5.7 12.4-5.7 5.6 0 10.8 3.9 10.8 9.8 0 1.5-.1 2.6-.3 3.7h-4.3c.1-.9.2-1.7.2-2.4 0-2.1-1.7-3.1-3.4-3.1-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9.1l-.8 3.6h-9l-10.3 49.1c-2.7 13-10.6 15.5-16.5 15.5-5.2 0-8.3-2.3-9.8-5.7-3.5 4.6-8.3 5.7-12.3 5.7-5.6.1-10.8-3.8-10.8-9.7zm9.1 1.8c1.9 0 4.2-1.8 5.4-7.1l1.1-5.3c-5.7 2-10.1 4.4-10.1 9.4 0 1.2 1.7 3 3.6 3zm21.7 0c1.9 0 4.2-1.8 5.4-7.1l2.2-10.4-9.4 1.8-1.8 8.3c-.5 2.1-1.1 4-1.8 5.6.9 1.3 3 1.8 5.4 1.8zm-1.4-18l9.4-1.7 7.7-36.8h-9l-8.1 38.5zm16.6-56.7c-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9l2.1-9.5c.2-.7.2-1.3.2-2 .1-2-1.5-3-3.4-3zm37.9 53c7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.5-10 18.5-20.9 19.2-.1 1.3-.2 2.5-.2 3.6 0 6.2 2.2 7.7 6.5 7.7zm5.3-34.4c-4.6 0-9.1 9.7-10.9 18.7 7-.5 13.2-7.4 13.2-15 0-2.2-.5-3.7-2.3-3.7zm28.6 33.4c3.4 0 7.8-2.3 10.8-4.8-2 10.4-8.4 13.4-15.8 13.4-8.4 0-14.1-4.2-14.1-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.6-10 18.5-20.9 19.2-.1.9-.2 2-.2 2.7 0 5.7 2.5 7.6 5.6 7.6zm6.2-33.4c-4.5 0-9.1 10.1-11 18.7 7.1-.4 13.3-7.3 13.3-15 0-2.2-.6-3.7-2.3-3.7zm51.3-6.7c-1.7 0-3-.6-4.2-1.9 2.4-1.5 4.1-4.8 4.1-7.8 0-3.1-1.8-6.1-6.8-6.1s-8.3 2.8-8.3 8.2c0 13.3 20.5 15.2 20.5 34.8 0 15.3-12.3 22.7-25.6 22.7-10.4 0-19.3-4.5-19.3-15.7 0-9.8 7-14.9 13.3-14.9 3.1 0 7.7 1.3 8 6-4.9 0-10.7 2.3-10.7 8.5 0 4.5 2.9 8.7 8.7 8.7 6.1 0 10.6-4.4 10.6-12 0-15.6-18.6-21.1-18.6-34.5 0-9.5 9.3-16.3 21-16.3 4.3 0 14.6.9 14.6 10.9.1 5.5-2.8 9.4-7.3 9.4zm36.2 10.3c0-2.3-.8-3.7-2.5-3.7-5.7 0-11.7 16.6-11.7 26.7 0 6.2 2.2 7.6 6.6 7.6 7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.6 6-32.3 24.5-32.3 8.1 0 10.1 4.2 10.1 8.3 0 4.4-2.2 6.7-4.8 6.7-1 0-2.1-.4-3.1-1.1.5-1.9.9-3.6.9-5.3zm27.7-7.6l-1.2 5.7c3.1-2.7 6.7-5.7 11-5.7 4.1 0 6.3 3.3 6.3 6.9 0 3.1-2.1 6.7-6.6 6.7-5.1 0-2.5-6-5.3-6-2.7 0-4.4 1.4-6.7 3.4l-7.2 34.6h-13.1l9.6-45.4 13.2-.2zm34.2 0l-6.6 30.9c-.3 1.2-.4 2.1-.4 2.9 0 2.5 1.2 3.3 3.7 3.3 3.5 0 6.9-3.4 8.1-8h3.8c-5.2 14.8-14.2 16.8-19.1 16.8-5.5 0-9.7-3.2-9.7-10.9 0-1.8.3-3.7.7-5.9l6.2-29.2 13.3.1zm-4.1-19.4c4 0 7.2 3.2 7.2 7.2s-3.2 7.1-7.2 7.1-7.1-3.1-7.1-7.1c-.1-4 3.2-7.2 7.1-7.2zm29.1 16l-1.5 6.9c2.6-2.3 6.1-3.9 10.7-3.9 6.2 0 11.1 3.5 11.1 14.4 0 12.2-4.7 32.1-22.3 32.1-4.5 0-6.8-1.6-7.7-3.2l-4.7 22.1-13.7 3.2 15.2-71.5 12.9-.1zm7.8 17c0-7-2.9-7.5-4.5-7.5-2 0-4.5 1.6-6.3 4.4l-5.4 25.5c.4 1 1.4 2.1 3.4 2.1 9.7 0 12.8-15.9 12.8-24.5zm27.8 17.3c-.3 1.1-.5 2.2-.5 3.1 0 1.9.7 3.2 3.1 3.2.7 0 1.7 0 2.4-.3-2.5 7.8-6.6 8.9-9.6 8.9-6.4 0-9.1-4.4-9.1-10.3 0-1.6.2-3.1.6-4.8l5.8-27.2h-3l.7-3.6h3L528 366l13.4-1.9s-1.4 6.2-3.1 14.4h5.5l-.7 3.6h-5.5l-5.7 27.4z"/>
<path d="M21.7 351.1c.1.6-.2 1.1-1.2 1.6-1.3-.7-4.1-1.1-6.4-.9-2.5.2-4.6 1-4.3 2.7.4 1.7 2.8 2.7 7.1 2.3 10.5-.9 10.4-8 25.8-9.4 12-1.1 18.7 2.6 19.6 7.1.7 3.5-2.2 6.9-10.9 7.6-7.7.7-12.2-1.4-12.6-3.5-.2-1.1.4-2.7 4.1-3.1.4 1.7 2.5 3.5 7.5 3 3.6-.3 6.6-1.6 6.2-3.6-.4-2.1-4.2-3.3-10.2-2.8-12.2 1.1-15.2 7.8-25.6 8.7-7.4.7-13.4-2-14.2-6-.3-1.5-.3-5 7.5-5.7 4-.3 7.2.4 7.6 2zm-39 41.8c-3.4 4.3-4.9 9.3-4.6 14.2.3 4.9 2.7 8.9 6.5 12 4 3.1 8.3 4 13.2 3.1 1.9-.3 4-1.3 5.9-1.9-4 0-7.4-1.3-10.8-4-3.7-2.7-6.2-6.5-6.8-11.1-.9-4.3 0-8.3 2.4-11.8 2.7-3.4 6.2-5.3 10.8-5.9 4.6-.3 8.6.9 12.6 3.7-.9-1.3-2.2-2.2-3.4-3.4-4-2.7-8.3-4-13.6-2.7-4.8 1-8.8 3.5-12.2 7.8zm53.6-23.1c-12.9 0-24.4-1.3-32.7-3.1-8.9-2.2-13.6-4.6-13.6-7.7 0-1.3.6-2.4 2.4-3.7-5.6 2.2-8.6 4-8.6 6.8.3 3.1 5.3 6.2 15.5 8.6 9.6 2.4 21.9 3.7 36.7 3.7 15.1 0 27.1-1.3 36.7-3.7 10.2-2.4 15.1-5.6 15.1-8.6 0-2.2-2.2-4.3-6.2-5.9.9.6 1.6 1.6 1.6 2.7 0 3.1-4.6 5.6-13.9 7.7-8.6 1.9-19.6 3.2-33 3.2zm36.8 8.6c-9.6 2.2-21.9 3.7-36.7 3.7-15.1 0-27.4-1.6-37-3.7-8.6-2.2-13.2-4.6-14.8-7.1 1.6 10.8 5.3 21 10.2 30 3.7 5.6 7.4 10.5 11.1 15.8 1.6 3.1 2.7 6.2 3.4 9.3 2.4 3.4 5.9 5.6 10.2 6.8 5.3 1.9 10.8 2.7 16.4 2.4h.6c5.6.3 11.5-.6 16.9-2.4 4-1.3 7.4-3.4 9.9-6.8h.3c.6-3.1 1.6-6.2 3.1-9.3 3.7-5.3 7.4-10.2 11.1-15.8 4.9-8.9 8.3-19.1 10.2-30-2 2.8-6.6 5.2-14.9 7.1zm106.2 30.1c-4.8 12.1-17.6 16.9-25.9 16.9-13.4 0-19.9-6-19.9-22.3 0-16.5 7.9-47.3 31.7-47.3 8.5 0 15.2 3.3 15.2 12.1 0 4.8-1.8 8.3-6.4 8.3-1.5 0-3.4-.4-5.2-2.4 2.2-1.1 4.2-4.9 4.2-8.3 0-2.9-1.5-5.6-5.6-5.6-10 0-18.9 23.9-18.9 42.4 0 8.3 2.2 14.2 10.9 14.2 7.1 0 13.5-3.4 17.7-9.1l2.2 1.1zm32.9-16.3c.4.2.7.2 1 .2 4.2 0 10.1-2.7 14-5.5l.8 2.4c-3.4 3.7-9.5 6.5-16.1 7.5-1.5 16.8-10.6 27.3-21.7 27.3-8.4 0-14.5-4-14.5-14.4 0-10.5 6.2-32.2 24.9-32.2 7.8.3 11.6 5.3 11.6 14.7zm-7.7 5c-1.9-.5-2.4-2-2.4-3.8 0-2.5 1.2-4.2 2.8-4.9-.2-3.8-1.1-5.3-3.4-5.3-6.5 0-12 16.6-12 25.6 0 6 1.2 7.3 4.6 7.3 4.2.1 8.9-8 10.4-18.9zm-6.6 39.7c0-8.3 7.1-11 15.8-13.6l10.9-51.9c2.7-13 10.6-15.5 16.5-15.5 4.1 0 8 2.2 9.7 5.7 3.6-4.6 8.4-5.7 12.4-5.7 5.6 0 10.8 3.9 10.8 9.8 0 1.5-.1 2.6-.3 3.7h-4.3c.1-.9.2-1.7.2-2.4 0-2.1-1.7-3.1-3.4-3.1-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9.1l-.8 3.6h-9l-10.3 49.1c-2.7 13-10.6 15.5-16.5 15.5-5.2 0-8.3-2.3-9.8-5.7-3.5 4.6-8.3 5.7-12.3 5.7-5.6.1-10.8-3.8-10.8-9.7zm9.1 1.8c1.9 0 4.2-1.8 5.4-7.1l1.1-5.3c-5.7 2-10.1 4.4-10.1 9.4 0 1.2 1.7 3 3.6 3zm21.7 0c1.9 0 4.2-1.8 5.4-7.1l2.2-10.4-9.4 1.8-1.8 8.3c-.5 2.1-1.1 4-1.8 5.6.9 1.3 3 1.8 5.4 1.8zm-1.4-18l9.4-1.7 7.7-36.8h-9l-8.1 38.5zm16.6-56.7c-2 0-4.8 1.1-6.2 7.1l-1.7 7.4h9l2.1-9.5c.2-.7.2-1.3.2-2 .1-2-1.5-3-3.4-3zm37.9 53c7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.5-10 18.5-20.9 19.2-.1 1.3-.2 2.5-.2 3.6 0 6.2 2.2 7.7 6.5 7.7zm5.3-34.4c-4.6 0-9.1 9.7-10.9 18.7 7-.5 13.2-7.4 13.2-15 0-2.2-.5-3.7-2.3-3.7zm28.6 33.4c3.4 0 7.8-2.3 10.8-4.8-2 10.4-8.4 13.4-15.8 13.4-8.4 0-14.1-4.2-14.1-14.5 0-10.5 5.9-32.3 24.6-32.3 8.1 0 10 4.2 10 8.7 0 10.6-10 18.5-20.9 19.2-.1.9-.2 2-.2 2.7 0 5.7 2.5 7.6 5.6 7.6zm6.2-33.4c-4.5 0-9.1 10.1-11 18.7 7.1-.4 13.3-7.3 13.3-15 0-2.2-.6-3.7-2.3-3.7zm51.3-6.7c-1.7 0-3-.6-4.2-1.9 2.4-1.5 4.1-4.8 4.1-7.8 0-3.1-1.8-6.1-6.8-6.1s-8.3 2.8-8.3 8.2c0 13.3 20.5 15.2 20.5 34.8 0 15.3-12.3 22.7-25.6 22.7-10.4 0-19.3-4.5-19.3-15.7 0-9.8 7-14.9 13.3-14.9 3.1 0 7.7 1.3 8 6-4.9 0-10.7 2.3-10.7 8.5 0 4.5 2.9 8.7 8.7 8.7 6.1 0 10.6-4.4 10.6-12 0-15.6-18.6-21.1-18.6-34.5 0-9.5 9.3-16.3 21-16.3 4.3 0 14.6.9 14.6 10.9.1 5.5-2.8 9.4-7.3 9.4zm36.2 10.3c0-2.3-.8-3.7-2.5-3.7-5.7 0-11.7 16.6-11.7 26.7 0 6.2 2.2 7.6 6.6 7.6 7.1 0 11.6-4 16.1-9.2h3.1c-5.2 8.3-12.9 16.8-25 16.8-8.5 0-14.2-4.2-14.2-14.5 0-10.6 6-32.3 24.5-32.3 8.1 0 10.1 4.2 10.1 8.3 0 4.4-2.2 6.7-4.8 6.7-1 0-2.1-.4-3.1-1.1.5-1.9.9-3.6.9-5.3zm27.7-7.6l-1.2 5.7c3.1-2.7 6.7-5.7 11-5.7 4.1 0 6.3 3.3 6.3 6.9 0 3.1-2.1 6.7-6.6 6.7-5.1 0-2.5-6-5.3-6-2.7 0-4.4 1.4-6.7 3.4l-7.2 34.6h-13.1l9.6-45.4 13.2-.2zm34.2 0l-6.6 30.9c-.3 1.2-.4 2.1-.4 2.9 0 2.5 1.2 3.3 3.7 3.3 3.5 0 6.9-3.4 8.1-8h3.8c-5.2 14.8-14.2 16.8-19.1 16.8-5.5 0-9.7-3.2-9.7-10.9 0-1.8.3-3.7.7-5.9l6.2-29.2 13.3.1zm-4.1-19.4c4 0 7.2 3.2 7.2 7.2s-3.2 7.1-7.2 7.1-7.1-3.1-7.1-7.1c-.1-4 3.2-7.2 7.1-7.2zm29.1 16l-1.5 6.9c2.6-2.3 6.1-3.9 10.7-3.9 6.2 0 11.1 3.5 11.1 14.4 0 12.2-4.7 32.1-22.3 32.1-4.5 0-6.8-1.6-7.7-3.2l-4.7 22.1-13.7 3.2 15.2-71.5 12.9-.1zm7.8 17c0-7-2.9-7.5-4.5-7.5-2 0-4.5 1.6-6.3 4.4l-5.4 25.5c.4 1 1.4 2.1 3.4 2.1 9.7 0 12.8-15.9 12.8-24.5zm27.8 17.3c-.3 1.1-.5 2.2-.5 3.1 0 1.9.7 3.2 3.1 3.2.7 0 1.7 0 2.4-.3-2.5 7.8-6.6 8.9-9.6 8.9-6.4 0-9.1-4.4-9.1-10.3 0-1.6.2-3.1.6-4.8l5.8-27.2h-3l.7-3.6h3L528 366l13.4-1.9s-1.4 6.2-3.1 14.4h5.5l-.7 3.6h-5.5l-5.7 27.4z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1,5 +1,22 @@
## Change Log
```
releaseHeader('2017-02-18', '1.12.4', '1.12.3')
```
* The `cake` commands have been updated, with new `watch` options for most tasks. Clone the [CoffeeScript repo](https://github.com/jashkenas/coffeescript) and run `cake` at the root of the repo to see the options.
* Fixed a bug where `export`ing a referenced variable was preventing the variable from being declared.
* Fixed a bug where the `coffee` command wasnt working for a `.litcoffee` file.
* Bugfixes related to tokens and location data, for better source maps and improved compatibility with downstream tools.
```
releaseHeader('2017-01-24', '1.12.3', '1.12.2')
```
* `@` values can now be used as indices in `for` expressions. This loosens the compilation of `for` expressions to allow the index variable to be an `@` value, e.g. `do @visit for @node, @index in nodes`. Within `@visit`, the index of the current node (`@node`) would be available as `@index`.
* CoffeeScripts patched `Error.prepareStackTrace` has been restored, with some revisions that should prevent the erroneous exceptions that were making life difficult for some downstream projects. This fixes the incorrect line numbers in stack traces since 1.12.2.
* The `//=` operators output now wraps parentheses around the right operand, like the other assignment operators.
```
releaseHeader('2016-12-16', '1.12.2', '1.12.1')
```
@@ -511,7 +528,7 @@ releaseHeader('2009-12-24', '0.1.1', '0.1.0')
Added `instanceof` and `typeof` as operators.
```
releaseHeader('2009-12-24', '0.1.0')
releaseHeader('2009-12-24', '0.1.0', '8e9d637985d2dc9b44922076ad54ffef7fa8e9c2')
```
Initial CoffeeScript release.

View File

@@ -1,27 +1,15 @@
## Installation
The CoffeeScript compiler is itself [written in CoffeeScript](v<%= majorVersion %>/annotated-source/grammar.html), using the [Jison parser generator](http://jison.org). The command-line version of `coffee` is available as a [Node.js](http://nodejs.org/) utility. The [core compiler](v<%= majorVersion %>/browser-compiler/coffee-script.js) however, does not depend on Node, and can be run in any JavaScript environment, or in the browser (see Try CoffeeScript”, above).
The command-line version of `coffee` is available as a [Node.js](http://nodejs.org/) utility. The [core compiler](v<%= majorVersion %>/browser-compiler/coffee-script.js) however, does not depend on Node, and can be run in any JavaScript environment, or in the browser (see [Try CoffeeScript](#try)).
To install, first make sure you have a working copy of the latest stable version of [Node.js](http://nodejs.org/). You can then install CoffeeScript globally with [npm](http://npmjs.org):
> ```
npm install -g coffee-script
npm install --global coffee-script
```
When you need CoffeeScript as a dependency, install it locally:
When you need CoffeeScript as a dependency of a project, within that projects folder you can install it locally:
> ```
npm install --save coffee-script
```
If youd prefer to install the latest **master** version of CoffeeScript, you can clone the CoffeeScript [source repository](http://github.com/jashkenas/coffeescript) from GitHub, or download [the source](http://github.com/jashkenas/coffeescript/tarball/master) directly. To install the latest master CoffeeScript compiler with npm:
> ```
npm install -g jashkenas/coffeescript
```
Or, if you want to install to `/usr/local`, and dont want to use npm to manage it, open the `coffee-script` directory and run:
> ```
sudo bin/cake install
```

View File

@@ -3,10 +3,10 @@
* [Source Code](http://github.com/jashkenas/coffeescript/)<br>
Use `bin/coffee` to test your changes,<br>
`bin/cake test` to run the test suite,<br>
`bin/cake build` to rebuild the CoffeeScript compiler, and<br>
`bin/cake build:parser` to regenerate the Jison parser if youre working on the grammar.
`bin/cake build` to rebuild the full CoffeeScript compiler, and<br>
`bin/cake build:except-parser` to recompile much faster if youre not editing `grammar.coffee`.
`git checkout lib && bin/cake build:full` is a good command to run when youre working on the core language. Itll refresh the lib directory (in case you broke something), build your altered compiler, use that to rebuild itself (a good sanity test) and then run all of the tests. If they pass, theres a good chance youve made a successful change.
`git checkout lib && bin/cake build:full` is a good command to run when youre working on the core language. Itll refresh the `lib` folder (in case you broke something), build your altered compiler, use that to rebuild itself (a good sanity test) and then run all of the tests. If they pass, theres a good chance youve made a successful change.
* [Browser Tests](v<%= majorVersion %>/test.html)<br>
Run CoffeeScripts test suite in your current browser.
* [CoffeeScript Issues](http://github.com/jashkenas/coffeescript/issues)<br>

View File

@@ -48,14 +48,6 @@ Once installed, you should have access to the `coffee` command, which can execut
<tr>
<td>`-j, --join [FILE]`</td>
<td>Before compiling, concatenate all scripts together in the order they were passed, and write them into the specified file. (Deprecated.)</td>
</tr>
<tr>
<td>`-w, --watch`</td>
<td>Watch files for changes, rerunning the specified command when any file is updated.</td>

View File

@@ -122,7 +122,7 @@
<%= htmlFor('embedded') %>
<span class="bookmark" id="switch"></span>
<%= htmlFor('switch') %>
<span class="bookmark" id="try"></span>
<span class="bookmark" id="try-catch"></span>
<%= htmlFor('try') %>
<span class="bookmark" id="comparisons"></span>
<%= htmlFor('comparisons') %>

View File

@@ -66,6 +66,9 @@ $('.navigation').click (e) ->
$(this).addClass 'active'
false
$(document).on 'click', '[href="#try"]', (e) ->
$('.navigation.try').addClass 'active'
# Dismiss console if Escape pressed or click falls outside console
# Trigger Run button on Ctrl-Enter
$(document.body)

View File

@@ -166,6 +166,9 @@ div.code {
height: 40px;
margin: 5px 0 0 3px;
}
#logo path {
fill: #28334C;
}
.navigation {
height: 50px;
font-size: 11px;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(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; };

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks;

View File

@@ -1,6 +1,6 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var Lexer, SourceMap, base64encode, compile, ext, fn1, fs, helpers, i, len, lexer, packageJson, parser, path, ref, vm, withPrettyErrors,
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');
@@ -56,11 +56,17 @@
};
};
sources = {};
sourceMaps = {};
exports.compile = compile = withPrettyErrors(function(code, options) {
var currentColumn, currentLine, encoded, extend, fragment, fragments, generateSourceMap, header, i, j, js, len, len1, map, merge, newLines, ref, ref1, sourceMapDataURI, sourceURL, token, tokens, v3SourceMap;
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 = helpers.merge, extend = helpers.extend;
options = extend({}, options);
generateSourceMap = options.sourceMap || options.inlineMap;
generateSourceMap = options.sourceMap || options.inlineMap || (options.filename == null);
filename = options.filename || '<anonymous>';
sources[filename] = code;
if (generateSourceMap) {
map = new SourceMap;
}
@@ -119,6 +125,7 @@
}
if (generateSourceMap) {
v3SourceMap = map.generate(options, code);
sourceMaps[filename] = map;
}
if (options.inlineMap) {
encoded = base64encode(JSON.stringify(v3SourceMap));
@@ -155,9 +162,9 @@
options = {};
}
mainModule = require.main;
mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';
mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '<anonymous>';
mainModule.moduleCache && (mainModule.moduleCache = {});
dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.');
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);
@@ -321,4 +328,99 @@
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 = "<anonymous>");
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 || '<anonymous>') + " (" + fileLocation + ")";
}
} else if (isConstructor) {
return "new " + (functionName || '<anonymous>') + " (" + 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['<anonymous>'] != null) {
return sourceMaps['<anonymous>'];
} 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);

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, findDirectoryIndex, forkNode, fs, helpers, hidden, joinTimeout, makePrelude, mkdirp, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, ref, removeSource, removeSourceDir, silentUnlink, sourceCode, sources, spawn, timeLog, usage, useWinPathSep, version, wait, watch, watchDir, watchedDirs, writeJs,
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; };

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var key, ref, val;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(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, INVALID_ESCAPE, 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, RELATION, RESERVED, Rewriter, SHIFT, SIMPLE_STRING_OMIT, STRICT_PROSCRIBED, STRING_DOUBLE, STRING_OMIT, STRING_SINGLE, STRING_START, TRAILING_BLANK_LINE, TRAILING_SPACES, UNARY, UNARY_MATH, VALID_FLAGS, WHITESPACE, compact, count, invertLiterate, isForFrom, isUnassignable, key, locationDataToString, ref, ref1, 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; },
@@ -409,11 +409,11 @@
double: true
}, this.formatHeregex);
if (flags) {
this.token(',', ',', index, 0);
this.token('STRING', '"' + flags + '"', index, flags.length);
this.token(',', ',', index - 1, 0);
this.token('STRING', '"' + flags + '"', index - 1, flags.length);
}
this.token(')', ')', end, 0);
this.token('REGEX_END', ')', end, 0);
this.token(')', ')', end - 1, 0);
this.token('REGEX_END', ')', end - 1, 0);
}
return end;
};

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var Access, Arr, Assign, Base, Block, BooleanLiteral, Call, Class, Code, CodeFragment, Comment, Existence, Expansion, ExportAllDeclaration, ExportDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, ExportSpecifierList, Extends, For, 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, SuperCall, Switch, TAB, THIS, TaggedTemplateCall, ThisLiteral, Throw, Try, UTILITIES, UndefinedLiteral, Value, While, YES, YieldReturn, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isComplexOrAssignable, isLiteralArguments, isLiteralThis, isUnassignable, locationDataToString, merge, multident, ref1, ref2, some, starts, throwSyntaxError, unfoldSoak, utility,
extend1 = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
@@ -1024,6 +1024,22 @@
Call.prototype.children = ['variable', 'args'];
Call.prototype.updateLocationDataIfMissing = function(locationData) {
var base, ref3;
if (this.locationData && this.needsUpdatedStartLocation) {
this.locationData.first_line = locationData.first_line;
this.locationData.first_column = locationData.first_column;
base = ((ref3 = this.variable) != null ? ref3.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 Call.__super__.updateLocationDataIfMissing.apply(this, arguments);
};
Call.prototype.newInstance = function() {
var base, ref3;
base = ((ref3 = this.variable) != null ? ref3.base : void 0) || this.variable;
@@ -1032,6 +1048,7 @@
} else {
this.isNew = true;
}
this.needsUpdatedStartLocation = true;
return this;
};
@@ -2059,7 +2076,7 @@
ModuleSpecifier.prototype.compileNode = function(o) {
var code;
o.scope.add(this.identifier, this.moduleDeclarationType);
o.scope.find(this.identifier, this.moduleDeclarationType);
code = [];
code.push(this.makeCode(this.original.value));
if (this.alias != null) {
@@ -3115,9 +3132,10 @@
};
Op.prototype.compileFloorDivision = function(o) {
var div, floor;
var div, floor, second;
floor = new Value(new IdentifierLiteral('Math'), [new Access(new PropertyName('floor'))]);
div = new Op('/', this.first, this.second);
second = this.second.isComplex() ? new Parens(this.second) : this.second;
div = new Op('/', this.first, second);
return new Call(floor, [div]).compileToFragments(o);
};
@@ -3414,7 +3432,7 @@
if (this.object) {
ref3 = [this.index, this.name], this.name = ref3[0], this.index = ref3[1];
}
if (this.index instanceof Value) {
if (this.index instanceof Value && !this.index.isAssignable()) {
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;
@@ -3446,7 +3464,7 @@
if (name && !this.pattern) {
scope.find(name);
}
if (index) {
if (index && !(this.index instanceof Value)) {
scope.find(index);
}
if (this.returns) {

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments, repeat;

View File

@@ -873,7 +873,10 @@ exports.main = function commonjsMain(args) {
console.log('Usage: '+args[0]+' FILE');
process.exit(1);
}
var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
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) {

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, i, len, loadFile, path, ref;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var CoffeeScript, addHistory, addMultilineHandler, fs, getCommandId, merge, nodeREPL, path, ref, replDefaults, runInContext, updateSyntaxError, vm;

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(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, ref, 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; },

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(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; };
@@ -45,11 +45,14 @@
return this.parent.namedMethod();
};
Scope.prototype.find = function(name) {
Scope.prototype.find = function(name, type) {
if (type == null) {
type = 'var';
}
if (this.check(name)) {
return true;
}
this.add(name, 'var');
this.add(name, type);
return false;
};

View File

@@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.2
// Generated by CoffeeScript 1.12.4
(function() {
var LineMap, SourceMap;

View File

@@ -8,7 +8,7 @@
"compiler"
],
"author": "Jeremy Ashkenas",
"version": "1.12.2",
"version": "1.12.4",
"license": "MIT",
"engines": {
"node": ">=0.8.0"
@@ -40,7 +40,7 @@
},
"devDependencies": {
"docco": "~0.7.0",
"google-closure-compiler-js": "^20161201.0.0",
"google-closure-compiler-js": "^20170124.0.0",
"highlight.js": "~9.9.0",
"jison": ">=0.4.17",
"marked": "^0.3.6",

View File

@@ -46,22 +46,38 @@ withPrettyErrors = (fn) ->
throw err if typeof code isnt 'string' # Support `CoffeeScript.nodes(tokens)`.
throw helpers.updateSyntaxError err, code, options.filename
# For each compiled file, save its source in memory in case we need to
# recompile it later. We might need to recompile if the first compilation
# didnt create a source map (faster) but something went wrong and we need
# a stack trace. Assuming that most of the time, code isnt throwing
# exceptions, its probably more efficient to compile twice only when we
# need a stack trace, rather than always generating a source map even when
# its not likely to be used. Save in form of `filename`: `(source)`
sources = {}
# Also save source maps if generated, in form of `filename`: `(source map)`.
sourceMaps = {}
# Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler.
#
# If `options.sourceMap` is specified, then `options.filename` must also be specified. All
# options that can be passed to `SourceMap#generate` may also be passed here.
# If `options.sourceMap` is specified, then `options.filename` must also be
# specified. All options that can be passed to `SourceMap#generate` may also
# be passed here.
#
# This returns a javascript string, unless `options.sourceMap` is passed,
# in which case this returns a `{js, v3SourceMap, sourceMap}`
# object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for doing programatic
# lookups.
# object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for
# doing programmatic lookups.
exports.compile = compile = withPrettyErrors (code, options) ->
{merge, extend} = helpers
options = extend {}, options
generateSourceMap = options.sourceMap or options.inlineMap
# Always generate a source map if no filename is passed in, since without a
# a filename we have no way to retrieve this source later in the event that
# we need to recompile it to get a source map for `prepareStackTrace`.
generateSourceMap = options.sourceMap or options.inlineMap or not options.filename?
filename = options.filename or '<anonymous>'
if generateSourceMap
map = new SourceMap
sources[filename] = code
map = new SourceMap if generateSourceMap
tokens = lexer.tokenize code, options
@@ -71,7 +87,7 @@ exports.compile = compile = withPrettyErrors (code, options) ->
token[1] for token in tokens when token[0] is 'IDENTIFIER'
)
# Check for import or export; if found, force bare mode
# Check for import or export; if found, force bare mode.
unless options.bare? and options.bare is yes
for token in tokens
if token[0] in ['IMPORT', 'EXPORT']
@@ -86,7 +102,7 @@ exports.compile = compile = withPrettyErrors (code, options) ->
currentColumn = 0
js = ""
for fragment in fragments
# Update the sourcemap with data from each fragment
# Update the sourcemap with data from each fragment.
if generateSourceMap
# Do not include empty, whitespace, or semicolon-only fragments.
if fragment.locationData and not /^[;\s]*$/.test fragment.code
@@ -110,6 +126,7 @@ exports.compile = compile = withPrettyErrors (code, options) ->
if generateSourceMap
v3SourceMap = map.generate(options, code)
sourceMaps[filename] = map
if options.inlineMap
encoded = base64encode JSON.stringify v3SourceMap
@@ -146,13 +163,13 @@ exports.run = (code, options = {}) ->
# Set the filename.
mainModule.filename = process.argv[1] =
if options.filename then fs.realpathSync(options.filename) else '.'
if options.filename then fs.realpathSync(options.filename) else '<anonymous>'
# Clear the module cache.
mainModule.moduleCache and= {}
# Assign paths for node_modules loading
dir = if options.filename
dir = if options.filename?
path.dirname fs.realpathSync options.filename
else
fs.realpathSync '.'
@@ -218,6 +235,7 @@ if require.extensions
exports._compileFile = (filename, sourceMap = no, inlineMap = no) ->
raw = fs.readFileSync filename, 'utf8'
# Strip the Unicode byte order mark, if this file begins with one.
stripped = if raw.charCodeAt(0) is 0xFEFF then raw.substring 1 else raw
try
@@ -283,3 +301,88 @@ parser.yy.parseError = (message, {token}) ->
# from the lexer.
helpers.throwSyntaxError "unexpected #{errorText}", errorLoc
# Based on http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js
# Modified to handle sourceMap
formatSourcePosition = (frame, getSourceMapping) ->
filename = undefined
fileLocation = ''
if frame.isNative()
fileLocation = "native"
else
if frame.isEval()
filename = frame.getScriptNameOrSourceURL()
fileLocation = "#{frame.getEvalOrigin()}, " unless filename
else
filename = frame.getFileName()
filename or= "<anonymous>"
line = frame.getLineNumber()
column = frame.getColumnNumber()
# Check for a sourceMap position
source = getSourceMapping filename, line, column
fileLocation =
if source
"#{filename}:#{source[0]}:#{source[1]}"
else
"#{filename}:#{line}:#{column}"
functionName = frame.getFunctionName()
isConstructor = frame.isConstructor()
isMethodCall = not (frame.isToplevel() or isConstructor)
if isMethodCall
methodName = frame.getMethodName()
typeName = frame.getTypeName()
if functionName
tp = as = ''
if typeName and functionName.indexOf typeName
tp = "#{typeName}."
if methodName and functionName.indexOf(".#{methodName}") isnt functionName.length - methodName.length - 1
as = " [as #{methodName}]"
"#{tp}#{functionName}#{as} (#{fileLocation})"
else
"#{typeName}.#{methodName or '<anonymous>'} (#{fileLocation})"
else if isConstructor
"new #{functionName or '<anonymous>'} (#{fileLocation})"
else if functionName
"#{functionName} (#{fileLocation})"
else
fileLocation
getSourceMap = (filename) ->
if sourceMaps[filename]?
sourceMaps[filename]
# CoffeeScript compiled in a browser may get compiled with `options.filename`
# of `<anonymous>`, but the browser may request the stack trace with the
# filename of the script file.
else if sourceMaps['<anonymous>']?
sourceMaps['<anonymous>']
else if sources[filename]?
answer = compile sources[filename],
filename: filename
sourceMap: yes
literate: helpers.isLiterate filename
answer.sourceMap
else
null
# Based on [michaelficarra/CoffeeScriptRedux](http://goo.gl/ZTx1p)
# NodeJS / V8 have no support for transforming positions in stack traces using
# sourceMap, so we must monkey-patch Error to display CoffeeScript source
# positions.
Error.prepareStackTrace = (err, stack) ->
getSourceMapping = (filename, line, column) ->
sourceMap = getSourceMap filename
answer = sourceMap.sourceLocation [line - 1, column - 1] if sourceMap?
if answer? then [answer[0] + 1, answer[1] + 1] else null
frames = for frame in stack
break if frame.getFunction() is exports.run
" at #{formatSourcePosition frame, getSourceMapping}"
"#{err.toString()}\n#{frames.join '\n'}\n"

View File

@@ -343,10 +343,10 @@ exports.Lexer = class Lexer
@token 'CALL_START', '(', 0, 0
@mergeInterpolationTokens tokens, {delimiter: '"', double: yes}, @formatHeregex
if flags
@token ',', ',', index, 0
@token 'STRING', '"' + flags + '"', index, flags.length
@token ')', ')', end, 0
@token 'REGEX_END', ')', end, 0
@token ',', ',', index - 1, 0
@token 'STRING', '"' + flags + '"', index - 1, flags.length
@token ')', ')', end - 1, 0
@token 'REGEX_END', ')', end - 1, 0
end

View File

@@ -633,6 +633,21 @@ exports.Call = class Call extends Base
children: ['variable', 'args']
# When setting the location, we sometimes need to update the start location to
# account for a newly-discovered `new` operator to the left of us. This
# expands the range on the left, but not the right.
updateLocationDataIfMissing: (locationData) ->
if @locationData and @needsUpdatedStartLocation
@locationData.first_line = locationData.first_line
@locationData.first_column = locationData.first_column
base = @variable?.base or @variable
if base.needsUpdatedStartLocation
@variable.locationData.first_line = locationData.first_line
@variable.locationData.first_column = locationData.first_column
base.updateLocationDataIfMissing locationData
delete @needsUpdatedStartLocation
super
# Tag this invocation as creating a new instance.
newInstance: ->
base = @variable?.base or @variable
@@ -640,6 +655,7 @@ exports.Call = class Call extends Base
base.newInstance()
else
@isNew = true
@needsUpdatedStartLocation = true
this
# Soaked chained invocations unfold into if/else ternary structures.
@@ -1352,7 +1368,7 @@ exports.ModuleSpecifier = class ModuleSpecifier extends Base
children: ['original', 'alias']
compileNode: (o) ->
o.scope.add @identifier, @moduleDeclarationType
o.scope.find @identifier, @moduleDeclarationType
code = []
code.push @makeCode @original.value
code.push @makeCode " as #{@alias.value}" if @alias?
@@ -2083,7 +2099,8 @@ exports.Op = class Op extends Base
compileFloorDivision: (o) ->
floor = new Value new IdentifierLiteral('Math'), [new Access new PropertyName 'floor']
div = new Op '/', @first, @second
second = if @second.isComplex() then new Parens @second else @second
div = new Op '/', @first, second
new Call(floor, [div]).compileToFragments o
compileModulo: (o) ->
@@ -2311,7 +2328,7 @@ exports.For = class For extends While
@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
@index.error 'index cannot be a pattern matching expression' if @index instanceof Value and not @index.isAssignable()
@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
@@ -2333,7 +2350,7 @@ exports.For = class For extends While
name = @name and (@name.compile o, LEVEL_LIST) if not @pattern
index = @index and (@index.compile o, LEVEL_LIST)
scope.find(name) if name and not @pattern
scope.find(index) if index
scope.find(index) if index and @index not instanceof Value
rvar = scope.freeVariable 'results' if @returns
if @from
ivar = scope.freeVariable 'x', single: true if @pattern

View File

@@ -44,9 +44,9 @@ function object that has a name filled in, or bottoms out.
Look up a variable name in lexical scope, and declare it if it does not
already exist.
find: (name) ->
find: (name, type = 'var') ->
return yes if @check name
@add name, 'var'
@add name, type
no
Reserve a variable name as originating from a function parameter for this
@@ -116,4 +116,3 @@ of this scope.
assignedVariables: ->
"#{v.name} = #{v.type.value}" for v in @variables when v.type.assigned

View File

@@ -515,6 +515,16 @@ test "#2274: Allow @values as loop variables", ->
obj.method()
eq obj.item, 3
test "#4411: Allow @values as loop indices", ->
obj =
index: null
get: -> @index
method: ->
@get() for _, @index in [1, 2, 3]
eq obj.index, null
arrayEq obj.method(), [0, 1, 2]
eq obj.index, 3
test "#2525, #1187, #1208, #1758, looping over an array forwards", ->
list = [0, 1, 2, 3, 4]

View File

@@ -54,25 +54,89 @@ test "compiler error formatting with mixed tab and space", ->
if require?
os = require 'os'
fs = require 'fs'
path = require 'path'
test "patchStackTrace line patching", ->
err = new Error 'error'
ok err.stack.match /test[\/\\]error_messages\.coffee:\d+:\d+\b/
test "patchStackTrace stack prelude consistent with V8", ->
err = new Error
ok err.stack.match /^Error\n/ # Notice no colon when no message.
err = new Error 'error'
ok err.stack.match /^Error: error\n/
test "#2849: compilation error in a require()d file", ->
# Create a temporary file to require().
ok not fs.existsSync 'test/syntax-error.coffee'
fs.writeFileSync 'test/syntax-error.coffee', 'foo in bar or in baz'
tempFile = path.join os.tmpdir(), 'syntax-error.coffee'
ok not fs.existsSync tempFile
fs.writeFileSync tempFile, 'foo in bar or in baz'
try
assertErrorFormat '''
require './test/syntax-error'
''',
assertErrorFormat """
require '#{tempFile}'
""",
"""
#{path.join __dirname, 'syntax-error.coffee'}:1:15: error: unexpected in
#{fs.realpathSync tempFile}:1:15: error: unexpected in
foo in bar or in baz
^^
"""
finally
fs.unlinkSync 'test/syntax-error.coffee'
fs.unlinkSync tempFile
test "#3890 Error.prepareStackTrace doesn't throw an error if a compiled file is deleted", ->
# Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee
filePath = path.join os.tmpdir(), 'PrepareStackTraceTestFile.coffee'
fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')"
throwsAnError = require filePath
fs.unlinkSync filePath
try
throwsAnError()
catch error
eq error.message, 'hello world'
doesNotThrow(-> error.stack)
notEqual error.stack.toString().indexOf(filePath), -1
test "#4418 stack traces for compiled files reference the correct line number", ->
filePath = path.join os.tmpdir(), 'StackTraceLineNumberTestFile.coffee'
fileContents = """
testCompiledFileStackTraceLineNumber = ->
# `a` on the next line is undefined and should throw a ReferenceError
console.log a if true
do testCompiledFileStackTraceLineNumber
"""
fs.writeFileSync filePath, fileContents
try
require filePath
catch error
fs.unlinkSync filePath
# Make sure the line number reported is line 3 (the original Coffee source)
# and not line 6 (the generated JavaScript).
eq /StackTraceLineNumberTestFile.coffee:(\d)/.exec(error.stack.toString())[1], '3'
test "#4418 stack traces for compiled strings reference the correct line number", ->
try
CoffeeScript.run """
testCompiledStringStackTraceLineNumber = ->
# `a` on the next line is undefined and should throw a ReferenceError
console.log a if true
do testCompiledStringStackTraceLineNumber
"""
catch error
# Make sure the line number reported is line 3 (the original Coffee source)
# and not line 6 (the generated JavaScript).
eq /at testCompiledStringStackTraceLineNumber.*:(\d):/.exec(error.stack.toString())[1], '3'
test "#1096: unexpected generated tokens", ->
@@ -428,7 +492,7 @@ test "#3795: invalid escapes", ->
assertErrorFormat '''
///a \\u002 0 space///
''', '''
[stdin]:1:6: error: invalid escape sequence \\u002
[stdin]:1:6: error: invalid escape sequence \\u002 \n\
///a \\u002 0 space///
^\^^^^^
'''
@@ -1179,3 +1243,10 @@ test "tagged template literals must be called by an identifier", ->
1"""#{b}"""
^
'''
test "can't use pattern matches for loop indices", ->
assertErrorFormat 'a for b, {c} in d', '''
[stdin]:1:10: error: index cannot be a pattern matching expression
a for b, {c} in d
^^^
'''

View File

@@ -585,6 +585,29 @@ test "Verify indented heredocs have the right position", ->
eq stringToken[2].last_line, 3
eq stringToken[2].last_column, 4
test "Verify heregexes with interpolations have the right ending position", ->
source = '''
[a ///#{b}///g]
'''
[..., stringEnd, comma, flagsString, regexCallEnd, regexEnd, fnCallEnd,
arrayEnd, terminator] = CoffeeScript.tokens source
eq comma[0], ','
eq arrayEnd[0], ']'
assertColumn = (token, column) ->
eq token[2].first_line, 0
eq token[2].first_column, column
eq token[2].last_line, 0
eq token[2].last_column, column
arrayEndColumn = arrayEnd[2].first_column
for token in [comma, flagsString]
assertColumn token, arrayEndColumn - 2
for token in [regexCallEnd, regexEnd, fnCallEnd]
assertColumn token, arrayEndColumn - 1
assertColumn arrayEnd, arrayEndColumn
test "Verify all tokens get a location", ->
doesNotThrow ->
tokens = CoffeeScript.tokens testScript

View File

@@ -733,3 +733,19 @@ test "export an imported aliased member named default", ->
default as def
} from 'lib';"""
eq toJS(input), output
test "#4394: export shouldn't prevent variable declarations", ->
input = """
x = 1
export { x }
"""
output = """
var x;
x = 1;
export {
x
};
"""
eq toJS(input), output

View File

@@ -330,7 +330,7 @@ test "floor division operator", ->
test "floor division operator compound assignment", ->
a = 7
a //= 2
a //= 1 + 1
eq 3, a
test "modulo operator", ->

View File

@@ -38,3 +38,43 @@ test "operator precedence for binary ? operator", ->
eq expression.second.first.base.value, 'b'
eq expression.second.operator, '&&'
eq expression.second.second.base.value, 'c'
test "new calls have a range including the new", ->
source = '''
a = new B().c(d)
'''
block = CoffeeScript.nodes source
assertColumnRange = (node, firstColumn, lastColumn) ->
eq node.locationData.first_line, 0
eq node.locationData.first_column, firstColumn
eq node.locationData.last_line, 0
eq node.locationData.last_column, lastColumn
[assign] = block.expressions
outerCall = assign.value
innerValue = outerCall.variable
innerCall = innerValue.base
assertColumnRange assign, 0, 15
assertColumnRange outerCall, 4, 15
assertColumnRange innerValue, 4, 12
assertColumnRange innerCall, 4, 10
test "location data is properly set for nested `new`", ->
source = '''
new new A()()
'''
block = CoffeeScript.nodes source
assertColumnRange = (node, firstColumn, lastColumn) ->
eq node.locationData.first_line, 0
eq node.locationData.first_column, firstColumn
eq node.locationData.last_line, 0
eq node.locationData.last_column, lastColumn
[outerCall] = block.expressions
innerCall = outerCall.variable
assertColumnRange outerCall, 0, 12
assertColumnRange innerCall, 4, 10

View File

@@ -1,6 +1,8 @@
return if global.testingBrowser
os = require 'os'
fs = require 'fs'
path = require 'path'
# REPL
# ----
@@ -28,7 +30,7 @@ class MockOutputStream extends Stream
@written[@written.length - 1 + fromEnd].replace /\r?\n$/, ''
# Create a dummy history file
historyFile = '.coffee_history_test'
historyFile = path.join os.tmpdir(), '.coffee_history_test'
fs.writeFileSync historyFile, '1 + 2\n'
testRepl = (desc, fn) ->
@@ -107,4 +109,6 @@ testRepl "keeps running after runtime error", (input, output) ->
eq 'undefined', output.lastWrite()
process.on 'exit', ->
fs.unlinkSync historyFile
try
fs.unlinkSync historyFile
catch exception # Already deleted, nothing else to do.